ORDER BY를 사용해서 데이터를 정렬ASC 와 내림차순(큰 값에서 작은 값으로) DESC 가 있음SELECT
*
FROM
product
ORDER BY
product_id, ASC;
ORDER BY
column1 DESC, column2 ASC, column3 DESC
SELECT구에서 지정하지 않는 컬럼을 정렬 키에 넣을 수 있음
SELECT구에서 지정한 컬럼의 정렬 순의 수치를 지정하는 것도 가능
SELECT
product_name
FROM
product
ORDER BY
stock, ASC;
SELECT
product_name, stock
FROM
product
ORDER BY
2 ASC;
WHERE 구나 GROUP BY 구와 함께 사용 가능하며, 가장 마지막에 기재SELECT
*
FROM
product
WHERE
stock >= 20
ORDER BY
price;
SELECT
pref, COUNT(*)
FROM
inquiry
GROUP BY
pref
ORDER BY
COUNT(*);
IS NULL은 값이 NULL이면 1 아니면 0을 반환하는 연산ORDER BY price IS NULL로 처음에 price 값이 NULL이 아닌 레코드가 정렬SELECT
*
FROM
product
ORDER BY
price IS NULL ASC, price ASC;
ORDER BY구에 조건을 지정함으로써 특정 레코드를 처음이나 마지막에 가져올 수 있음SELECT
*
FROM
product
ORDER BY
price = 150 DESC;
SELECT
*
FROM
product
ORDER BY
price >= 140 DESC, price ASC;
SELECT뒤에 실행되므로 AS구에서 쓰인 별명 쓸 수 있음ORDER BY구에 의한 정렬은 컴퓨터터에 부하가 걸리기 때문에 필요할 때만 사용LIMIT를 사용SELECT
*
FROM
product
ORDER BY
price
LIMIT
3;
OFFSET을 사용LIMIT안에 시작위치, 행수 순으로 쓰는 방법도있음SELECT
*
FROM
product
ORDER BY
price
LIMIT
3
OFFSET
2;
SELECT
*
FROM
product
ORDER BY
price
LIMIT
2, 3;
LIMIT구와 OFFSET구는 SELECT문 중에서 가장 마지막에 기입OFFSET보다 뒤에 적는 구는 없음OFFSET구, LIMIT구| 작성법 순서 | 실행 순서 |
|---|---|
| SELECT | FROM |
| DISTINCT | WHERE |
| FROM | GROUP BY |
| WHERE | HAVING |
| GROUP BY | SELECT |
| HAVING | DISTINCT |
| ORDER BY | ORDER BY |
| LIMIT | OFFSET |
| OFFSET | LIMIT |
출처: 그림으로 배우는 SQL 입문