ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/DataBase

[SQL] SELECT ๋ฌธ

NaNaRin๐Ÿ™ƒ 2021. 2. 19. 22:10

0. ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ์„ธ๊ฐ€์ง€ ๋ฐฉ๋ฒ•

- ์…€๋ ‰์…˜ selection : ํ–‰ ๋‹จ์œ„๋กœ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐฉ์‹. ํ…Œ์ด๋ธ” ์ „์ฒด ๋ฐ์ดํ„ฐ ์ค‘ ๋ช‡๋ช‡ ๊ฐ€๋กœ์ค„์˜ ๋ฐ์ดํ„ฐ๋งŒ ์„ ํƒํ•  ๋•Œ ์‚ฌ์šฉ

- ํ”„๋กœ์ ์…˜ projection : ์นผ๋Ÿผ(์—ด) ๋‹จ์œ„๋กœ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐฉ์‹. ํ…Œ์ด๋ธ” ์ „์ฒด ํ•ญ๋ชฉ ์ค‘ ๋ช‡๋ช‡ ์†์„ฑ์˜ ๋ฐ์ดํ„ฐ๋งŒ ์„ ํƒํ•  ๋•Œ ์‚ฌ์šฉ

- ์กฐ์ธ join : ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์–‘ ์˜†์— ์—ฐ๊ฒฐํ•˜์—ฌ ๋งˆ์น˜ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์ธ ๊ฒƒ ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐฉ์‹

 

1. SELECT ๋ฌธ

- SELECT๋ฌธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณด๊ด€๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

- SELECT์ ˆ๊ณผ FROM์ ˆ์„ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์œผ๋กœ SELECT๋ฌธ์„ ์ž‘์„ฑ

- FROM ์ ˆ์€ ์—ฌ๋Ÿฌ ๊ฐœ ํ…Œ์ด๋ธ” ์ง€์ •์ด ๊ฐ€๋Šฅ, ์ •ํ™•ํžˆ ๋งํ•˜๋ฉด ์—ด๊ณผ ํ–‰์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์ด๋ฉด ๋ชจ๋‘ ์ง€์ • ๊ฐ€๋Šฅ( ๋ทฐview, ์„œ๋ธŒ์ฟผ๋ฆฌsubquery ๋“ฑ)

SELECT 	[์กฐํšŒํ•  ์นผ๋Ÿผ 1 ์ด๋ฆ„], [์นผ๋Ÿผ 2 ์ด๋ฆ„], … , [์นผ๋Ÿผ N ์ด๋ฆ„]
FROM 	[์กฐํšŒํ•  ํ…Œ์ด๋ธ” ์ด๋ฆ„];

-- 1. ์ „์ฒด ์นผ๋Ÿผ ์กฐํšŒ
SELECT 	*
FROM 	EMP;

-- 2. ๋ถ€๋ถ„ ์นผ๋Ÿผ ์กฐํšŒ
SELECT	EMPNO, ENAME, DEPTNO
FROM	EMP;

  (1) * ๋กœ ํ…Œ์ด๋ธ” ์ „์ฒด ์นผ๋Ÿผ ์กฐํšŒํ•˜๊ธฐ : ์• ์Šคํ„ฐ๋ฆฌ์Šคํฌ( * )๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด ์นผ๋Ÿผ ์กฐํšŒ

  (2) ์นผ๋Ÿผ์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ…Œ์ด๋ธ” ๋ถ€๋ถ„ ์นผ๋Ÿผ ์กฐํšŒํ•˜๊ธฐ :  ๊ฐ ์—ด ์ด๋ฆ„์„ ์‰ผํ‘œ( , )๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ถ€๋ถ„์ ์ธ ์นผ๋Ÿผ๋งŒ ์กฐํšŒ

 

2. DISTINCT ์˜ต์…˜

- ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•œ ํ›„ DISTINCT๋กœ ์ค‘๋ณต์„ ์ œ๊ฑฐ. SELECT์ ˆ์— ์นผ๋Ÿผ ์ด๋ฆ„์„ ๋ช…์‹œํ•˜๊ธฐ ์ „์— ์„ ํƒ์ ์œผ๋กœ ์‚ฌ์šฉ

-- 1. ์นผ๋Ÿผ์ด ํ•œ๊ฐœ์ธ ๊ฒฝ์šฐ
SELECT DISTINCT DEPNO
	FROM EMP;
    
-- 2. ์นผ๋Ÿผ์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ
SELECT DISTINCT JOB, DEPNO
	FROM EMP;
    
-- 3. ์ค‘๋ณต๋˜๋Š” ์นผ๋Ÿผ ์ œ๊ฑฐ ์—†์ด ์ถœ๋ ฅ
SELECT ALL JOB, DEPNO
	FROM EMP;

  (1) ์นผ๋Ÿผ์ด ํ•œ๊ฐœ์ธ ๊ฒฝ์šฐ : SELECT์ ˆ์— ๋ช…์‹œํ•œ ์นผ๋Ÿผ ์ค‘์— ๊ฐ™์€ ๋‚ด์šฉ์ด ๋‘ ๊ฐœ ์ด์ƒ์ผ ๊ฒฝ์šฐ ์ค‘๋ณต ํ–‰์€ ํ•œ๊ฐœ๋งŒ ๋‚จ๊ฒจ๋‘๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ œ๊ฑฐ

  (2) ์นผ๋Ÿผ์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ : ๊ฐ ์นผ๋Ÿผ์— ๋ชจ๋‘ ์ค‘๋ณต๋œ ํ–‰๋งŒ ์ œ๊ฑฐ.

