반응형
DBMS - Oracle Database
VERSION - Oracle Database 11g Release 2
IDE - SQL Developer
실습용 데이터를 입력하지 않고, 오라클 데이터베이스를 설치하면 기본으로 제공되는 테이블과 계정들로 학습한 내용입니다.
※ 데이터를 조회하는 3가지 방법 - 셀렉션, 프로젝션, 조인
- 행 단위로 조회하는 셀렉션
- 열 단위로 조회하는 프로젝션
- 두 개 이상의 테이블을 사용하여 조회하는 조인
※ SQL의 기본 뼈대, SELECT절과 FROM절
1. * 로 테이블 전체 열 출력하기
SELECT * FROM EMP;
2. 테이블 부분 열 출력하기
SELECT EMPNO, ENAME, DEPTNO FROM EMP;
3. DISTINCT로 열 중복 제거하기(열이 한 개인 경우)
SELECT DISTINCT DEPTNO FROM EMP;
4. DISTINCT로 열 중복 제거하기(열이 여러 개인 경우)
SELECT DISTINCT JOB, DEPTNO FROM EMP;
결과 >> 각 MANAGER들의 부서 번호는 20, 30, 10으로 다르기 떄문에 중복 데이터 X
5. ALL로 중복되는 열 제거 없이 그대로 출력하기
SELECT ALL JOB, DEPTNO FROM EMP;
6. 열에 연산식을 사용하여 출력하기
SELECT ENAME, SAL, SAL*12+COMM, COMM FROM EMP;
7. 별칭을 사용하여 사원의 연간 총 수입 출력하기
SELECT ENAME, SAL, SAL*12+COMM AS ANNSAL, COMM
FROM EMP;
결과 >>
별칭을 지정하는 방식
사용방법 | 설명 |
SAL * 12 + COMM ANNSAL | 연산 및 가공된 문장 이후 한 칸 띄우고 별칭 지정 |
SAL * 12 + COMM "ANNSAL" | 연산 및 가공된 문장 이후 한 칸 띄우고 별칭을 큰따옴표("")로 묶어 지정 |
SAL * 12 + COMM AS ANNSAL | 연산 및 가공된 문장 이후 한 칸 띄운 후 'AS', 한 칸 뒤에 별칭 지정 |
SAL * 12 + COMM AS "ANNSAL" | 연산 및 가공된 문장 이후 한 칸 띄운 후 'AS', 한 칸 뒤에 별칭을 큰따옴표(" ")로 묶어 지정 |
실무에서는 별칭을 지정하는 4가지 방식 중 세번째 방식을 선호하는 경향이 있다.
우선 'AS'가 붙는 형식을 선호하는 이유는 조회해야 할 열이 수십, 수백 개일 경우에 어떤 단어가 별칭인지 알아보기 편하기 때문.
+ 큰따옴표를 사용하지 않으려는 프로그래머들 습관
8. EMP 테이블의 모든 열을 급여 기준으로 오름차순 정렬하기
SELECT * FROM EMP ORDER BY SAL;
9. 각각의 열에 내림차순과 오름차순 동시에 사용하기
SELECT * FROM EMP ORDER BY DEPTNO ASC, SAL DESC;
결과 >>
ORDER BY절을 사용한 정렬은 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋다.
여기저기 흩어져 있는 데이터를 특정 기준에 따라 가지런히 순서를 맞추는 것은 많은 자원, 즉 비용을 소모하기 때문.
ORDER BY절이 존재할 경우 SELECT문을 통해 조회할 데이터를 모두 확정한 상태에서 ORDER BY절의 명시된 기준에 따라 정렬.
이때 데이터의 양 또는 정렬 방식에 따라 출력 데이터를 선정하는 시간보다 정렬하는 데 시간이 더 걸릴 수도 있다. 서비스 응답 시간 ↓
즉 정렬을 하지 않으면 결과를 더 빨리 출력.
Reference
|
|
반응형
댓글