FROM으로 입력을 보고 WHERE로 남길 행을 정한 뒤 SELECT가 출력할 값을 읽으면 질의가 잘 보인다.
아래 질의는 DB 서가의 책 1번과 3번을 남긴 뒤 책번호·제목을 출력한다. 논리적으로 결과를 이해하는 순서이며 DB가 내부적으로 꼭 같은 순서로 실행한다는 뜻은 아니다.
INSERT는 행을 넣고 UPDATE의 SET은 값을 바꾼다. DELETE는 조건에 맞는 행을 지운다. UPDATE·DELETE에서 WHERE를 생략하면 전체 행이 대상이 될 수 있다. AND가 OR보다 우선하므로 의도한 조건에 괄호를 쓰면 읽기 쉽다.
- 01 →
입력 표
- 02 →
행 조건
- 03 →
출력 값
- 04
출력 순서
같은 상황에서 비교하기
| 개념 | 기준 | 확인할 점 |
|---|---|---|
| FROM | 입력 관계 | 어느 표를 읽는가 |
| WHERE | 행 조건 | 어떤 행을 남기는가 |
| SELECT | 출력 값 | 어떤 열·식을 보여주는가 |
| SET | 갱신 값 | 어떤 값으로 바꾸는가 |
도서관 예제로 따라가기
SELECT book_id, title
FROM books
WHERE shelf_code = 'DB'
ORDER BY book_id;| book_id | title |
|---|---|
| 1 | SQL 입문 |
| 3 | 관계 모델 |
서가 조건으로 고른 두 행을 책번호 순서로 보여준다.
공통 예제 데이터 보기
| book_id | title | shelf_code | pages |
|---|---|---|---|
| 1 | SQL 입문 | DB | 120 |
| 2 | 설계 노트 | SW | 200 |
| 3 | 관계 모델 | DB | NULL |
| 4 | 분산 읽기 | NULL | 160 |
| loan_id | book_id |
|---|---|
| 11 | 1 |
| 12 | 1 |
| 13 | 2 |
내 말로 설명해 보기
SELECT에 열 2개를 썼다는 이유로 결과도 2행이라고 할 수 있을까?
설명 예시 확인
아니다. 출력 열 수와 행 조건에 남는 행 수는 별개다.
참고한 자료
이전 개념 자료와의 연결
이전 자료에서 다룬 주제를 이어받아 설명과 예시를 다시 썼어요.
- SQL 읽기: SELECT·FROM·WHERE·INSERT·UPDATE