๐ก ์ ๋ต : 3๋ฒใฑ,ใด ๊น์ง๋ 2014.10.01 ์ดํ์ ๋ฐ์ํ ์ด๋ฒคํธ์ ๋ํ ๋ฉ์ผ ์ ์ก์ด ์ด๋ฃจ์ด์ง ํ์์ ์กฐํํ๋ค.HAVING์ ์ ใฑ,ใด๊น์ง์ ํ์ ์์ ๋ํ ์กฐ๊ฑด์ ์ด๋ค. HAVING COUNT(\*) : 2014.10.01 ์ดํ์ ์ด๋ฒคํธ ๋ฉ์ผ ๋ฐ์ก์ ๋ฐ์ ์๋ฅผ ์
66๋ฒ > ๐ก์ ๋ต : 3, 4๋ฒ 1๋ฒ์ด ํ๋ฆฐ ์ด์ 1๋ฒ ์ง๋ฌธ์ด ํท๊ฐ๋ ธ๋๋ฐ ์ฌ๊ธฐ์ B๋ ์ถ์ฒ์ปจํ ์ธ ํ ์ด๋ธ์ ๋งํจ. NOT EXISTS (SELECT X.์ปจํ ์ธ ID FROM ๋น์ ํธ์ปจํ ์ธ X WHERE X.๊ณ ๊ฐID = B.๊ณ ๊ฐID); ๋ค์ ์ฝ์ด๋ณด๋ ๊ณ ๊ฐID๋ก ์กฐ๊ฑด์ ๊ฑธ
๐ก์ ๋ต : 4๋ฒ๐ค๋ด๊ฐ ํํ ๋ต์ 1๋ฒALTER TABLE PRODUCT ADD CONSTRAINT PRIMARY KEY PRODUCT_PK ON (PROD_ID);์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ๋ค๋ ํค์๋๊ฐ ๋น ์ก์๐ก์ ๋ต : 3๋ฒ๐ค๋ด๊ฐ ํํ ๋ต์ 1๋ฒCOUNT(\*) : NUL
MERGE๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ์ดํฐ์ ์ฝ์ /์์ /์ญ์ ์์ ์ ํ ๋ฒ์ ํ ์ ์๋ค.ํด๋น ํ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ UPDATE, ์๋ก์ด ํ์ผ ๊ฒฝ์ฐ INSERT๋ฅผ ์ํ(๋ณ๋์ ๋ถ๊ธฐ์ฒ๋ฆฌ ํ์ X)๋์ ํ ์ด๋ธ์ ๋ํ UPDATE,INSERT ์กฐ๊ฑด์ ON์ ์ ์ํด ๊ฒฐ์
โข DECODE, COALESCE,โข ROLLUP, GROUPING, GROUPING SETS, CUBE์ ๊ฒฐ๊ฐ๋ค ์ด๋ค ์ฐจ์ด๊ฐ ์๋์งโข WINDOW ํจ์ ์์ฑ๋ฒ ( SUM(SAL) OVER ( PARTION BY ~ ) )โข START WITH ~ CONNET BY ~
GROUP BY์ ์ WHERE์ GROUP BY์ ์์ด๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ์ด๋ HAVING์ ์ ๋ฒ์๋ ์ ์ฒด๊ทธ๋ฃน์ด๋ค.๋จ์ผ ํ ์๋ธ์ฟผ๋ฆฌ์ ๋น๊ต ์ฐ์ฐ์ : <, <=, = ๋ฑ๋ค์ค ํ ์๋ธ์ฟผ๋ฆฌ์ ๋น๊ต ์ฐ์ฐ์ : ALL, IN, ANY ๋ฑ๐ก ๋จ์ผ ํ ์๋ธ์ฟผ๋ฆฌ๋ ๋ค์ค
์์ ๊ด๊ณ ์ฐ์ฐ์ : SELECT, PROJECT, JOIN, DIVIDEEXISTS B : B์ ํด๋นํ๋ ๊ฐNOT EXISTS B : B์ ํด๋นํ์ง ์๋ ๊ฐ๊ธฐ์ค ํ ์ด๋ธ(LEFT:์ข, RIGHT:์ฐ)์ ๋ฐ์ดํฐ๋ฅผ ๋ค ์ถ๋ ฅํ๊ณ ์ผ์นํ์ง ์๋ ๊ฐ์ NULL๋ก ์นํ๋ฐ์ ๊ฐ๋ฅํ
NOT > AND > OR์ค๋ผํด์์ ''์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ฉด NULL๋ก ์ ๋ ฅ๋๋ค.SQL Server์์ ''์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅํ๋ฉด ''๋ก ์ ๋ ฅ๋๋ค.NULL๊ฐ๊ณผ์ ์ฐ์ฐ(+,-,\* ๋ฑ)๋ฑ์ NULL ๊ฐ์ ๋ฆฌํดNULL๊ฐ๊ณผ์ ๋น๊ต ์ฐ์ฐ(=, !=, > ๋ฑ)์ FALSE๋ฅผ ๋ฆฌํด
์ข ๋ฅ : SELECT, INSERT, UPDATE, DELETE์ค๋ผํด : ์๋ ์ปค๋ฐ, SQL Server : ์๋ ์ปค๋ฐ๋น์ ์ฐจ์ ๋ฐ์ดํฐ ์กฐ์์ด๋ก ์ฌ์ฉ์๊ฐ ๋ฌด์จ ๋ฐ์ดํฐ๋ฅผ ์ํ๋์ง๋ง ๋ช ์ธํ๋ค.๐ก์ ์ฐจ์ ๋ฐ์ดํฐ ์กฐ์์ด๋ ์ด๋ป๊ฒ ๋ฐ์ดํฐ์ ์ ๊ทผํด์ผ ๋๋์ง๊น์ง ๋ช ์ธ์ข ๋ฅ : CREA
์ ๊ทํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ณต ๋ฐ์ดํฐ ์ ๊ฑฐ๋ฅผ ์ํํ๋ฉฐ, ์กฐํ ์ฑ๋ฅ์ ํฅ์์ํฌ ์๋ ์๋ค.์ ๊ทํ์ ๋จ๊ณ๋ก๋ ์ด 3๋จ๊ณ๋ก ๋๋๋ฉฐ ๊ฐ ์ 1,2,3์ฐจ ์ ๊ทํ๋ผ ๋งํ๊ณ ์ ๊ทํ๊ฐ ๋๋ ๊ฒ์ ์ ๊ทํ์ด๋ผ ํ๋ค.๋ค์ค ๊ฐ์ ๊ฐ์ง๋ ๊ฒฝ์ฐ(ex. SNS๋ผ๋ ์์ฑ์ ๋ํ ์์ฑ๊ฐ์ผ๋ก ํธ์ํฐ, ์ธ์ค
์ ๊ฒฐ์ ํ๋ ์ญํ ์ ์ํ. ์ตํฐ๋ง์ด์ ๊ฐ ์ ํํ ์คํ ๋ฐฉ๋ฒ์ ์ ์ ์ฑ ์ฌ๋ถ๋ ์ง์์ ์ํ ์๋์ ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฏธ์น๋ค.์ต์ ์ ์คํ ๋ฐฉ๋ฒ ๊ฒฐ์ : ์ด๋ค ๋ฐฉ๋ฒ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์ต์ ์ผ๋์ผ๋ก ๋์ผํ ์ผ์ ์ฒ๋ฆฌํ ์
๐ก SQLD ์๊ฒฉ์ฆ ์ํ ๋๋น ํ์ตํ ๋ด์ฉ์ ์์ฝ์ ๋ฆฌํฉ๋๋ค.Group FunctionAggregate FunctionWindow Functionํ ์ด๋ธ์ ์ ์ฒด ํ์ ํ๋ ์ด์์ ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ปฌ๋ผ๊ฐ์ ๋ฐ๋ผ ๊ทธ๋ฃนํํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํจ์๋ณต์ ํ ํจ์๋ผ๊ณ ๋ ํ๋ค.ROL
๐ก SQLD ์๊ฒฉ์ฆ ์ํ ๋๋น ํ์ตํ ๋ด์ฉ์ ์์ฝ์ ๋ฆฌํฉ๋๋ค.์ผ๋ฐ ์งํฉ ์ฐ์ฐ์(4๊ฐ์ง)์์ ๊ด๊ณ ์ฐ์ฐ์(4๊ฐ์ง)๋ ๊ฐ ์ด์์ ํ ์ด๋ธ์์ ์กฐ์ธ์ ์ฌ์ฉํ์ง ์๊ณ ์ฐ๊ด๋ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ์ง์์ ๊ฒฐ๊ณผ๋ฅผ ์ฐ๊ฒฐํ์ฌ ํ๋์ ๊ฒฐํฉํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค. ์ฆ, 2๊ฐ
๐ก SQLD ์๊ฒฉ์ฆ ์ํ ๋๋น ํ์ตํ ๋ด์ฉ์ ์์ฝ์ ๋ฆฌํฉ๋๋ค.WHERE ์ ์ ์ฌ์ฉํ์ง ์๊ณ ํ์ ์๋ ๋ง์ ์๋ฃ๋ค์ DB๋ก๋ถํฐ ์์ฒญํ๊ฒ ๋๋ฉด CPU, ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ์์คํ ์์์ ๊ณผ๋คํ๊ฒ ์ฌ์ฉํ๊ฒ ๋๋ค.WHERE ์ ์ ์กฐํํ๋ ค๋ ๋ฐ์ดํฐ์ ํน์ ์กฐ๊ฑด์ ๋ถ์ฌํ ๋ชฉ์ ์ผ๋ก ์ฌ
๐ก SQLD ์๊ฒฉ์ฆ ์ํ ๋๋น ํ์ตํ ๋ด์ฉ์ ์์ฝ์ ๋ฆฌํฉ๋๋ค.ํ์์ ์ํด ๋ฐ์ดํฐ๋ฅผ ์ผ์ ํ ํํ๋ก ์ ์ฅํด ๋์ ๊ฒ.ํจ์จ์ ์ธ ๋ฐ์ดํฐ์ ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์์ ์ต์ํ, ๋ฐ์ดํฐ ๋ณต๊ตฌ ๋ฑ์ ๊ธฐ๋ฅ์ ํ๋ ์ํํธ์จ์ด -> ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ1960๋ ๋ : ํ๋ก์ฐ์ฐจํธ ์ค์ฌ์ ๊ฐ๋ฐ ๋ฐฉ๋ฒ
๐ก SQLD ์๊ฒฉ์ฆ ์ํ ๋๋น ํ์ตํ ๋ด์ฉ์ ์์ฝ์ ๋ฆฌํฉ๋๋ค.1 ๋ฐ์ดํฐ ๋ชจ๋ธ ๊ตฌ์กฐ์ ์ํด ์ฑ๋ฅ์ด ์ ํ2 ๋ฐ์ดํฐ๊ฐ ๋์ฉ๋ํ3 ์ธ๋ฑ์ค ํน์ฑ์ ์ถฉ๋ถํ ๊ณ ๋ คํ์ง ์๊ณ ์ธ๋ฑ์ค๋ฅผ ์์ฑ์ฑ๋ฅ -> ๋ฐ์ดํฐ ์กฐํ์ ์ฑ๋ฅ์ ์๋ฏธ-> ๋ฐ๋ณต, ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ฉฐ ์ฌ๋ฌ ๊ฑด์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง
๐ก SQLD ์๊ฒฉ์ฆ ์ํ ๋๋น ํ์ตํ ๋ด์ฉ์ ์์ฝ์ ๋ฆฌํฉ๋๋ค.ํ์ค ์ธ๊ณ์ ๊ฐ๋ ๋ค์ ์ถ์ํ, ๋จ์ํ, ๋ช ํํ ํ ๊ฒ.์ถ์ํ : ๋ค์ํ ๊ฒ์ ์ผ์ ํ ํ์์ ๋ง์ถฐ ํํ.๋จ์ํ : ๋์ผํ ๊ท์ฝ์ผ๋ก ์ดํดํ๊ธฐ ์ฝ๋๋ก ํ๋ ๊ฒ.๋ช ํํ : ์ ๋งค๋ชจํธํจ์ ์ ๊ฑฐ, ์ ํํ๊ฒ ํ์์ ๊ธฐ์ .๋ฐ
๋ฐฐ์ด์ ๊ธธ์ด๊ฐ N์ผ ๊ฒฝ์ฐ, ๋ฒ๋ธ ์ ๋ ฌ์ N-1์ ์์๋ฅผ ๋น๊ตํด์ผ ํ๋ค. ์ต์ ์ ๊ฒฝ์ฐ ๋ชจ๋ ์์๋ค์ ์์น๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด ์๋๋ค. โฐ ์๊ฐ ๋ณต์ก๋ : O(n^2)์ ๋ ฌ๋์ง ์์ ๋ฐฐ์ด์์ ๊ฐ์ฅ ์์ ์๋ฅผ ๊ฐ์ง ์์๋ฅผ ์ฐพ์์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์