본문 바로가기
SQL

[SQL] SELECT문

by lmyourpearl 2025. 11. 19.

테이블 구성 확인하기

-- 테이블 구성 살펴보기
-- DESC 테이블 명;
DESC EMP;

 

데이터를 조회하는 3가지 방법

행 단위로 조회하는 셀렉션

selection은 원하는 데이터를 행 단위로 조회하는 방식으로 테이블 전체 데이터 중 몇몇 가로줄의 데이터만 선택할 때 사용.

 

열 단위로 조회하는 프로젝션

projection은 원하는 데이터를 열 단위로 조회하는 방식

 

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

join은 2개 이상의 테이블을 좌우로 연결하여 마치 하나인 것처럼 데이터를 조회하는 방식


SELECT문

데이터베이스에 보관한 데이터를 조회할 때 사용하며 SELECT절과 FROM절을 기본 구성으로 SELEC문을 작성.

FROM절에는 조회할 데이터를 저장한 테이블 이름을 지정하고 SELECT절에는 FROM절에 명시한 테이블에서 조회할 열이나 여러 열에 저장된 데이터의 조합 또는 연산식을 지정할 수 있음.

-- 기본 형식

SELECT [조회할 열1 이름], [열2 이름], ..., [열n 이름]
FROM   [조회할 테이블 이름];
키워드 필수 요소 설명
SELECT 조회할 열 이름이나 출력할 데이터를 하나 이상 지정
또는 애스터리스크(*)로 전체 열을 지정
SELECT절, 조회할 열을 지정
FROM 조회할 테이블 이름 FROM절, 조회할 테이블을 지정

 

 

테이블 전체 열 조회하기

-- 테이블 전체 열 조회하기
-- SELECT * FROM 테이블명;

SELECT * FROM EMP;

 

테이블 부분 열 출력하기

-- 열을 쉼표로 구분하여 출력
-- SELECT 열 이름, 
-- 	FROM 테이블명;

SELECT EMPNO, ENAME, DEPTNO
	FROM EMP;

중복 데이터 삭제하기(DISTINCT)

DISTINCT는 조회한 데이터에서 불필요한 중복을 제거하고 특정 데이터 종류만 확인하고 싶을 때 유용함.

-- 열이 한 개일때 
SELECT DISTINCT DEPTNO
	FROM EMP;
    
-- 열이 여러 개일때 
SELECT DISTINCT JOB, DEPTNO
	FROM EMP;
    
-- ALL로 중복되는 열 제거하지 않고 그대로 출력하기
SELECT ALL JOB, DEPTNO
	FROM EMP;

별칭(alias) 설정하기

SQL 구문에서는 출력할 열 이름을 임의로 지정할 수 있는데 본래 열 이름 대신 붙이는 이름을 별칭(alias)라고 함.

-- 열 연산식을 사용하여 출력하기
-- 만약 값이 NULL이면 출력 X
-- SAL*12+COMM = ANNSAL(연간 총 수입)

SELECT ENAME, SAL, SAL*12+COMM, COMM
	FROM EMP;
    
    
-- 별칭을 사용하여 출력하기
SELECT ENAME, SAL, SAL*12+COMM AS ANNSAL, COMM
	FROM EMP:
별칭 사용 방법(ex. ANNSAL) 설명
SAL*12+COMM ANNSAL 연산식과 가공한 문장 이후 한 칸 띄고 별칭 지정
SAL*12+COMM "ANNSAL" 연산식과 가공한 문장 이후 한 칸 띄고 별칭을 큰따옴표로 묶어 지정
SAL*12+COMM AS ANNSAL 연산식과 가공한 문장 이후 한 칸 띈 후 AS, 한 칸 뒤에 별칭 지정
SAL*12+COMM AS "ANNSAL" 연산식과 가공한 문장 이후 한 칸 띈 후 AS, 한 칸 뒤에 별칭을 큰따옴표로 묶어 지정

ORDER BY절

원하는 순서로 출력 데이터를 정렬

-- 기본 형식

SELECT [조회할 열1 이름], [열2 이름], ...[열n 이름]
FROM   [조회할 테이블 이름]
.
. (그 밖의 절)
.
ORDER BY [정렬하려는 열 이름(여러 열 지정 가능)] [정렬 옵션];
키워드 필수 요소 선택 요소 설명
ORDER BY 정렬하려는 열 이름을 하나 이상 지정 정렬하는 열마다 오름 차순(ASC),
내림차순(DESC)지정
ORDER BY절에 지정한 열은 먼저 지정한 열을
우선으로 정리하며, 정렬 옵션을 지정하지 않으면 오름차순(ASC)을 기본값으로 설정.
-- 오름차순 사용하기
SELECT *
	FROM EMP
ORDER BY SAL;

-- 내림차순 사용하기
SELECT *
	FROM EMP
ORDER BY SAL DESC;

-- 각 열에 내림차순과 오름차순 동시에 사용하기
SELECT *
	FROM EMP
ORDER BY DEPTNO ASC, SAL DESC;

*ORDER BY절을 사용한 정렬은 꼭 필요한 경우가 아니면 사용하지 않는것이 좋은데, 여기저기 흩어져 있는 데이터를 특정 기준에 따라 가지런히 순서를 맞추려면 많은 비용이 들기 때문.