[MySQL입문] ORDER BY, TOP, OFFSET
카테고리: DB
인프런에 있는 Rookiss님의 [C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스 강의를 듣고 정리한 필기입니다. 😀
🌜 강의 들으러 가기 Click
🚀 ORDER BY : 정렬
🔥 ASC : 오름차순 정렬
SELECT nameFirst, birthYear
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear;
SELECT nameFirst, birthYear
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear ASC;
이 데이터 테이블에서 가장 빨리 태어난 사람은 1820 년생!
- 순서로는
WHERE
다음에 온다. - 오름차순
ASC
가 디폴트다.- 생략하면 오름차순 정렬
🔥 DESC : 내림차순 정렬
SELECT namefirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;
먼저 쓰인 birthYear
을 먼저 내림차순 정렬 하고 그 다음으로 birthMonth
을 내림 차순 정렬하고 그 다음에 birthDay
를 내림 차순 정렬 한다.
🚀 TOP
- **TOP (n) 혹은 TOP n : 상위 n 개의 행들을 선택한다.
- **TOP n PERCENT : 상위 n 퍼센트에 해당하는 행들을 선택한다.
- SELECT 안에서 쓰인다.
- SQL Server 에서만 쓸 수 있는 예약어이다.
SELECT TOP(5) namefirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;
SELECT TOP 5 namefirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;
SELECT TOP 0.1 PERCENT *
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;
🚀 OFFSET FETCH
- OFFSET n ROWS : n 개의 행은 건너 뛴다. 즉, n+1 번째 행부터 출력된다.
- FETCH NEXT n ROWS ONLY : n 개수만큼의 행을 출력한다.
- OFFSET 은 TOP 과 함께 쓰일 수 없다.
SELECT namefirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC
OFFSET 100 ROWS FETCH NEXT 5 ROWS ONLY;
SELECT ~ ORDER BY 를 실행하면 나오는 테이블에서 상위 100 개 행은 제외하고 그 이후 5 개의 행을 출력한다. 즉, SELECT ~ ORDER BY 를 실행하면 나오는 테이블의 101 ~ 105 번째 행을 출력하는 것이다.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기