전에 썼던 정리 게시글을 먼저 보시는 것을 추천드립니다.
목차
1. ORDER BY문
2. ASC (오름차순)
3. DESC (내림차순)
4. ORDER BY 뒤에 숫자 입력 시
5. ORDER BY문 컬럼 개수와 인자 개수
1. ORDER BY문
ORDER BY문은 레코드를 특정 컬럼 기준으로 정렬로 출력할 때 사용합니다.
SELECT [컬럼_이름] FROM [테이블_이름] ORDER BY [컬럼_이름] [ASC 또는 DESC]
ORDER BY문
2. ASC (오름차순)
ASC (Ascending) : 오름차순
ASC 사용 시 ORDER BY문 안에 있는 컬럼을 기준으로 오름차순으로 정렬합니다.
오름차순은 1, 2, 3, 4, 5 순
※ 만약 ASC나 DESC 둘 중 하나라도 입력을 안 할시 오름차순으로 자동 정렬합니다.
ORDER BY문에서 ASC 입력 시
사용 코드
SELECT * FROM test_table ORDER BY num;
출력
+-----+----------+---------+--------------------------+
| num | name | id | email |
+-----+----------+---------+--------------------------+
| 1 | 이리세 | leelise | l.lise413@gmail.com |
+-----+----------+---------+--------------------------+
| 2 | 하늬아시 | haniasi | hani.asi471135@gmail.com |
+-----+----------+---------+--------------------------+
ORDER BY문에서 ASC, DESC 모두 없이 입력 시
사용 코드
SELECT * FROM test_table ORDER BY num;
출력
+-----+----------+---------+--------------------------+
| num | name | id | email |
+-----+----------+---------+--------------------------+
| 1 | 이리세 | leelise | l.lise413@gmail.com |
+-----+----------+---------+--------------------------+
| 2 | 하늬아시 | haniasi | hani.asi471135@gmail.com |
+-----+----------+---------+--------------------------+
3. DESC (내림차순)
DESC (Descending) : 내림차순
DESC 사용 시 ORDER BY문 안에 있는 컬럼을 기준으로 내림차순으로 정렬합니다.
내림차순은 5, 4, 3, 2, 1 순
ORDER BY문에서 DESC 입력 시
사용 코드
SELECT * FROM test_table ORDER BY num DESC;
출력
+-----+----------+---------+--------------------------+
| num | name | id | email |
+-----+----------+---------+--------------------------+
| 2 | 하늬아시 | haniasi | hani.asi471135@gmail.com |
+-----+----------+---------+--------------------------+
| 1 | 이리세 | leelise | l.lise413@gmail.com |
+-----+----------+---------+--------------------------+
4. ORDER BY 뒤에 숫자 입력 시
ORDER BY 뒤에 컬럼 이름이 아니라 숫자를 입력 시 컬럼의 순서를 의미합니다.
ORDER BY 1은 첫 번째 컬럼인 num 컬럼을 의미합니다.
ORDER BY 3은 세 번째 컬럼인 id 컬럼을 의미합니다.
만약 해당 테이블의 컬럼 개수를 넘어서 입력하게 해당 개수의 컬럼은 존재하지 않아서 오류가 발생합니다.
ORDER BY 뒤에 숫자 입력 시
사용 코드
SELECT * FROM test_table ORDER BY 1;
출력
+-----+----------+---------+--------------------------+
| num | name | id | email |
+-----+----------+---------+--------------------------+
| 1 | 이리세 | leelise | l.lise413@gmail.com |
+-----+----------+---------+--------------------------+
| 2 | 하늬아시 | haniasi | hani.asi471135@gmail.com |
+-----+----------+---------+--------------------------+
5. ORDER BY문 컬럼 개수와 인자 개수
ORDER BY 앞의 컬럼 개수와 뒤의 인자 개수는 같거나 작아야 합니다.
만약 앞의 컬럼 개수가 2이고 뒤의 인자 개수가 1거나 2이면 해당 컬럼의 개수가 2개가 존재하니 정상적으로 출력이 가능합니다.
하지만 앞의 컬럼 개수가 3이고 뒤의 인자 개수가 4면 해당 컬럼의 개수가 3개까지만 존재하고 4개가 존재하지 않기 때문에 오류가 발생합니다.
첫 번째와 두 번째 컬럼을 요구했을 경우
사용 코드
SELECT num, id FROM test_table ORDER BY 1;
출력
+-----+---------+
| num | id |
+-----+---------+
| 1 | leelise |
+-----+---------+
| 2 | haniasi |
+-----+---------+
사용 코드
SELECT num, id FROM test_table ORDER BY 2;
출력
+-----+---------+
| num | id |
+-----+---------+
| 1 | leelise |
+-----+---------+
| 2 | haniasi |
+-----+---------+
컬럼 개수를 초과해서 요구했을 경우
사용 코드
SELECT num, id FROM test_table ORDER BY 3;
출력
ERROR 1052 (42S22): Unkwon column '3' in 'order clause'
'개발자 (Developer) > 정리 (Theorem)' 카테고리의 다른 글
해킹이란 (0) | 2023.05.18 |
---|---|
SQL - 레코드 출력 개수 제한 (0) | 2023.05.17 |
SQL - 서브쿼리 (0) | 2023.05.17 |
SQL - 조건문 (0) | 2023.05.17 |
SQL - 함수 (0) | 2023.05.16 |
댓글