데이터를 추가할때는 해당 column이 어떤 자료형을 가지고있는지 확인한다

#테이블 확인
DESC sample41;
#전체 행에 데이터 추가
insert into sample41 values(1,'ABC','2023-03-10');
#특정column에만 데이터 추가하기
insert into sample41(no, a) values(1,'ABC');
#여러값을 한번에 insert하기
insert into sample41 values
(1,'a','2023-03-11'),
(2,'b','2023-03-12'),
(3,'c','2023-03-13');
null값을 추가할때도 마찬가지로
DESC 테이블명
을 사용해 column이 null값을 허용하는지 확인해본다
insert into sample41(no, a) values(5,null);
#no column은 null을 허용하지않는다
column이 no,d두개로 이루어져있는 테이블이 있다고 할때
d column이 null값을 허용하면
#no에만 값을 저장해도 d는 null값을 허용하므로
#자동으로 d는 default값인 0이된다 -> 암묵적 default
insert into sample411(no) values(2);
#column지정 해주기 싫을때
insert into sample411 values(3,default);
테이블명으로 insert하게되면
데이터 갯수가 맞지 않다고 오류가난다
그럴때는 명시적으로 d에게 default를 주겠다고 해준다
delete from sample41;
#조건 지정이 없으므로 테이블의 데이터가 전부 날라간다
delete from sample41 where no=3
#no이 3인 행을 삭제
열(row) 삭제는 할수없다고 한다.
DELETE와 달리 UPDATE는 셀단위로도 갱신이 가능하다
update sample41 set b = '2023-03-14' where b is null;
update sample411 set d = 20;
#d열의 전체값을 갱신
update sample41 set no = no+1;
#no열의 전체 값을 +1
물리삭제 - DELETE
논리삭제 - 삭제플래그를 이용해 '삭제된것 처럼 보이게' 하는것
ex)
논리삭제의 장점
- 실제로 삭제하지 않기 때문에 언제든 이전상태로 되돌릴수 있다
단점
- DB의 저장공간은 그대로이다(오히려 늘어날수도 있다고함)
- DB 크기증가에 따른 검색속도 저하