16강 행 추가하기 - INSERT
- no : Int, NOT NULL 제약, Default 값은 NULL
- a : 최대 길이가 30인 가변 길이 문자열, Default 값은 NULL
- b : 날짜, Default 값은 NULL
- INSERT로 행 추가하기
INSERT 명령은 클라이언트에서 서버로 보내진다. (SELECT 명령과 반대)
- 값을 저장할 열 지정하기
b열엔 기본값(Default 인 NULL) 이 저장된다.
- NOT NULL 제약
NOT NULL 제약이 걸려 있는 no 열에 NULL 값을 삽입하려 하면 오류가 난다.
no 열을 제외하고 NULL 값을 삽입하면 정상적으로 실행된다.
- DEFAULT
값을 지정하지 않았을 경우 초깃값을 말한다.
sample411 엔 d 열의 Dedault 값이 0 으로 지정되어 있다.
Default 가 설정된 열에 값을 삽입해도 정상적으로 실행된다.
만약 Default 를 그대로 사용하면 0 이 삽입되게 된다.
17강 삭제하기 - DELETE
DELETE FROM table; 을 실행할 경우, table의 모든 데이터가 삭제된다.
WHERE 구를 생략하면 모든 행을 대상으로 동작하기 때문이다.
삭제는 행 단위로 실행된다.
*MYSQL 에서는 DELETE 명령에서 ORDER BY 구와 LIMIT 구를 사용해 삭제할 행을 지정할 수 있다.
ex )
18강 데이터 갱신하기 - UPDATE
- UPDATE 로 데이터 갱신하기
셀 단위로 갱신이 가능하다.
' = ' 은 비교 연산자가 아닌 대입 연산자로 사용된다.
자료형에 맞는 값을 지정해야 한다.
갱신해야 할 열과 값이 복수인 경우에는 '열=값' 을 콤마(,) 로 구분하여 리스트 형식으로 지정한다.
table에 존재하지 않는 열을 지정해 갱신할 경우, Unknown colum 오류가 발생한다.
만약 WHERE 조건을 지정하지 않으면 모든 행이 갱신된다.
- UPDATE 로 갱신할 경우 주의사항
- 복수열 갱신
- NULL 로 갱신하기
NOT NULL 제약이 설정되어 있는지 주의해야 한다.
19강 물리삭제와 논리삭제
- 물리삭제
DELETE 명령을 사용해 직접 데이터를 삭제하는 방식이다.
이전 상태로 되돌릴 수 없다.
데이터베이스 저장 공간이 늘어난다.
ex ) 사용자의 개인정보를 다루는 시스템에서 사용자가 탈퇴한 경우
2. 논리삭제
'삭제플래그' 와 같은 열을 미리 준비해 둔다.
UPDATE 명령을 이용해 삭제플래그 값을 유효하게 갱신하여, 해당 행이 삭제된 것처럼 보이게 한다.
=> SELECT FROM table WHERE 삭제플래그<>1;
(삭제플래그가 1이 아닌 행만 검색)
이전 상태로 간단히 되돌릴 수 있다.
데이터베이스 저장공간이 모자랄 수 있다.
데이터베이스 크기 증가에 따라 검색 속도가 떨어질 수 있다.
ex ) 쇼핑 사이트에서 주문을 취소한 고객의 주문 관련 통계를 낼 떄
* 용도에 맞게 선택하여 사용해야 한다.
'SQL' 카테고리의 다른 글
[6장] 데이터베이스 객체 작성과 삭제 (0) | 2022.11.21 |
---|---|
[5장] 집계와 서브쿼리 (0) | 2022.11.07 |
[3장] 정렬과 연산 (1) | 2022.10.23 |
[2장] 테이블에서 데이터 검색 (0) | 2022.10.02 |
[1장] 데이터베이스와 SQL (0) | 2022.09.24 |