diff --git a/SQL첫걸음/Contents.md b/SQL첫걸음/Contents.md index bd90177..3c2cc41 100644 --- a/SQL첫걸음/Contents.md +++ b/SQL첫걸음/Contents.md @@ -24,4 +24,5 @@ - [15강. CASE 문으로 데이터 변환하기](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture15.md) ## 4장. 데이터의 추가, 삭제, 갱신 -- [16강. 행 추가하기 - INSERT](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture16.md) \ No newline at end of file +- [16강. 행 추가하기 - INSERT](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture16.md) +- [17강. 삭제하기 - DELETE](https://github.com/banjjoknim/TIL/blob/master/SQL%EC%B2%AB%EA%B1%B8%EC%9D%8C/Lecture17.md) \ No newline at end of file diff --git a/SQL첫걸음/Lecture17.md b/SQL첫걸음/Lecture17.md new file mode 100644 index 0000000..9b11e5b --- /dev/null +++ b/SQL첫걸음/Lecture17.md @@ -0,0 +1,41 @@ +# 17강. 삭제하기 - DELETE +데이터베이스의 테이블에서 행을 삭제하기 위해서는 `DELETE` 명령을 사용한다. + +**`DELETE 명령`** +``` +DELETE FROM 테이블명 WHERE 조건식 +``` + +--- + +## 1. DELETE로 행 삭제하기 +- `RDBMS`에서 데이터를 삭제할 경우에는 행 단위로 `DELETE` 명령을 수행한다. + +**`DELETE 명령`** +``` +DELETE FROM 테이블명 WHERE 조건식 +``` + +- `DELETE FROM sample41;` 으로 `DELETE` 명령을 실행하면 `sample41` 테이블의 모든 데이터가 삭제된다. +- `DELETE` 명령에는 `WHERE` 구를 지정할 수 있으나 `SELECT` 명령처럼 `WHERE` 구를 생략할 경우에는 모든 행을 대상으로 동작하기 때문이다. +- 한편 `WHERE` 구를 지정한 경우에는 해당 조건식에 맞는 행만 삭제 대상이 된다. + +##### DELETE 명령으로 행을 삭제할 수 있다! + +- 삭제는 행 단위로 수행된다. +- `SELECT` 명령과 같이 열을 지정할 수는 없다. +- 즉, `DELETE no FROM sample41`과 같이 열을 지정하여 그 열만 삭제할 수는 없다. +- `DELETE` 명령을 실행할 때는 재확인을 위한 대화창 같은 것은 표시되지 않는다. +- 즉, `WHERE` 구에서 조건식을 잘못 지정하면 의도하지 않은 데이터마저 삭제된다. +- 따라서 `DELETE` 명령을 실행할 때는 주의를 기울여야 한다. + +##### DELETE 명령은 WHERE 조건에 일치하는 '모든 행'을 삭제한다! + +--- + +## 2. DELETE 명령 구 +- `WHERE` 구에서 대상이 되는 행을 검색하는 것은 `SELECT` 명령에서도 `DELETE` 명령에서도 똑같다. +- 단지 `SELECT` 명령에서는 조건에 맞는 행의 결괏값이 클라이언트로 반환되지만, `DELETE` 명령에서는 조건에 맞는 행이 삭제된다는 점만 다르다. +- `DELETE` 명령에서도 `SELECT` 명령처럼 `WHERE` 구를 지정할 수 있지만 `ORDER BY` 구는 사용할 수 없다. 어떤 행부터 삭제할 것인지는 중요하지 않으며 의미가 없기 때문이다. + +--- \ No newline at end of file