정렬된 데이터 검색
SQL> SELECT [DISTINCT | ALL] 컬럼, 컬럼 ...
FROM 테이블
ORDER BY 컬럼 [ASC/DESC], 컬럼 [ASC/DESC].......
ASC : 오름차순 (1, 2, 3, ...)
DESC : 내림차순 (10, 9, 8, ...)
예제 1. 사원의 이름을 급여 순으로 검색한다.
SELECT eno 사번, ename 이름, sal 급여
FROM emp
ORDER BY sal DESC;
사번 이름 급여
------- ---------- ----------
0001 안영희 4800
1001 문시현 4500
2003 정의찬 4350
1003 양선호 4300
1002 김주란 4100
0120 김경현 4000
2001 남궁연호 3950
예제 2. 사원의 사번과 이름을 연봉 순으로 검색한다.
SELECT eno 사번, ename 이름, sal*12+NVL(comm,0) 연봉
FROM emp
ORDER BY 연봉 DESC;
사번 이름 연봉
------- ---------- ----------
0001 안영희 57600
1001 문시현 54520
2003 정의찬 52200
1003 양선호 51600
0120 김경현 50500
1002 김주란 49530
0201 안영숙 48800
정렬을 이용한 그룹 검색
예제 3. 업무 별로 사원의 급여를 검색한다.
SELECT job 업무, eno 사번, ename 이름, sal 급여
FROM emp
ORDER BY 업무;
업무 사번 이름 급여
------- ------- ---------- ----------
개발 2002 제갈민 1520
개발 2001 남궁연호 3950
개발 2003 정의찬 4350
개발 2007 이초록 1989
개발 2008 윤고은 2100
경영 0001 안영희 4800
모델링 1002 김주란 4100
예제 4. 각 부서별로 사원의 급여를 검색한다. 단 급여를 많이 받는 사람부터 검색한다.
SELECT dno 부서번호, eno 사번, ename 이름, sal 급여
FROM emp
ORDER BY 부서번호, 급여 DESC;
부서 사번 이름 급여
---- ------- ---------- ----------
01 0001 안영희 4800
01 0201 안영숙 3900
01 0202 손하늘 3510
02 0301 이승철 3400
02 0302 박선경 3300
02 0801 천유정 2900
02 0702 김민지 1100
실습
1. 성적순으로 학생의 이름을 검색한다.
SELECT sno 학번, avr 성적, sname 이름
FROM student
ORDER BY avr DESC;
학번 성적 이름
------- ---------- ----------
924501 4 권석복
918205 3.99 독고낭도
933904 3.98 임영현
938202 3.93 신섭인
938204 3.92 최현
945601 3.9 심정용
915601 3.9 강태용
2. 학과별 성적순으로 학생의 정보를 검색한다.
SELECT major 학과, avr 성적, sno 학번, sname 이름
FROM student
ORDER BY major, avr DESC;
학과 성적 학번 이름
------- ---------- ------- ----------
물리 4 924501 권석복
물리 3.33 914504 심빈경
물리 3.33 914502 문수보
물리 3.22 934504 갑서진
물리 3.2 944503 곽득용
물리 3 924505 서찬호
물리 2.99 924502 은정현
3. 학년별 성적순으로 학생의 정보를 검색한다.
SELECT syear 학년, avr 성적, sno 학번, sname 이름
FROM student
ORDER BY 학년, avr DESC;
학년 성적 학번 이름
---------- ---------- ------- ----------
1 3.9 945601 심정용
1 3.71 948202 김성지
1 3.56 945302 김람석
1 3.25 943902 하정자
1 3.23 948205 신형일
1 3.21 948204 서창동
1 3.2 944503 곽득용
4. 학과별 학년별로 학생의 정보를 성적순으로 검색한다.
SELECT major 학과, avr 성적, syear 학년, sno 학번, sname 이름
FROM student
ORDER BY 학과, 학년, avr DESC;
학과 성적 학년 학번 이름
------- ---------- ---------- ------- ----------
물리 3.2 1 944503 곽득용
물리 2.76 1 944511 김형진
물리 1.99 1 944512 서동조
물리 .96 1 944501 최현각
물리 3.22 2 934504 갑서진
물리 2.33 2 934503 최모각
물리 2.16 2 934501 김아진
5. 학점 순으로 과목 이름을 검색한다.
SELECT st_num 학점, cno 과목번호, cname 과목이름
FROM course
ORDER BY 학점 DESC;
학점 과목번호 과목이름
---------- --------- ------------
3 1217 고분자화학
3 1782 세포배양학
3 2312 생리학
3 2119 영양생리학
3 2115 식품분석실험
3 1213 유기화학
3 2111 식품화학
6. 각 학과별로 교수의 정보를 검색한다.
SELECT section 학과, pno 교수번호, pname 이름, orders 지위, hiredate 부임일자
FROM professor
ORDER BY 학과;
학과 교수번 이름 지위 부임일자
------- ------- ---------- ------- --------
물리 1018 김응전 조교수 99/02/18
물리 1012 이영준 부교수 00/05/18
물리 1013 하영진 부교수 99/04/19
물리 1009 이준영 정교수 91/10/04
물리 1016 호연작 조교수 09/10/21
물리 1010 이규진 정교수 98/10/07
생물 1021 왕사진 정교수 97/02/17
7. 지위별로 교수의 정보를 검색한다.
SELECT orders 지위, pno 교수번호, pname 이름, section 학과, hiredate 부임일자
FROM professor
ORDER BY 지위;
지위 교수번 이름 학과 부임일자
------- ------- ---------- ------- --------
부교수 1022 이준 생물 89/05/05
부교수 1032 이유당 유공 88/11/01
부교수 1036 성현수 유공 93/07/13
부교수 1034 최해연 식영 98/07/02
부교수 1012 이영준 물리 00/05/18
부교수 1004 시진영 화학 91/02/01
부교수 1006 장청아 화학 03/05/20
8. 각 학과별로 교수의 정보를 부임일자 순으로 검색한다.
SELECT section 학과, hiredate 부임일자, pno 교수번호, pname 이름, orders 지위
FROM professor
ORDER BY 학과, 부임일자;
학과 부임일자 교수번 이름 지위
------- -------- ------- ---------- -------
물리 91/10/04 1009 이준영 정교수
물리 98/10/07 1010 이규진 정교수
물리 99/02/18 1018 김응전 조교수
물리 99/04/19 1013 하영진 부교수
물리 00/05/18 1012 이영준 부교수
물리 09/10/21 1016 호연작 조교수
생물 89/05/05 1022 이준 부교수
9. 급여가 10% 인상된 경우 부서별로 각 사원의 연봉을 연봉순으로 검색한다.
SELECT job 부서, eno 사번, ename 이름, sal*1.1*12+NVL(comm,0) 연봉
FROM emp
ORDER BY 부서, 연봉 DESC;
부서 사번 이름 연봉
------- ------- ---------- ----------
개발 2003 정의찬 57420
개발 2001 남궁연호 52340
개발 2007 이초록 28554.8
개발 2008 윤고은 27720
개발 2002 제갈민 22064
경영 0001 안영희 63360
모델링 1001 문시현 59920
10. 보너스가 100% 인상된 경우 업무별로 각 사원의 연봉을 연봉순으로 검색한다.
SELECT eno 사번, ename 이름, sal*12+NVL(2*comm,0) 연봉
FROM emp
ORDER BY 연봉 DESC;
사번 이름 연봉
------- ---------- ----------
0001 안영희 57600
1001 문시현 55040
0120 김경현 53000
2003 정의찬 52200
1003 양선호 51600
0201 안영숙 50800
1002 김주란 49860
'SQL 공부 기록' 카테고리의 다른 글
SQL 6 - 관계 연산자와 LIKE 연산자 (0) | 2021.10.27 |
---|---|
SQL 5 - WHERE 절을 이용한 조건 검색 (0) | 2021.10.26 |
SQL 페이지, 글자 포멧 설정 (0) | 2021.10.25 |
SQL 3 - 연결 연산자(||) 및 중복 제거(DISTINCT) (0) | 2021.10.22 |
SQL 2 - SELECT 문 2 (별명, 수식, NULL) (0) | 2021.10.21 |