반응형

데이터를 원하는 순서로 정렬하고, 조회할 수 있는 쿼리를 알아보겠습니다.

- ORDER BY와 LIMIT 사용법 -

 


 

1. ORDER BY

select * from students
order by id

 

- order by 절은 어떠한 컬럼이나 식을 기준으로 출력 결과를 정렬할 때 사용합니다.

 

- 위의 코드는 students 테이블의 데이터들을 id 컬럼 기준으로 정렬한 것입니다.

- 예를 들어 id가 1부터 10까지 있다면, 1 2 3 4 ~ 9 10 순서로 정렬됩니다.

 

 

2. 정렬 옵션 설정

select * from students
order by id desc

 

- 정렬 옵션은 asc와 desc가 있는데, 기본적으로 asc가 적용되어 있습니다.

 

- 위 코드는 desc 옵션을 써서 역순으로 정렬한 것입니다.

- 예를 들어 id가 1부터 10까지 있다면, 10 9 8 7 ~ 2 1 순서로 정렬됩니다.

 

 

3. 타입별 기본 정렬 순서 (asc)

- 문자 : 영어는 알파벳 순서, 한글은 가나다 순서

- 숫자 : 값이 작은 것부터 정렬

- 날짜 : 예전 날짜부터 최근 날짜로 정렬

 

 

3. where 함께 사용

 select * from students
 where name like '김%'
 order by id desc

 

- students 테이블에서 name의 값이 "김"으로 시작되는 데이터들을 id의 역순으로 정렬한 코드입니다.

- where 절과 order by 절을 함께 사용하는 경우 where 절 뒤에 써주면 됩니다.

 

 

4. 다중 컬럼 정렬

 select * from students
 order by name, score desc, id

 

- name, gradescore, id 세 개의 컬럼으로 정렬한 코드입니다.

 

- 1차적으로 name을 기준으로 순서대로 정렬되고, 2차적으로 score를 기준으로 역순으로 정렬됩니다.

- 마지막으로 id를 기준으로 순서대로 정렬됩니다.

 

 

* 예시 데이터

name score id
이유진 70 5
김지은 30 20
김지은 80 15
김지은 30 10

 

- 이와 같은 데이터가 있다고 가정했을 때, 위의 코드 대로 정렬한다면 아래와 같이 출력됩니다.

 

 

* 정렬 결과

name score id
김지은 80 15
김지은 30 10
김지은 30 20
이유진 70 5

 

- "김지은"이라는 동명이인이 3명이 있다고 했을 때, 그 다음 정렬이 score로 넘어갑니다.

- score도 같다면 id의 값으로 정렬됩니다.

 

 

5. LIMIT

 select * from students
 order by name, score desc, id
 limit 1, 2

 

- limit 절은 order by 보다 뒤에 써주면 됩니다.

 

- limit a, b라고 했을 때, a번째 위치부터 b개의 데이터를 조회하겠다는 뜻입니다.

- 이때, a는 0부터 시작합니다.

 

 

* 조회 결과

name score id
김지은 30 10
김지은 30 20

 

- limit 1, 2로 조회했으므로 1번째 데이터부터 2개가 출력됩니다.

 

 

 

이상으로 MySQL 데이터 정렬 및 부분 조회 방법에 대해 알아보았습니다.

 


 

반응형