# 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` 구는 사용할 수 없다. 어떤 행부터 삭제할 것인지는 중요하지 않으며 의미가 없기 때문이다.

---