일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 정답
- 설치
- 태그
- MIT 챌린지
- 자바
- 오류
- 연습
- 후기
- JSP
- javascript
- HTML
- sql
- OSSU
- mysql
- 지스타 통역
- 테이블 태그
- 부산아이티윌교육센터
- VirtualBox
- 국비지원
- 웹 개발
- 이미지 태그
- database
- Tomcat 9.0
- 가상머신
- 데이터베이스
- 일기
- 클라우드기반파이썬네트워크정보시스템과정
- 하루노트
- 블로그
- eclipse
- Today
- Total
민둥 개발자의 계발 블로그
[mysql] ORDER BY 절 본문
안녕하세요 민둥산의 민둥이입니다. 저번에는 SELECT구문을 더 다채롭게 해주는 구문들에 대해서 이야기했었는데요, SELECT 구문을 다채롭게 하는 WHERE 절 외에도 다른 구문이 더 있습니다. 바로 ORDER BY 절!!
ORDER BY 절을 직역하자면 "어느 순서대로~" 라는 뜻인데, 이 말 그대로 SELECT 구문을 사용하여 칼럼들의 값을 출력할 때 무엇을 기준으로 정렬할지를 정할 수 있는 구문입니다. 위치는 SELECT FROM WHERE 절의 뒤에 오게 됩니다.
정렬 기준이 될 수 있는 값들은 컬럼, 표현식, 함수 등이 있고 있습니다.
우선 정렬 방식에 대해 설명하기 전에 데이터의 크기에 대한 이해가 필요합니다. 아래의 표에서 보이듯이 오름차순의 경우 크기가 작은 것부터 큰 순으로 정렬되는데 숫자의 경우는 뚜렷하게 알아도 다른 데이터 타입은 헷갈릴 수 있으니 확실하게 보고 가세요! 특히 날짜는 숫자로 보면 최신 날짜가 더 크게 보이기에 더더욱 헷갈릴 수 있으니 주의하세요! 최신 날짜가 오래된 날짜보다 크기가 작습니다. ex) 2022년 1월 13일>2022년 5월 23일
숫자 | 문자 | 날짜 | |
오름차순(사전순) 작은 → 큰 |
1 → 9 | A → Z | 이전 → 이후 |
내림차순 큰 → 작은 |
9 → 1 | Z → A | 이후 → 이전 |
예시
SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC;
위의 예시와 같이 입력할 경우 고용 날짜인 hire_date의 레코드를 기준으로 내림차순 값을 보여줍니다. 즉, 고용된 날짜가 최신인 것부터 오래된 날짜 순으로 위에서 아래로 출력 됩니다.
출력 결과
+-------------+------------+---------------+------------+
| last_name | job_id | department_id | hire_date |
+-------------+------------+---------------+------------+
| Banda | SA_REP | 80 | 2000-04-21 |
| Kumar | SA_REP | 80 | 2000-04-21 |
| Ande | SA_REP | 80 | 2000-03-24 |
| Markle | ST_CLERK | 50 | 2000-03-08 |
| Lee | SA_REP | 80 | 2000-02-23 |
| Philtanker | ST_CLERK | 50 | 2000-02-06 |
| Geoni | SH_CLERK | 50 | 2000-02-03 |
| Zlotkey | SA_MAN | 80 | 2000-01-29 |
| Marvins | SA_REP | 80 | 2000-01-24 |
| Grant | SH_CLERK | 50 | 2000-01-13 |
…
기본 문법
SELECT 컬럼명,컬럼명... FROM 테이블명
[WHERE 조건식]
ORDER BY 컬럼명/표현식/함수 [ASC/DESC];
기본적으로 ORDER BY 절은 WHERE절과 같이 쓸 경우 WHERE절 뒤에 위치합니다. ORDER BY 키워드 뒤에는 정렬의 기준이 되는 값(칼럼, 표현식, 함수 중 1개)를 지정하고 그 뒤에 ASC 또는 DESC 를 적어서 오름차순 또는 내림차순으로 출력방식을 정할 수 있습니다.
여기서 ASC는 Ascending Order = 오름차순의 약자이고 DESC는 Descending ORDER의 약자입니다. DESC키워드 같은 경우는 테이블의 컬럼 배치를 조회하기 위해서도 쓰이는데요, 그때의 DESC는 Describe의 약자이기에 다른 키워드, 다른 용도입니다. 각자 다른 위치에서 쓰이기에 용도를 잘 기억하시고 사용해야 해요! 추가적으로, ASC/DESC 는 옵션으로 사용할 수 있는 값인데 아무것도 쓰지 않으면 기본값(Default)으로 ASC가 적용됩니다.
재미있는 점은 ORDER BY 절을 여러 번 사용할 수 있다는 점인데요, 예시를 들면 데이터 출력을 고용일(hire_date) 기준으로 정렬했을 때 여전히 겹치는 값들이 있을 수도 있습니다(같은 날짜에 입사한 사람들도 있을 수 있으니까요^^). 그럴 경우 추가적으로 2차 정렬, 3차 정렬을 할 수가 있는데 문법은 단순합니다.
SELECT 컬럼1,컬럼2, 컬럼3... FROM 테이블명
[WHERE 조건식]
ORDER BY 정렬할 컬럼1 [ASC/DESC], 정렬할 기준 2[ASC/DESC] ...;
그냥 뒤에 콤마를 붙이고 두 번째 기준, 세 번째 기준을 적어주면 됩니다:)
'Study > Database' 카테고리의 다른 글
Database SQL 문법 총 정리#2 - 데이터 정의어 DDL (1) | 2022.06.30 |
---|---|
Database SQL 문법 총 정리 (Oracle, mysql) 목차 (0) | 2022.06.30 |
[mysql] 데이터베이스 WHERE 절 (0) | 2022.05.16 |
[mysql] 데이터베이스의 기본 제약조건! (0) | 2022.05.15 |
[mysql] 데이터베이스의 데이터 조회하는 법 (SELECT 문)! (0) | 2022.04.27 |