์ž๊ฒฉ์ฆ/SQLD

[SQLD] 4. SQL ๊ธฐ๋ณธ - 2

hello_u 2023. 3. 15. 15:46

 

ํŠธ๋žœ์žญ์…˜

 
์›์ž์„ฑ(atomicity) : ํŠธ๋žœ์žญ์…˜์—์„œ ์ •์˜๋œ ์—ฐ์‚ฐ๋“ค์€ ๋ชจ๋‘ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜๋˜์ง€
์•„๋‹ˆ๋ฉด ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ์•„ ์žˆ์–ด์•ผ ํ•œ๋‹ค. (All or Nothing)
 
์ผ๊ด€์„ฑ(consistency) : ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰ ๋˜๊ธฐ ์ „์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์šฉ์ด ์ž˜๋ชป ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด 
ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋œ ์ดํ›„์—๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์— ์ž˜๋ชป์ด ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค. 
 
๊ณ ๋ฆฝ์„ฑ(isolation) : ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๋Š” ๋„์ค‘์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค. 
 
์ง€์†์„ฑ(durability) : ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฉด ๊ทธ ํŠธ๋žœ์žญ์…˜์ด ๊ฐฑ์‹ ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์€ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค. 
 
 

๊ฒฉ๋ฆฌ์„ฑ(isolation)์œผ๋กœ ์ธํ•ด ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ 

 

Dirty Read

๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์— ์˜ํ•ด ์ˆ˜์ •๋์ง€๋งŒ ์•„์ง ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
 
 

Non-Repeatable Read

ํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๊ฐ™์€ Key๋ฅผ ๊ฐ€์ง„ Row๋ฅผ ๋‘ ๋ฒˆ ์ฝ์—ˆ๋Š”๋ฐ ๊ทธ ์‚ฌ์ด์— ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜์–ด ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
 
 

Phantom Read

ํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ๋‘ ๋ฒˆ ์ˆ˜ํ–‰ํ–ˆ๋Š”๋ฐ, ์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์—์„œ ์—†๋˜ ์œ ๋ น(Phantom) ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
 
 
 

ํŠธ๋žœ์žญ์…˜ ์ œ์–ด ๋ช…๋ น์–ด(COMMIT , ROLLBACK ) 

ํŠธ๋žœ์žญ์…˜ ์ œ์–ด ๋ช…๋ น์–ด
๊ธฐ๋Šฅ
COMMIT
๋ณด๋ฅ˜์ค‘์ธ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์˜๊ตฌ์ ์œผ๋กœ ์ ์šฉ. ํ˜„์žฌ ํŠธ๋žœ์žญ์…˜ ์ข…๋ฃŒ
ROLLBACK
๋ณด๋ฅ˜์ค‘์ธ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ๊ธฐ. ํ˜„์žฌ ํŠธ๋žœ์žญ์…˜ ์ข…๋ฃŒ, ์ง์ „ ์ปค๋ฐ‹ ์งํ›„์˜ ๋‹จ๊ณ„๋กœ ํšŒ๊ท€(๋˜๋Œ์•„๊ฐ€๊ธฐ)
์ „์ฒด ํŠธ๋žœ์žญ์…˜์„ ๋กค๋ฐฑํ•จ

 
[ORACLE]
DDL ๋ฌธ์žฅ ์ˆ˜ํ–‰ ํ›„ ์ž๋™์œผ๋กœ COMMIT ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 
 
ex) ORACLE ์—์„œ๋Š” CREATE TABLE ๋ฌธ์žฅ์„ ์ˆ˜ํ–‰ํ•œ ํ›„ , ๋ฌต์‹œ์ ์œผ๋กœ COMMIT ์ด ์ˆ˜ํ–‰ 
 
[SQL Server]
DDL ๋ฌธ์žฅ ์ˆ˜ํ–‰ ํ›„ ์ž๋™์œผ๋กœ COMMIT ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค 
 