-> ์ฒซ๋ฒˆ์งธ ํ–‰ : JOB = MANAGER, DEPTNO = 10

    ๋‘๋ฒˆ์งธ ํ–‰ : JOB = MANAGER, DEPTNO = 20  ์ฒซ๋ฒˆ์งธ ํ–‰๊ณผ JOB์ด ๊ฐ™์ง€๋งŒ DEPTNO๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ ์ œ๊ฑฐX

    ์„ธ๋ฒˆ์งธ ํ–‰ : JOB = PRESIDENT, DEPTNO = 10  ์ฒซ๋ฒˆ์งธ ํ–‰๊ณผ DEPTNO๊ฐ€ ๊ฐ™์ง€๋งŒ JOB์ด ๋‹ค๋ฅด๋ฏ€๋กœ ์ œ๊ฑฐX

    ๋„ค๋ฒˆ์งธ ํ–‰ : JOB = MANAGER, DEPTNO = 20  ๋‘๋ฒˆ์งธ ํ–‰๊ณผ JOB๊ณผ DEPTNO ๋ชจ๋‘ ๊ฐ™์œผ๋ฏ€๋กœ ์ œ๊ฑฐ

  (3) ALL๋กœ ์ค‘๋ณต๋˜๋Š” ์นผ๋Ÿผ ์ œ๊ฑฐ ์—†์ด ์ถœ๋ ฅ : ALL์€ DISTINCT์™€ ๋ฐ˜๋Œ€๋กœ ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ. ์ค‘๋ณต ์„ค์ •์ด ์—†์„ ๊ฒฝ์šฐ default๊ฐ’์ด ALL์ด๊ธฐ ๋•Œ๋ฌธ์— ALL๋„ DISTINCT๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์„ ๋•Œ์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ด

 

3. ALIAS ์˜ต์…˜

- ๋ณ„์นญ(alias) : ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ์ตœ์ข… ์ถœ๋ ฅ๋˜๋Š” ์นผ๋Ÿผ ์ด๋ฆ„์„ ์ž„์˜๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ณธ๋ž˜ ์นผ๋Ÿผ ๋Œ€์‹  ์ž„์˜๋กœ ๋ถ™์ด๋Š” ์ด๋ฆ„

-- ์นผ๋Ÿผ์— ์—ฐ์‚ฐ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ
SELECT ENAME, SAL, SAL*12+COMM, COMM
	FROM EMP;

-- ์นผ๋Ÿผ์— ๋ณ„์นญ์„ ์ง€์ •ํ•˜์—ฌ ์ถœ๋ ฅ
SELECT ENAME, SAL, SAL*12+COMM ANNSAL, COMM FROM EMP;
SELECT ENAME, SAL, SAL*12+COMM "ANNSAL", COMM FROM EMP;
SELECT ENAME, SAL, SAL*12+COMM AS ANNSAL, COMM FROM EMP;
SELECT ENAME, SAL, SAL*12+COMM AS "ANNSAL", COMM FROM EMP;

- ๋ณ„์นญ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  1) ์กฐํšŒํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ์— ๋น„ํ•ด ์นผ๋Ÿผ ์ด๋ฆ„์ด ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ์„œ ๊ธด ์นผ๋Ÿผ ์ด๋ฆ„์„ ์งง๊ณ  ๊ฐ„๋‹จํ•œ ์ด๋ฆ„์œผ๋กœ ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด

  2) ๋ณด์•ˆ์ด๋‚˜ ๋ฐ์ดํ„ฐ ๋…ธ์ถœ ๋ฌธ์ œ ๋•Œ๋ฌธ : ANNSAL์€ ์‚ฌ์›์˜ ์—ฐ๊ฐ„ ์ด ์ˆ˜์ž…์„ ์˜๋ฏธํ•˜๋Š” ๋ฐ์ดํ„ฐ. ์—ฐ๊ฐ„ ์ด ์ˆ˜์ž… ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋„์ถœ๋˜๋Š”์ง€ ๊ณ„์‹ ์‹ ์ž์ฒด๊ฐ€ ์—ด ์ด๋ฆ„์„ ํ†ตํ•ด ๋…ธ์ถœ๋จ

- 3๋ฒˆ์งธ ๋ฐฉ์‹์„ ๊ฐ€์žฅ ์„ ํ˜ธํ•œ๋‹ค. ์ด์œ ๋Š”

  1) AS ๊ฐ€ ๋ถ™์–ด์•ผ ์–ด๋–ค ๋‹จ์–ด๊ฐ€ ๋ณ„์นญ์ธ์ง€ ์•Œ์•„๋ณด๊ธฐ ํŽธํ•˜๊ธฐ ๋•Œ๋ฌธ

  2) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ์—์„œ SQL๋ฌธ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ""๋Š” ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ์˜ ์‹œ์ž‘๊ณผ ๋์„ ์•Œ๋ฆฌ๋Š” ๊ธฐํ˜ธ๋กœ์„œ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๋‚˜ ์˜ˆ์™ธ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