본문 바로가기
IT 프로그래밍 관련/MySQL

MySQL 테이블 데이터 정렬하기

by 지나는행인 2021. 3. 16.
728x90

테이블은 판다스 데이터프레임같이 데이터 정렬이 가능하다.  

 

정렬에는 오름차순 정렬이 있고, 내림차순 정렬이 있다.

 

정렬을 해주는 키워드는 order by    로,  써야하는 위치가 중요하다.

 

books 테이블의 기본 화면이다.

 

여기서 author_lname  컬럼을 정렬해보겠다.    코드는

1
2
3
4
5
6
7
8
9
select author_lname from books order by author_lname;
 
 
 
 
 
select author_lname 
from books 
order by author_lname;
cs

select author_lname from books order by author_lname;

가 정렬을 위한 코드이다.

books 테이블에서 author_lname컬럼을 정렬하고, author_lname컬럼을 보여줘라.

 

아래의 7행부터 쓴 코드는  1번행의 코드를 세줄에 나눠 쓴 코드이다.

보편적으로 코드를 알아보기 쉽게 ,  나눠쓴다.

 

코드를 실행 시 

위와 같이 컬럼이 알파벳순으로 정렬된 것을 볼 수 있다.

 

select author_lname from books order by author_lname ;

select author_lname from books order by author_lname asc;

(위의 두 코드 다 오름차순 정렬이다. asc 는 써도 되고 안써도 된다.)

 

기본적으로 order by 는 default 값이 asc   인 오름차순이다.

 

만약 내림차순으로 정렬을 하고 싶을 때는

 

select author_lname from books order by author_lname desc ;

 

내림차순을 하기 위한 desc 를 써준다.

 

그렇다면 두가지 이상으로 정렬하는 것도 가능할까?

 

가능하다.   그리고 각각 따로 오름차순, 내림차순의 정렬이 가능하다.

 

예를 들어보겠다.

 

1
2
3
select title, author_lname
from books
order by author_lname asc, title asc;
cs

위의 코드를 실행시 , books 테이블의  author_lname 컬럼을 먼저 오름차순으로 정렬하고, 그 정렬한 상태에서 title

컬럼을 오름차순으로 정렬한다.

말로는 잘 이해가 안가지만,

실행화면으로 보면 이해가 간다.

 

위의 화면을 보면 먼저 author_lname 컬럼이 알파벳순으로 오름차순 정렬되어 있는 걸 볼 수 있다.

그리고 lname에서 같은 값이 존재할 시 그 안에서 title 컬럼이 오름차순으로 정렬된 것을 볼 수 있다.

title 컬럼 하나만 놓고 본다면  정렬 모양이 이상하다.

 

두개의 컬럼을 정렬하는 것을 예로 들었지만, 여러개도 가능하다. 정렬은 order by 뒤의 컬럼 순서대로 정렬된다.

 

 

댓글