ex) SQL Server ์—์„œ๋Š” ROLLBACK ๋ฌธ์žฅ์— ์˜ํ•ด UPDATE๊ฐ€ ์ทจ์†Œ๋œ๋‹ค.
 
 
 

BEGIN TRANSACTION (ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘)

 
ROLLBACK ๋ช…๋ น์–ด๋ฅผ ๋งŒ๋‚˜๋ฉด ์ตœ์ดˆ์˜ ์‹œ์ ๊นŒ์ง€ ๋ชจ๋‘ ๋กค๋ฐฑ๋œ๋‹ค. 
 
ROLLBACK ๊ตฌ๋ฌธ์€ COMMIT ๋˜์ง€ ์•Š์€ ์ƒ์œ„์˜ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์„ ๋ชจ๋‘ ๋กค๋ฐฑํ•œ๋‹ค. 
 
 

SAVE TRANSACTION ( ํŠธ๋žœ์žญ์…˜ ์ €์žฅ์ ) 

 
SAVE TRANSACTION SP1; 
...
ROLLBACK TRANSACTION SP1; 
 
๋กค๋ฐฑํ•  ๋•Œ ํŠธ๋žœ์žญ์…˜์— ํฌํ•จ๋œ ์ „์ฒด ์ž‘์—…์„ ๋กค๋ฐฑํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ
ํ˜„ ์‹œ์ ์—์„œ ์ €์žฅ์ ๊นŒ์ง€ ํŠธ๋žœ์žญ์…˜์˜ ์ผ๋ถ€๋งŒ ๋กค๋ฐฑํ•  ์ˆ˜ ์žˆ๋‹ค.
 
 

์กฐ๊ฑด์‹(WHERE ์ ˆ)

์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ์„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์ œํ•œํ•˜๋Š” ๊ฒƒ
๋ฐ์ดํ„ฐ์˜ ์กฐ๊ฑด์„ ์„ค์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ œํ•œ 
 
FROM ๋‹ค์Œ์— ์œ„์น˜ 
 
SELECT ์ปฌ๋Ÿผ๋ช…
FROM ํ…Œ์ด๋ธ”๋ช…
WHERE ์กฐ๊ฑด์‹ 
 

์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„

 
 

NULL์˜ ์—ฐ์‚ฐ

NULL ์€ 0 ๊ณผ ๊ณต๋ฐฑ์ด๋ž‘์€ ๋‹ค๋ฅด๋‹ค. 
 
NULL์€ ํŠน์ • ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค,์ ๋‹ค๋ผ๊ณ  ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋‹ค.
 
NULL๊ฐ’ ๊ณผ์˜ ์—ฐ์‚ฐ์€ NULL๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค. ( ๋น„๊ต์—ฐ์‚ฐ์€ FALSE ๋ฆฌํ„ด ) 
 
NULL + 40 = NULL 
 
NULL ๊ฐ’์„ ์กฐ๊ฑด์ ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ IS NULL , IS NOT NULL ์ด๋ž€ ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ 



ISNULL/NVL ํ•จ์ˆ˜


ํ‘œํ˜„์‹1์˜ ๊ฒฐ๊ณผ๊ฐ’์ด NULL์ด๋ฉด ํ‘œํ˜„์‹2์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

NVL(ํ‘œํ˜„์‹1, ํ‘œํ˜„์‹2)
ISNULL(ํ‘œํ˜„์‹1, ํ‘œํ˜„์‹2)

--์˜ˆ์‹œ--
ISNULL(Colum,0)


NULLIF ํ•จ์ˆ˜


ํ‘œํ˜„์‹1์ด ํ‘œํ˜„์‹2์™€ ๊ฐ™์œผ๋ฉด NULL์„ , ๊ฐ™์ง€ ์•Š์œผ๋ฉด ํ‘œํ˜„์‹1์„ ๋ฆฌํ„ดํ•œ๋‹ค.

NULLIF(ํ‘œํ˜„์‹1, ํ‘œํ˜„์‹2)


