반응형

1. 정렬의 기본 규칙 (ORDER BY)
| 데이터베이스에 저장된 데이터는 기본적으로 순서가 뒤죽박죽이다. 이를 보기 좋게 정렬 하고 싶을 때 문장의 가장 마지막에 ORDER BY를 사용 한다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ SELECT * | [DISTINCT] 컬럼|수식 [AS 별명], ...... FROM 테이블 ORDER BY 컬럼 [ASC |DESC], 컬럼 [ASC |DESC], ..... ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 1) ASC(오름차순): 작은 값부터 큰 값 순서 (예: 1, 2, 3... / 가, 나, 다... / 과거→미래) * 기본값이므로 ASC 혹은 DESC 둘다 생략하면 자동으로 오름차순 정렬된다 2) DESC (내림차순): 큰 값부터 작은 값 순서 (예: 10, 9, 8... / 하, 파, 타... / 최근→과거) * 회사 대부분은 내림차순 정렬을 많이 쓰므로 ASC 보단 DECS 를 많이 사용 한다 ex) 급여를 많이 받는 사람순 혹은 성적이 높은 순 등 내림 차순 사용하는 일이 많음 * 1개가 아닌 두개 컬럼으로 정렬 하는 이유는? 앞에 있는 애들(1번째 컬럼)로 정렬을 했는데 정렬 안된 애들만 2번째 컬럼으로 정렬을 해라(2번째컬럼) ex) 사번으로 정리하고, 쌀로 정리해라 -----> 명령어를 의미없게 잘못 사용한 것: 사번과 급여는 겹칠 일이 없기 때문에 의미 없는 검색임 * 컬럼 순서를 정확히 적어야 된다 |
2. 정렬 검색
| SQL> SELECT eno 사번,ename 이름, sal 급여 ---> 사원번호, 이름, 급여 항목을 가져오겠다, 사번, 이름, 급여는 화면에 출력될 때 보여줄 별명 2 FROM emp ---> emp 테이블로 부터 데이터를 꺼내오겠다 3 ORDER BY sal DESC; ---> 급여(sal)을 기준으로 정렬한다. 내림차순으로(DESC) * sal 이 아닌 급여라는 별명으로 명령어를 적어도 됨 SQL> SELECT eno 사번, ename 이름, sal 급여 2 FROM emp 3 ORDER BY 3 DESC; 근데 가급적 이렇게 쓰지 말것, 왜냐하면 만약 컬럼이 100개 라면 순서를 일일히 다 세봐야 해서 비효율적임 |
| SQL> SELECT eno 사번, ename 이름 2 FROM emp 3 ORDER BY sal*12+nvl(comm,0) DESC; ---> SELECT 문에 sal, comm 을 적지 않았기 때문에 화면에는 사번, 이름만 나오게 됨 * 컬럼이 아닌 sal*12+nvl(comm,0) 이런식으로 수식으로도 정렬이 가능함 SQL> SELECT eno 사번, ename 이름, sal 급여, comm 보너스 2 FROM emp 3 ORDER BY sal DESC, comm DESC; ---> 1순위(sal DESC): 먼저 급여가 높은 순서대로 정렬해줘 그다음 2순위(comm DESC): 만약 급여가 똑같은 사람들이 있다면, 그 사람들 사이에서는 보너스가 높은 순서대로 다시 정렬해줘 |
3. 묶음 검색
| 업무별로 사원의 급여를 검색함 SQL> SELECT job 업무, eno 사번, ename 이름, sal 급여 2 FROM emp 3 ORDER BY 업무; ---> 위에서 설정한 업무(=job) 기준으로 정렬해줘. ASC,DESC 둘 중 아무 것도 설정 안했으므로 기본값인 ASC(오름차순) 으로 정렬됨 부서별로 사원의 급여를 검색함 SQL> SELECT dno 부서번호, eno 사번, ename 이름, sal 급여 2 FROM emp 3 ORDER BY 부서번호, sal DESC; ---> 일단 같은 부서 사람들끼리 묶어서 모아주고, 부서 내에서 급여(sal)가 높은 사람부터 낮은 사람 순서(내림차순) 로 보여줘 정렬 검색과 묶음 검색의 차이점 정렬 검색:1등부터 꼴등까지의 순서를 한눈에 보여준다(순위 확인) 묶음 검색: 공통된 특징을 가진 사람들끼리 모여 있는 상태를 보여준다 *묶음 검색 ---> 중복이 많은 컬럼이 많이 나옴 |
| 💡참고사항 카디널리티: 값의 개수 * ORDER BY절에서 일반적으로 카디널리티가 낮은 데이터들이 많이 옴 |
'Infra & Security Eng > Database Engineering' 카테고리의 다른 글
| SQL - WHERE절 (기본 개념, 다양한 조건 검색, 날짜 검색, 관계 연산자와 부정 연산자) (0) | 2026.01.28 |
|---|---|
| 정렬 문제 (0) | 2026.01.27 |
| SQL - SELECT 문 문제 (0) | 2026.01.27 |
| SELECT문 기본 문법과 활용, 테이블 목록 및 구조 확인, 올바른 데이터 검색, NVL 함수, 연결 연산자 검색, 중복 제거와 정렬 (0) | 2026.01.26 |
| SQL 기초 (RDBMS, SQL 명령어 종류, 테이블 가독성 높이는 작업, 테이블 당 각 용어 정리) (0) | 2026.01.23 |