Programming/Database

[ORACLE 초급] SELECT문 - SELECT, FROM, ORDER BY

728x90
반응형

데이터 조회 - 셀렉션, 프로젝션, 조인

데이터를 조회하는 데 사용하는 SELECT문은 크게 세 가지 방식으로 나뉜다.

  1. 셀렉션
    행 단위로 조회

    테이블의 전체 데이터 중 몇몇 가로줄의 데이터만 선택할 때 사용
    ex) 전체 학생 중 졸업생의 데이터만 골라 출력

  2. 프로젝션
    열 단위로 조회

    테이블을 구성하는 전체 항목 중 특정 항목만 조회할 때 사용
    ex) 전체 학생 데이터에서 학번, 이름, 학과 코드만 조회

  3. 조인
    두 개 이상의 테이블을 사용하여 조회

    두 개 이상의 테이블을 연결하여 마치 하나의 테이블인 것처럼 데이터를 조회하는 방식 (외래키를 이용하여 연결)

SELECT절과 FROM절

SELECT [조회할 열1 이름], [열2 이름], ... , [열N 이름] 
FROM [조회할 테이블 이름];

SELECT문 : 데이터베이스에 보관되어 있는 데이터 조회 (SELECT절과 FROM절로 구성)

SELECT절 : FROM절에 명시한 테이블에서 조회할 열이나 데이터 조합, 연산식 지정
FROM절 : 조회할 데이터가 저장된 테이블명

DISTINCT

중복된 데이터를 삭제

-- 열 한개 중복 제거
SELECT DISTINCT DEPTNO
FROM EMP;

-- 열 여러 개 중복 제거
SELECT DISTINCT DEPTNO, JOB
FROM EMP;

ALIAS

별칭을 통해 열 이름 임의로 지정 (열 이름이 길거나 보안, 데이터 노출의 문제로 사용)

-- 별칭 지을 열 이후 한 칸 띄우고 별칭 지정
SELECT ENAME, SAL, SAL*12+COMM ANNSAL, COMM
FROM EMP;

-- 별칭 지을 열 이후 한 칸 띄우고 큰따옴표로 묶어 별칭 지정
SELECT ENAME, SAL, SAL*12+COMM "ANNSAL", COMM
FROM EMP;

-- 별칭 지을 열 이후 한 칸 띄우고 AS 뒤에 별칭 지정
SELECT ENAME, SAL, SAL*12+COMM AS ANNSAL, COMM
FROM EMP;

ORDER BY

데이터를 정렬된 상태로 출력

SELECT [조회할 열1 이름], [열2 이름], ... , [열N 이름]
FROM [조회할 테이블 이름]
...
ORDER BY [정렬하려는 열 이름(하나 또는 하나 이상)] [옵션(오름차순_ASC, 내림차순_DESC)];
-- 각 열에 내림차순과 오름차순 동시 사용
SELECT *
FROM EMP
ORDER BY DEPTNO ASC, SAL DESC;

주의점?
정렬하는 데는 많은 자원(비용)을 소모하기 때문에 꼭 필요한 경우가 아니면 사용하지 않는 것이 좋다.
즉, SQL문 효율이 낮아진다. = 서비스 응답 시간이 느려진다.

728x90
반응형