๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Database/Do it! SQL ์ž…๋ฌธ

(9)
[Do it! SQL ์ž…๋ฌธ] 04-1. ์กฐ์ธ ํ…Œ์ด๋ธ”์„ 2๊ฐœ ์ด์ƒ ์กฐ์ธํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ถ„๋ฆฌ๋œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์—์„œ ์›ํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ์กฐํ•ฉ์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๊ฒƒ ๋‚ด๋ถ€ ์กฐ์ธ(INNER JOIN)๋‚ด๋ถ€ ์กฐ์ธ์€ ์กฐ์ธํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ ํ…Œ์ด๋ธ”์˜ ์—ด๊ฐ’์„ ๋น„๊ตํ•ด ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ’์„ ๊ฒ€์ƒ‰ํ•œ๋‹ค.SELECT [์—ด ์ด๋ฆ„]FROM [ํ…Œ์ด๋ธ” 1]INNER JOIN [ํ…Œ์ด๋ธ” 2] ON [ํ…Œ์ด๋ธ” 1.์—ด] = [ํ…Œ์ด๋ธ” 2.์—ด]WHERE [๊ฒ€์ƒ‰ ์กฐ๊ฑด]   INNER JOIN ๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ (2๊ฐœ ํ…Œ์ด๋ธ” ์กฐ์ธ) ON ๋ฌธ๊ณผ WHERE ๋ฌธ์˜ ์ฐจ์ดON: ์กฐ์ธํ•  ๋–„ ์กฐ์ธ ์กฐ๊ฑด์„ ์œ„ํ•ด ์‚ฌ์šฉWHERE: ์กฐ์ธ์„ ์™„๋ฃŒํ•œ ์ƒํƒœ์—์„œ ์กฐ๊ฑด์— ๋งž๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ณ ์ž ์‚ฌ์šฉON ๋ฌธ์— ์กฐ๊ฑด์„ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ถ€์—ฌํ•ด WHERE ๋ฌธ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๋‚ด๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์กฐ์ธ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋งค์นญ ๊ณผ์ •์—์„œ ์˜ค์ฐจ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ..
[Do it! SQL ์ž…๋ฌธ] 03-7. SQL Server์—์„œ ๋‹ค๋ฃจ๋Š” ์ž๋ฃŒํ˜• ์ •๋ฆฌํ•˜๊ธฐ SQL Server์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…https://developerking.tistory.com/6 [MSSQL] ๋ฐ์ดํ„ฐ ํƒ€์ž… (์ž๋ฃŒํ˜•) ์œ ํ˜• ์ด์ •๋ฆฌMSSQL / SQL Server ์ž๋ฃŒํ˜•์œ ํ˜•์ž๋ฃŒํ˜•์ •์ˆ˜bigint-2^63(-9,223,372,036,854,775,808) ~ 2^63-1(9,223,372,036,854,775,807) 8๋ฐ”์ดํŠธint-2^31(-2,147,483,648) ~ 2^31-1(2,147,483,647) 4๋ฐ”์ดํŠธsmallint-2^15(-32,768) ~ 2^15-1(32,767) 2๋ฐ”์ดํŠธtinyint0 ~ 2developerking.tistory.com ์•”์‹œ์  ํ˜•๋ณ€ํ™˜ vs ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜https://hackhyun.tistory.com/271  [SQL์„œ๋ฒ„] ๋ฌต์‹œ์ (์•”์‹œ์ ) ํ˜•๋ณ€ํ™˜S..
[Do it! SQL ์ž…๋ฌธ] 03-6. ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์กฐ์ž‘ํ•˜๊ธฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑํ•˜๊ณ  ์‚ญ์ œํ•˜๊ธฐCREATE DATABASE [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]DROP DATABASE [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„]  ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ณ  ์‚ญ์ œํ•˜๊ธฐ  ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œํ•˜๊ธฐ 1. ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ (INSERT)  2. ๋ฐ์ดํ„ฐ ์ˆ˜์ •ํ•˜๊ธฐ (UPDATE) 3. ๋ฐ์ดํ„ฐ ์‚ญ์ œํ•˜๊ธฐ (DELETE) ์™ธ๋ž˜ํ‚ค๋กœ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ, ์‚ญ์ œํ•˜๊ธฐ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์— ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž์‹ ํ…Œ์ด๋ธ”์ด ๊ฐ€์ง€๋ฉด ์•ˆ ๋˜๋Š” ๊ฒƒ์ด ์›์น™์ด๋‹ค. ์ด ์›์น™์„ ์œ ์ง€ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ž˜๋ชป ์ž…๋ ฅ๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.์™ธ๋ž˜ํ‚ค๋Š” ํ…Œ์ด๋ธ”์ด ๊ด€๊ณ„๋ฅผ ๊ตฌ์„ฑํ•  ๋–„ ์ฐธ์กฐํ•˜๋Š” ์—ด์„ ์˜๋ฏธํ•œ๋‹ค.  ํšŒ์› ํ…Œ์ด๋ธ”์˜ ํšŒ์›๋ฒˆํ˜ธ ์—ด์ด ๊ธฐ๋ณธํ‚ค(Primary Key)์ด๊ณ  ์ฃผ๋ฌธ ํ…Œ์ด๋ธ”์˜ ํšŒ์›๋ฒˆํ˜ธ ์—ด์ด ์™ธ๋ž˜ํ‚ค(F..
[Do it! SQL ์ž…๋ฌธ] 03-5. ๋ฐ์ดํ„ฐ ๊ทธ๋ฃนํ™” ๋‹ค๋ฃจ๊ธฐ GROUP BY์™€ HAVING SELECT [์—ด] FROM [ํ…Œ์ด๋ธ”] WHERE [์—ด] = [์กฐ๊ฑด๊ฐ’] GROUP BY [์—ด] HAVING [์—ด] = [์กฐ๊ฑด๊ฐ’] GROUP BY : ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๊ตฌ๋ฌธHAVING: WHERE์™€ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ํ•˜๋ฉฐ ๊ทธ๋ฃนํ™”๋œ ๊ฒฐ๊ณผ์˜ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค   HAVING์œผ๋กœ ๊ทธ๋ฃนํ™”๋œ ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋งํ•˜๊ธฐ  DISTINCT ๋ฌธ์œผ๋กœ ์ค‘๋ณต ์ œ๊ฑฐํ•˜๊ธฐSELECT DISTINCT [์—ด ์ด๋ฆ„] FROM [ํ…Œ์ด๋ธ”]
[Do it! SQL ์ž…๋ฌธ] 03-4. ์™€์ผ๋“œ์นด๋“œ๋กœ ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ํ•˜๊ธฐ LIKE๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์™€์ผ๋“œ์นด๋“œ๋กœ ์ง€์ •ํ•œ ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ž์—ด, ๋‚ ์งœ, ์‹œ๊ฐ„ ๋“ฑ์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.  SELECT [์—ด] FROM [ํ…Œ์ด๋ธ”] WHERE [์—ด] LIKE [์กฐ๊ฑด๊ฐ’]  LIKE์™€ %๋กœ ํŠน์ • ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ํ•˜๊ธฐ %์˜ ์‚ฌ์šฉ๋ฒ•A%: A๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด%A: A๋กœ ๋๋‚˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด%A%: A๋ฅผ ํฌํ•จํ•˜๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด์กฐ๊ฑด๊ฐ’๊ณผ ๋ฐ˜๋Œ€๋˜๋Š” ๋ฌธ์ž์—ด ์ฐพ๊ธฐ → NOT LIKE       ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ํฌํ•จํ•œ ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ํ•˜๊ธฐ → ESCAPE ์‚ฌ์šฉ์ฐพ๊ณ ์ž ํ•˜๋Š” ํŠน์ˆ˜๋ฌธ์ž(โ“) ์•ž์— ๋‹ค๋ฅธ ํŠน์ˆ˜๋ฌธ์ž(โ“‘)๋ฅผ ์‚ฝ์ž…ํ•œ ํ›„ SELECT๋ฌธ LIKE๋ฌธ ๋’ค์— ํ•ด๋‹น ํŠน์ˆ˜๋ฌธ์ž(โ“‘)๋ฅผ ESCAPE ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค.  _๋กœ ํŠน์ • ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š” ํŠน์ • ๊ธธ์ด์˜ ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ํ•˜๊ธฐํ•ด๋‹น ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š” ํŠน์ • ๊ธธ์ด์˜ ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด ..
[Do it! SQL ์ž…๋ฌธ] 03-3. ORDER BY ๋ฌธ์œผ๋กœ ๋ฐ์ดํ„ฐ ์ •๋ ฌํ•˜๊ธฐ ORDER BY ๋ฌธ์˜ ๊ธฐ๋ณธ ํ˜•์‹SELECT [์—ด] FROM [ํ…Œ์ด๋ธ”] WHERE [์—ด] = [์กฐ๊ฑด๊ฐ’] ORDER BY [์—ด] [ASC, DESC] ORDER BY ๋ฌธ์„ ์‚ฌ์šฉํ•ด 1๊ฐœ ์—ด ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ORDER BY ๋ฌธ์„ ์‚ฌ์šฉํ•ด 2๊ฐœ ์—ด ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•˜๊ธฐ(ASC ์‚ฌ์šฉ) ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜๊ธฐ(DESC ์‚ฌ์šฉ) ์˜ค๋ฆ„์ฐจ์ˆœ๊ณผ ๋‚ด๋ฆผ์ฐจ์ˆœ์„ ์กฐํ•ฉํ•ด ์ •๋ ฌํ•˜๊ธฐ TOP์œผ๋กœ ์ƒ์œ„ N๊ฐœ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ํ•˜๊ธฐ OFFSET - FETCH NEXT๋กœ ์ง€์ •ํ•œ ๊ฐœ์ˆ˜๋งŒํผ ํ–‰ ๊ฑด๋„ˆ๋›ฐ๊ณ  ๊ฒ€์ƒ‰ํ•˜๊ธฐ
[Do it! SQL ์ž…๋ฌธ] 03-2. WHERE ๋ฌธ์œผ๋กœ ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์‹œ์Šคํ…œ์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ด๋ ค๋ฉด ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•œ๋‹ค. ์›ํ•˜๋Š” ์กฐ๊ฑด์— ๋งž๋Š” ํ–‰์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž. SELECT [์—ด] FROM [ํ…Œ์ด๋ธ”] WHERE [์—ด] = [์กฐ๊ฑด๊ฐ’]  ์—ฐ์‚ฐ์ž ์ข…๋ฅ˜= : ํ•„ํ„ฐ๋ง ์กฐ๊ฑด๊ณผ ๊ฐ™์€ ๊ฐ’์„ ๊ฒ€์ƒ‰> : ํ•„ํ„ฐ๋ง ์กฐ๊ฑด๋ณด๋‹ค ํฐ ๊ฐ’์„ ๊ฒ€์ƒ‰>= : ํ•„ํ„ฐ๋ง ์กฐ๊ฑด๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฐ ๊ฐ’์„ ๊ฒ€์ƒ‰, != : ํ•„ํ„ฐ๋ง ์กฐ๊ฑด๊ณผ ๊ฐ™์ง€ ์•Š์€ ๊ฐ’์„ ๊ฒ€์ƒ‰!!> : ํ•„ํ„ฐ๋ง ์กฐ๊ฑด๋ณด๋‹ค ํฌ์ง€ ์•Š์€ ๊ฐ’์„ ๊ฒ€์ƒ‰  symbol ์—ด์˜ ๊ฐ’์ด 'MSFT'์ธ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ipo_year ์—ด์˜ ๊ฐ’์ด 2021๋…„ ๋ฏธ๋งŒ์ธ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ํ•˜๊ธฐ last_crawel_date๊ฐ€ 2021๋…„ 10์›” 15์ผ ์ด์ƒ์ธ ํ–‰์„ ๊ฒ€์ƒ‰  WHERE ๋ฌธ์—์„œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•˜๊ธฐALL : ๋ชจ๋“  ๋น„๊ต ์ง‘ํ•ฉ์ด TRUE(์ฐธ)์ด๋ฉด TRUEAND : ๋‘ ๋ถ€์šธ ํ‘œํ˜„..
[Do it! SQL ์ž…๋ฌธ] 03-1. SELECT ๋ฌธ์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ํ•˜๊ธฐ SELECT๋ฌธ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ตฌ๋ฌธSELECT๋ฌธ์€ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ์ง€๋งŒ ์‹œ์Šคํ…œ ์„ฑ๋Šฅ์— ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋ฏ€๋กœ ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ํ˜•ํƒœ์˜ SELECT๋ฌธSELECT ์—ดFROM ํ…Œ์ด๋ธ”WHERE ์กฐ๊ฑดORDER BY ์—ด  ์ฃผ์„ ์ž‘์„ฑ ๋ฐฉ๋ฒ•์ฃผ์„์ด๋ž€ ์ฟผ๋ฆฌ ์‹คํ–‰์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”, ์ฝ”๋“œ ์„ค๋ช…์„ ์œ„ํ•œ ๋ฉ”๋ชจ1์ค„ ์ฃผ์„ ์ž…๋ ฅ ์‹œ ๋ฌธ๊ตฌ ๋งจ ์•ž์— --๋ฅผ ๋ถ™์ด๋ฉด ๋จ์—ฌ๋Ÿฌ ์ค„์˜ ์ฃผ์„ ์ž…๋ ฅ ์‹œ ์ฃผ์„์˜ ๋‚ด์šฉ์„ /* */ ์œผ๋กœ ๊ฐ์‹ธ๋ฉด ๋จ  ํ•˜๋‚˜์˜ ์—ด ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—ด ๊ฒ€์ƒ‰ํ•˜๊ธฐ๊ฒ€์ƒ‰ํ•  ์—ด ์ด๋ฆ„์„ ์‰ผํ‘œ(,)๋กœ ๊ตฌ๋ถ„ํ•ด ๋‚˜์—ด ์ „์ฒด ์—ด ๊ฒ€์ƒ‰ํ•˜๊ธฐ* ๊ธฐํ˜ธ ์‚ฌ์šฉ โ€ป ์ „์ฒด ์—ด ๊ฒ€์ƒ‰์€ ์ž์›์„ ๋งŽ์ด ์†Œ๋น„ํ•˜๋ฏ€๋กœ ์ฃผ์˜์ „์ฒด ์—ด์„ ๊ฒ€์ƒ‰ํ•  ๊ฒฝ์šฐ ๋ถˆํ•„์š”ํ•œ ์—ด์˜ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ๊ฒ€์ƒ‰ํ•˜๋ฏ€๋กœ CPU๋‚˜ ๋””์Šคํฌ์— ๋งŽ์€ ๋ถ€๋‹ด์„ ์ฃผ๊ธฐ ๋–„๋ฌธ์—, ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ• ..