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 입문