LIKE는 문자 패턴을 검사하고 ORDER BY는 결과 순서를 정한다. 검색 조건이 결과 순서를 대신하지 않는다.
LIKE에서 %는 길이가 0 이상인 문자열, _는 한 문자에 대응한다. 제목 LIKE SQL%는 SQL로 시작하는 제목을 고른다. 중간에 SQL을 포함하는 제목까지 찾으려면 %SQL%처럼 양쪽을 연다.
ORDER BY pages DESC NULLS LAST는 쪽수가 큰 책부터 놓고 NULL은 뒤로 보낸다. 동점인 책 사이 순서도 필요하다면 book_id 같은 추가 정렬 기준을 둔다. 대소문자·문자 비교의 세부 동작은 DB와 collation을 확인한다.
- 01 →
문자 패턴
- 02 →
행 선택
- 03 →
정렬 기준
- 04
NULL·동점 규칙
같은 상황에서 비교하기
| 개념 | 기준 | 확인할 점 |
|---|---|---|
| SQL% | SQL로 시작 | SQL 자체도 일치한다 |
| %SQL% | SQL 포함 | 앞뒤 문자열 길이는 0이어도 된다 |
| _QL | 정확히 한 문자+QL | SQL은 일치한다 |
| ORDER BY | 결과의 순서 | LIKE와 역할이 다르다 |
도서관 예제로 따라가기
SELECT book_id, title, pages
FROM books
ORDER BY pages DESC NULLS LAST, book_id;| book_id | title | pages |
|---|---|---|
| 2 | 설계 노트 | 200 |
| 4 | 분산 읽기 | 160 |
| 1 | SQL 입문 | 120 |
| 3 | 관계 모델 | NULL |
NULL 위치와 동점 정렬 기준까지 명시한 PostgreSQL 예제다.
공통 예제 데이터 보기
| 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 |
내 말로 설명해 보기
SQL%가 SQL 자체와도 일치하는 이유는?
설명 예시 확인
%는 0개 문자에도 대응하므로 뒤에 문자가 없어도 조건을 만족한다.