COALESCE ํ•จ์ˆ˜


์ž„์˜์˜ ๊ฐœ์ˆ˜ ํ‘œํ˜„์‹์—์„œ NULL ์ด ์•„๋‹Œ ์ตœ์ดˆ์˜ ํ‘œํ˜„์‹์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
๋ชจ๋“  ํ‘œํ˜„์‹์ด NULL์ด๋ผ๋ฉด NULL ์„ ๋ฆฌํ„ดํ•œ๋‹ค.

COALESCE(ํ‘œํ˜„์‹1, ํ‘œํ˜„์‹2, … )

 

COUNT ํ•จ์ˆ˜


COUNT(*) : NULL ๊ฐ’์„ ํฌํ•จํ•œ ํ–‰์˜ ์ˆ˜ ์ถœ๋ ฅ

COUNT(ํ‘œํ˜„์‹) : ํ‘œํ˜„์‹์˜ ๊ฐ’์ด NULL ๊ฐ’์ธ ๊ฒƒ์„ ์ œ์™ธํ•œ ํ–‰์˜ ์ˆ˜ ์ถœ๋ ฅ



 
 

NULL๊ฐ’๊ณผ ๊ณต๋ฐฑ ๋น„๊ต 

 
Oracle์—์„œ๋Š” Empty string('')์„ Null๋กœ ์ฒ˜๋ฆฌ ํ•œ๋‹ค.
 
์˜ค๋ผํด์€ NULL๊ฐ’๊ณผ ๊ณต๋ฐฑ('')๊ฐ’์„ ๋˜‘๊ฐ™์ด NULL๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค
 
 
์„œ๋น„์Šค๋ช… values('')
SELECT * FROM ์„œ๋น„์Šค WHERE ์„œ๋น„์Šค๋ช… IS NULL;
 
 

BETWEEN a AND b 

a ์™€ b ์˜ ๊ฐ’ ์‚ฌ์ด ( a์™€b ๊ฐ’์ด ํฌํ•จ ) 
 
 

 

๋‚ด์žฅํ•จ์ˆ˜(Built-in Function) 

 
ํ•จ์ˆ˜์˜ ์ž…๋ ฅ ํ–‰์ˆ˜์— ๋”ฐ๋ผ ๋‹จ์ผํ–‰,๋‹ค์ค‘ํ–‰์œผ๋กœ ๊ตฌ๋ถ„ 
 
๋‹จ์ผํ–‰ ํ•จ์ˆ˜ : ๋‹จ์ผํ–‰ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋Š” ํ•จ์ˆ˜[๋ฌธ์žํ˜•, ์ˆซ์žํ˜•, ๋‚ ์งœํ˜•, ๋ณ€ํ™˜ํ˜•, NULL๊ด€๋ จ ํ•จ์ˆ˜ ๋“ฑ]
 
๋‹ค์ค‘ํ–‰ ํ•จ์ˆ˜ : ๋‹ค์ค‘ํ–‰ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋Š” ํ•จ์ˆ˜[์ง‘๊ณ„ ํ•จ์ˆ˜, ๊ทธ๋ฃนํ•จ์ˆ˜, ์œˆ๋„์šฐ ํ•จ์ˆ˜ ๋“ฑ]
 
๋‹ค์ค‘ํ–‰ ํ•จ์ˆ˜๋„ ๋‹จ์ผํ–‰ ํ•จ์ˆ˜์™€ ๋™์ผํ•˜๊ฒŒ ๋‹จ์ผ ๊ฐ’๋งŒ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 
 

๋ฌธ์ž์—ด ํ•จ์ˆ˜

CONCAT(๋ฌธ์ž์—ด1, ๋ฌธ์ž์—ด2) ๋ฌธ์ž์—ด1๊ณผ ๋ฌธ์ž์—ด2๋ฅผ ๊ฒฐํ•ฉ
     Oracle, My SQL์—์„œ ์œ ํšจํ•œ ํ•จ์ˆ˜
     "| |"(Oracle)๋‚˜ "+"(SQL Server)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•จ
