들어가기에 앞서
본 게시물은 'MySQL 8.0' 버전을 이용한 '명령 프롬프트(cmd)' 환경에서 작성한 코드를 토대로 만들어졌습니다.
이번 게시물에서는 데이터를 검색할 때 지정된 속성으로 데이터를 정렬하는 'ORDER BY'에 대해서 알아보겠습니다.
ORDER BY - 지정된 속성으로 데이터를 정렬하여 검색
# student 테이블의 전체 속성에 대해서 stdname을 기준으로 오름차순으로 정렬시킨 데이터를 검색
mysql> SELECT * FROM student ORDER BY stdname [ASC];
+--------+---------+-------------+--------+------------+---------------+
| stdnum | stdname | major | sex | birthdate | phonenum |
+--------+---------+-------------+--------+------------+---------------+
| 103 | Dong | economics | Male | 1995-02-24 | 010-5667-9315 |
| 101 | Hong | biology | Female | 1990-02-24 | 010-1234-5323 |
| 104 | Mong | engineering | Female | 1993-02-24 | 010-9462-8814 |
| 102 | Song | physics | Male | 1996-02-24 | 010-3322-8813 |
+--------+---------+-------------+--------+------------+---------------+
4 rows in set (0.00 sec)
'ORDER BY'의 기본값은 오름차순 정렬이므로 오름차순으로 정렬할 때는 'ASC'를 생략할 수 있습니다.
# student 테이블의 전체 속성에 대해서 sex 속성을 기준으로 내림차순으로 정렬시킨 데이터만 검색
mysql> SELECT * FROM student ORDER BY sex DESC;
+--------+---------+-------------+--------+------------+---------------+
| stdnum | stdname | major | sex | birthdate | phonenum |
+--------+---------+-------------+--------+------------+---------------+
| 102 | Song | physics | Male | 1996-02-24 | 010-3322-8813 |
| 103 | Dong | economics | Male | 1995-02-24 | 010-5667-9315 |
| 101 | Hong | biology | Female | 1990-02-24 | 010-1234-5323 |
| 104 | Mong | engineering | Female | 1993-02-24 | 010-9462-8814 |
+--------+---------+-------------+--------+------------+---------------+
4 rows in set (0.00 sec)
반면에 내림차순으로 정렬할 때는 정렬하려는 속성 뒤에 'DESC'를 명시해줘야만 합니다.
# student 테이블에서 stdnum 속성값이 104 이하인 데이터를 sex 속성에 대해서
# 오름차순으로 정렬하되 값이 같은 경우에는 stdnum 속성에 대해서 내림차순으로 정렬
mysql> SELECT * FROM student WHERE stdnum<=104 ORDER BY sex [ASC], stdnum DESC;
+--------+---------+-------------+--------+------------+---------------+
| stdnum | stdname | major | sex | birthdate | phonenum |
+--------+---------+-------------+--------+------------+---------------+
| 104 | Mong | Engineering | Female | 1993-02-24 | 010-9462-8814 |
| 101 | Hong | Biology | Female | 1990-02-24 | 010-1234-5323 |
| 103 | Dong | Biology | Male | 1995-02-24 | 010-5667-9315 |
| 102 | Song | Physics | Male | 1996-02-24 | 010-3322-8813 |
+--------+---------+-------------+--------+------------+---------------+
4 rows in set (0.02 sec)
'WHERE'과 'ORDER BY'를 같이 쓰는 경우에는 'WHERE'이 'ORDER BY' 보다 앞에 옵니다.
또한, 'ORDER BY'를 통해서 복합적인 정렬 조건을 설정해줄 경우 쉼표를 이용하여 조건을 구분해줍니다.
댓글