[MySQL입문] ORDER BY, TOP, OFFSET

Date:     Updated:

카테고리:

태그:

인프런에 있는 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;

image

이 데이터 테이블에서 가장 빨리 태어난 사람은 1820 년생!

  • 순서로는 WHERE 다음에 온다.
  • 오름차순 ASC가 디폴트다.
    • 생략하면 오름차순 정렬


🔥 DESC : 내림차순 정렬

SELECT namefirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;  

image

먼저 쓰인 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;  

image

SELECT TOP 0.1 PERCENT *
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;  

image


🚀 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;

image

SELECT ~ ORDER BY 를 실행하면 나오는 테이블에서 상위 100 개 행은 제외하고 그 이후 5 개의 행을 출력한다. 즉, SELECT ~ ORDER BY 를 실행하면 나오는 테이블의 101 ~ 105 번째 행을 출력하는 것이다.



🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우 
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄

맨 위로 이동하기

DB 카테고리 내 다른 글 보러가기

댓글 남기기