LENGTH/LEN(๋ฌธ์ž์—ด) ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ์ˆซ์ž๊ฐ’์œผ๋กœ ๋ณ€ํ™˜
    → ๊ณต๋ฐฑ์ด๋‚˜ ์ค„๋ฐ”๊ฟˆ๋„ count!!!
    → REPLACE(์นผ๋Ÿผ๋ช…, CHR(๊ธธ์ด))๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ค„๋ฐ”๊ฟˆ์ด ์ œ๊ฑฐ๋จ
EXTRACT('YEAR' | 'MONTH' | 'DAY' from d)/
DATEPART('YEAR' | 'MONTH' | 'DAY' ,d)
๋‚ ์งœ ๋ฐ์ดํ„ฐ์—์„œ ๋…„/์›”/์ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜
(์‹œ๊ฐ„/๋ถ„/์ดˆ๋„ ๊ฐ€๋Šฅ)
ex1> EXTRACT(MONTH FROM DATE '2020-12-20')  12์ด ์ถœ๋ ฅ
ex2> EXTRACT(MONTH FROM DATE '2020-01-01') → 01์ด ์•„๋‹Œ 1์ด ์ถœ๋ ฅ

 

๋‚ ์งœํ˜• ํ•จ์ˆ˜

EXTRACT('YEAR' | 'MONTH' | 'DAY' from d)/
DATEPART('YEAR' | 'MONTH' | 'DAY' ,d)
๋‚ ์งœ ๋ฐ์ดํ„ฐ์—์„œ ๋…„/์›”/์ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜
(์‹œ๊ฐ„/๋ถ„/์ดˆ๋„ ๊ฐ€๋Šฅ)
ex1> EXTRACT(MONTH FROM DATE '2020-12-20')  12์ด ์ถœ๋ ฅ
ex2> EXTRACT(MONTH FROM DATE '2020-01-01') → 01์ด ์•„๋‹Œ 1์ด ์ถœ๋ ฅ

1/24/60์€ 24์‹œ๊ฐ„์œผ๋กœ ๋‚˜๋ˆ„๊ณ  60๋ถ„์œผ๋กœ ๋‚˜๋ˆด์œผ๋ฏ€๋กœ 1๋ถ„์„ ์˜๋ฏธ
1/24/(60/10)์€ ๊ด„ํ˜ธ์—ฐ์‚ฐ๋ถ€ํ„ฐ ๋จผ์ €ํ•˜๋ฉด 1/24/6๊ณผ ๋™์ผํ•˜๋ฏ€๋กœ 10๋ถ„์„ ์˜๋ฏธ
 
 

 

์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ๊ฐ’์„ ์ง€์ •(CASE)

 
[SEARCHED_CASE]
SELECT LOC,   CASE WHEN LOC = 'NEW YORK' THEN 'EAST'     ELSE 'ETC'   END as AREA
 
[SIMPLE_CASE]

SELECT LOC,   CASE LOC WHEN 'NEW YORK' THEN 'EAST'

 

CASE ๋ฌธ์˜ ํ˜•์‹์€  

 

CASE ์ปฌ๋Ÿผ

WHEN ์กฐ๊ฑด1 THEN ๊ฐ’1 

WHEN ์กฐ๊ฑด2 THEN ๊ฐ’2 

ELSE ๊ฐ’3 

END 

 

 

์ปฌ๋Ÿผ์ด ์กฐ๊ฑด1 ์ผ๋•Œ๋Š” ๊ฐ’1 , ์กฐ๊ฑด2 ์ผ๋•Œ๋Š” ๊ฐ’2 ๋ฐ˜ํ™˜ 

์กฐ๊ฑด์— ๋งž์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ฐ’3 ๋ฐ˜ํ™˜ 

 

 




๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™”/์ง‘๊ณ„ (GROUP BY)


๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง„ ํ–‰๋ผ๋ฆฌ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ญ‰์นจ

์žฅ๋ฅด๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃน




SELECT ์ง‘๊ณ„ํ•จ์ˆ˜(์ปฌ๋Ÿผ1), ์ง‘๊ณ„ํ•จ์ˆ˜(์ปฌ๋Ÿผ2) ..
FROM ํ…Œ์ด๋ธ”
GROUP BY ์ปฌ๋Ÿผ

HAVING


๊ทธ๋ฃน์— ๋Œ€ํ•œ ์กฐ๊ฑด์ ˆ , ๊ทธ๋ฃน ์ค‘ ์กฐ๊ฑด์— ๋งž๋Š” ๊ทธ๋ฃน๋งŒ ๋‚จ๊น๋‹ˆ๋‹ค.




ํ…Œ์ด๋ธ” ์กฐํšŒ ์ •๋ ฌ ( ORDER BY )

ํ…Œ์ด๋ธ”์—์„œ SELECT๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ, ORDER BY๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ง€์ •๋œ ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ค๋ฆ„์ฐจ์ˆœ(ASC) ๋˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ(DESC) ๋‘ ๊ฐ€์ง€ ์ •๋ ฌ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ธฐ๋ณธ์€ ์˜ค๋ฆ„์ฐจ์ˆœ(ASC)์ž…๋‹ˆ๋‹ค

 

 

SELECT ๋ฌธ์žฅ ์‹คํ–‰ ์ˆœ์„œ

 

FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY 

 

1. ๋ฐœ์ทŒ ๋Œ€์ƒ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐ (FROM)

2. ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ๊ฒƒ์€ ์ œ๊ฑฐ (WHERE)

3. ๊ทธ๋ฃนํ™” (GROUP BY)

4. ๊ทธ๋ฃนํ•‘ ์กฐ๊ฑด (HAVING)

5. ์ถœ๋ ฅ (SELECT)

6. ์ •๋ ฌ (ORDER BY)

 

 

์ƒ์œ„ N๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ(TOP)

 

SELECT TOP(3) ํŒ€๋ช…, ์Šน๋ฆฌ๊ฑด์ˆ˜ 

FROM ํŒ€๋ณ„์„ฑ์  

 

 

TOP WITH TIES

 

TOP ๊ณผ ๋™์ผํ•˜๊ฒŒ ์ƒ์œ„ N๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•œ๋‹ค.

๋™์ผํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ํ•จ๊ป˜ ์ถœ๋ ฅ ํ•œ๋‹ค. 

 

TOP WITH TIES๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ORDER BY ์ ˆ์ด ๋ฐ˜๋“œ์‹œ ํ•จ๊ป˜ ์™€์•ผ ํ•œ๋‹ค. (TOP์˜ ๊ฒฝ์šฐ ์—†์–ด๋„ ๊ฐ€๋Šฅ)

๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋Š” ORDER BY์ ˆ ๋’ค์˜ ์˜ค๋Š” ์ปฌ๋Ÿผ์ด ๊ธฐ์ค€์ด ๋œ๋‹ค.

 

 

 

EQUI JOIN 

 

๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ” ๋“ค์„ ์—ฐ๊ฒฐ ๋˜๋Š” ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ 

 

SELECT ํ…Œ์ด๋ธ”1.์ปฌ๋Ÿผ๋ช… , ํ…Œ์ด๋ธ”2.์ปฌ๋Ÿผ๋ช… 

FROM ํ…Œ์ด๋ธ”1, ํ…Œ์ด๋ธ”2

WHERE ํ…Œ์ด๋ธ”1.์ปฌ๋Ÿผ = ํ…Œ์ด๋ธ”2.์ปฌ๋Ÿผ

 

 

LIKE ์—ฐ์‚ฐ์ž 

 

 ๋ฌธ์ž์—ด์—์„œ ์™€์ผ๋“œ์นด๋“œ(%)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ์ž๋ฃŒ๋ฅผ ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.