STUDY/SQL

SELECT 문의 기본 문법

sorrow16 2021. 2. 18. 20:43
728x90

SELECT 문

CRUD(Create, Read, Update, Delete) 중 Read

 

[기본 구조]

 

SELECT 필드이름
FROM 테이블

 

[여러 필드를 조회하는 경우]

 

SELECT 필드이름1, 필드이름2
FROM 테이블

 

[모든 필드를 조회하는 경우]

 

SELECT *
FROM 테이블

 

[중복된 데이터를 없애고 조회하는 경우]

 

SELECT DISTICT 필드이름
FROM 테이블

 

[조건식을 적용하는 경우]

 

SELECT *
FROM 테이블
WHERE 필드이름=0

 

[여러 조건식을 적용하는 경우]

 

SELECT *
FROM 테이블
WHERE 필드이름1=0
AND 필드이름2=0
OR 필드이름3=0

 

[조건식의 종류]

 

WHERE 필드이름 BETWEEN 0 AND 100
WHERE 필드이름 NOT BETWEEN AND 100

WHERE 필드이름 IN(1, 10, 100)
WHERE 필드이름 NOT IN(1, 10, 100)

WHERE 필드이름 IS NULL
WHERE 필드이름 NOT IS NULL

WHERE 필드이름 LIKE '홍__'
WHERE 필드이름 NOT LIKE '홍__'

WHERE 필드이름 LIKE '홍%'
WHERE 필드이름 NOT LIKE '홍%'

 

[특정 필드 기준으로 정렬하는 경우]

 

SELECT 필드이름
FROM 테이블
ORDER BY 필드이름

 

[정렬 기준이 여러개인 경우]

 

SELECT 필드이름
FROM 테이블
ORDER BY 필드이름1, 필드이름2 DESC, 필드이름3 ASC

 

[내부조인한 결과를 출력하는 경우]

 

SELECT 데이블1.필드이름
FROM 테이블1, 테이블2
WHERE 테이블1.필드이름 = 테이블2.필드이름

 

[별칭을 이용해 코드 간소화하는 경우(위 코드와 동일)]

 

SELECT A.필드이름
FROM 테이블1 A, 데이블2 B
WHERE A.필드이름 = B.필드이름

 

[외부조인한 결과를 출력하는 경우]

 

SELECT A필드이름
FROM 테이블1 A, 테이블2 B
WHERE A.필드이름 = B.필드이름(+)

 

[집합연산을 이용해 결과를 출력하는 경우]

 

SELECT 필드이름
FROM 테이블1
UNION (또는 UNION ALL, MINUS, INTERSET)
SELECT 필드이름
FROM 테이블2

 

[서브 쿼리(중첩 쿼리)를 실행하는 경우_서브 쿼리 결과가 하나일 때]

 

SELECT 필드이름1
FROM 테이블
WHERE 테이블.필드이름2 <=(
	SELECT 필드이름2
    FROM 테이블
    WHERE 조건문
)

 

서브 쿼리(중첩 쿼리)를 실행하는 경우_서브 쿼리 결과가 여러개일 때

 

SELECT 필드이름1
FROM 테이블
WHERE 테이블.필드이름2 IN (
	SELECT 필드이름2
    FROM 테이블
    WHERE 조건문
)

 

* IN 외에 ALL, ANY, EXIST 도 쓸 수 있음.

 

 

728x90