ORDER BY 개념에 대해서 이야기해봅시다.
ORDER BY 개념에 대해 알기
ORDER BY는 SQL(Structured Query Language) 쿼리에서 출력 데이터를 오름차순이나 내림차순으로 정렬할 때 사용하는 구문입니다.
ORDER BY 절은 SELECT 문에서 논리적으로 가장 마지막에 수행됩니다.
ORDER BY 절에서는 정렬하려고 하는 열의 이름을 하나 또는 하나 이상을 지정해야 합니다.
ORDER BY에서는 2가지 선택 옵션이 있습니다. 정렬하는 열마다 오름차순으로 지정할지 내림차순으로 지정할지를 정할 수 있습니다. 오름차순은 ASC를 붙이며 내림차순은 DESC를 붙입니다.
ORDER BY를 지정한 열은 우선 정렬되고 만약 정렬 옵션을 지정하지 않는다면 기본 값으로 오름 차순으로 설정되게 됩니다.
[ORDER BY 사용 예시]
SELECT *
FROM 테이블명
ORDER BY 컬럼명
SELECT *
FROM 테이블명
ORDER BY 컬럼1 ASC, 컬럼2 DESC
ORDER BY 개념에 대한 설명
ORDER BY는 SQL(Structured Query Language) 쿼리 상에서 데이터를 정렬 시키기 위해서 적용하는 구문을 의미합니다.
ORDER BY는 SELECT 문을 작성할 때 가장 마지막 부분에 사용합니다.
ORDER BY 절을 사용하면 SELECT 한 데이터를 정렬할 수 있습니다. 만약 ORDER BY 절을 따로 명시하지 않는다면 데이터는 임의의 순서대로 출력 됩니다. ORDER BY 절 뒤에는 정렬의 기준이 되는 컬럼이 배치되며 컬럼은 하나가 될 수도 있고 한 개 이상이 될 수도 있습니다. ORDER BY 절 뒤에 오는 컬럼에는 옵션을 붙일 수 있습니다.
ORDER BY 절 뒤에 붙일 수 있는 옵션은 크게 2가지입니다. 옵션 2가지는 오름차순과 내림차순입니다.
오름차순은 ASC를 사용하며 내림차순은 DESC를 사용합니다. 옵션을 생략하면 ASC가 기본 값이 됩니다.
[ORDER BY 절의 2가지 옵션]
구분 | 내용 |
ASC | 오름차순(Ascending) |
DESC | 내림차순(Descending) |
만약 정렬의 기준이 되는 컬럼에 NULL 데이터가 포함되어 있는 경우는 데이터베이스의 종류에 따라서 정렬의 위치가 달라지게 됩니다. 오라클(Oracle)의 경우는 NULL을 최대 값으로 취급합니다. 따라서 오름차순으로 정렬했을 경우 가장 마지막에 위치하게 됩니다. 하지만 SQL Server의 경우는 NULL을 최소 값으로 취급하기 때문에 내림차순으로 정렬해야 가장 마지막에 위치하게 됩니다.
만약 순서를 변경하고자 한다면 ORDER BY 절에 NULLS FIRST 또는 NULLS LAST와 같은 옵션을 사용하여 NULL 데이터에 대한 정렬 상의 순서를 조정할 수 있습니다.
ORDER BY 절은 정렬이 반드시 필요한 경우가 아니라면 사용하지 않는 것이 사실 좋습니다. 왜냐하면 특정 기준에 따라서 데이터를 정렬 시키도록 하는 것은 리소스를 많이 사용하게 됩니다. SELECT 문을 통해 조회할 때 모두 확정된 상태에서 ORDER BY 절의 명시된 기준에 따라 정렬하는 방식인데 이 때 출력 되는 데이터를 선정하는 시간 보다 정렬 시키는데 더 많은 시간이 들어갈 수 있습니다. 따라서 조회 속도를 빠르게 하는 것이 더 중요하다면 ORDER BY를 사용하지 않는 것이 좋습니다. 하지만 조회 속도에 큰 차이가 없고 데이터를 확인하기 위해서 필요하다면 반드시 사용해야 합니다.
ORDER BY 1의 표현을 사용하는 경우는 조회하려고 하는 테이블의 1번째 컬럼 기준으로 정렬하라는 의미입니다. 마찬가지로 ORDER BY 2는 2번째 컬럼 기준으로 정렬하라는 의미입니다. 즉 ORDER BY 뒤에 숫자가 들어가면 컬럼 번호를 이용하여 정렬하는 것입니다.