728x90

sql 19

[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์‚ฌ์šฉ์ž์˜ ๋‹ค์–‘ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋Œ€ํ‘œ์ ์ธ ์„ค๊ณ„ ๋ฐฉ๋ฒ• E-R ๋ชจ๋ธ๊ณผ ๋ฆด๋ ˆ์ด์…˜ ๋ณ€ํ™˜ ๊ทœ์น™์„ ์ด์šฉํ•œ ์„ค๊ณ„ ์ •๊ทœํ™”๋ฅผ ์ด์šฉํ•œ ์„ค๊ณ„ E-R ๋ชจ๋ธ๊ณผ ๋ฆด๋ ˆ์ด์…˜ ๋ณ€ํ™˜ ๊ทœ์น™์„ ์ด์šฉํ•œ ์„ค๊ณ„ 1๋‹จ๊ณ„ ์š”๊ตฌ ์‚ฌํ•ญ ๋ถ„์„ - ์ฒ˜๋ฆฌํ•ด์•ผํ•  ๋ฐ์ดํ„ฐ ํŒŒ์•…, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์šฉ๋„ ํŒŒ์•… - ๊ฒฐ๊ณผ๋ฌผ: ์š”๊ตฌ ์‚ฌํ•ญ ๋ช…์„ธ์„œ 2๋‹จ๊ณ„ ๊ฐœ๋…์  ์„ค๊ณ„ - DBMS์— ๋…๋ฆฝ์ ์ธ ๊ฐœ๋…์  ๊ตฌ์กฐ ์„ค๊ณ„ - ๊ฒฐ๊ณผ๋ฌผ: ๊ฐœ๋…์  ์Šคํ‚ค๋งˆ(E-R ๋‹ค์ด์–ด๊ทธ๋žจ) 3๋‹จ๊ณ„ ๋…ผ๋ฆฌ์  ์„ค๊ณ„ - DBMS์— ์ ํ•ฉํ•œ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ ์„ค๊ณ„ - ๊ฒฐ๊ณผ๋ฌผ: ๋…ผ๋ฆฌ์  ์Šคํ‚ค๋งˆ(๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ) 4๋‹จ๊ณ„ ๋ฌผ๋ฆฌ์  ์„ค๊ณ„ - DBMS๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ ์„ค๊ณ„ - ์ €์žฅ ์žฅ์น˜์— ์ ํ•ฉํ•œ ์ €์žฅ ๋ ˆ์ฝ”๋“œ, ์ธ๋ฑ์Šค์˜ ๊ตฌ์กฐ ๋“ฑ ์„ค๊ณ„ - ์ธ๋ฑ์Šค์— ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ..

[DB] ๋ทฐ(VIEW)

๋ทฐ(VIEW) ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฐ€์ƒ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋…ผ๋ฆฌ์ ์œผ๋กœ๋งŒ ์กด์žฌ but ์ผ๋ฐ˜ ํ…Œ์ด๋ธ”๊ณผ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์šด ๋ทฐ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ ๋ทฐ ํ†ตํ•ด ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”(๋ทฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๋ฌผ๋ฆฌ์  ํ…Œ์ด๋ธ”) ๋‚ด์šฉ ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ๋ณ€ํ™”์‹œํ‚ค๋Š” ์ž‘์—…์€ ์ œํ•œ์  →→ ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์„ ๋“ค์—ฌ๋‹ค ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ฐฝ์˜ ์—ญํ• ์„ ๋‹ด๋‹น, ๋ฌผ๋ฆฌ์ X, ๋…ผ๋ฆฌ์  ๊ฐ€์ƒ ํ…Œ์ด๋ธ” ๋ทฐ ์ƒ์„ฑ : CREATE VIEW ๋ฌธ CREATE VIEW ๋ทฐ_์ด๋ฆ„[(์†์„ฑ_๋ฆฌ์ŠคํŠธ)] AS SELECT ๋ฌธ [WITH CHECK OPTION]; CREATE VIEW ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ์ƒ์„ฑํ•  ๋ทฐ์˜ ์ด๋ฆ„๊ณผ ๋ทฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ ์ด๋ฆ„ ๋‚˜์—ด AS ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ SELECT ๋ฌธ..

[DB] ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

5์žฅ. ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ฐœ๋… ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ œ์•ฝ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ฐœ๋… ๊ฐœ๋…์  ๊ตฌ์กฐ๋ฅผ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ•˜๋‚˜์˜ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์— ์ €์žฅ (๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ๋‹ค์ค‘ ๊ฐ’ ์†์„ฑ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.) ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ์ฐจ์ˆ˜๋Š” 6, ์นด๋””๋„๋ฆฌํ‹ฐ๋Š” 4 ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ธฐ๋ณธ ์šฉ์–ด ๋ฆด๋ ˆ์ด์…˜(relation) 2์ฐจ์› ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋กœ ์ €์žฅํ•œ ๊ฒƒ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ํŒŒ์ผ(file)์— ๋Œ€์‘ ์†์„ฑ(attribute) ๋ฆด๋ ˆ์ด์…˜์˜ ์—ด = ์• ํŠธ๋ฆฌ๋ทฐํŠธ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ํ•„๋“œ(field)์— ๋Œ€์‘ ํˆฌํ”Œ(tuple) ๋ฆด๋ ˆ์ด์…˜์˜ ํ–‰ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ๋ ˆ์ฝ”๋“œ(record)์— ๋Œ€์‘ ๋„๋ฉ”์ธ(domain) ํ•˜๋‚˜์˜ ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ’์˜ ์ง‘ํ•ฉ ์†์„ฑ ..

[MySQL] ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„ ํ…Œ์ด๋ธ” SQL ์ฟผ๋ฆฌ๋ฌธ์œผ๋กœ JOIN ํ•˜๊ธฐ

์ผ๋Œ€๋‹ค, ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„ 1:๋‹ค ๊ด€๊ณ„ ํ•œ์ชฝ ํ…Œ์ด๋ธ”์—๋Š” ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์กด์žฌํ•˜๊ณ , ๊ทธ ๊ฐ’๋งŒ ๋Œ€์‘๋˜๋Š” ๋‹ค๋ฅธ ์ชฝ ํ…Œ์ด๋ธ”์˜ ๊ฐ’์€ ์—ฌ๋Ÿฌ ๊ฐœ์ธ ๊ด€๊ณ„ EX) ํ•™์ƒ ํ…Œ์ด๋ธ”๊ณผ ์ ์ˆ˜ ํ…Œ์ด๋ธ”, ์ง์› ํ…Œ์ด๋ธ”๊ณผ ์›”๊ธ‰ ํ…Œ์ด๋ธ” ๋‹ค:๋‹ค ๊ด€๊ณ„ ํ•œ ํ•™์ƒ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋™์•„๋ฆฌ์— ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ๊ณ , ํ•œ ๋™์•„๋ฆฌ์—๋Š” ์—ฌ๋Ÿฌ ํ•™์ƒ์ด ๊ฐ€์ž…ํ•  ์ˆ˜ ์žˆ์–ด ํ•™์ƒ ํ…Œ์ด๋ธ”๊ณผ ๋™์•„๋ฆฌ ํ…Œ์ด๋ธ”์€ ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„์ž„. ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„์˜ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ ํ…Œ์ด๋ธ”๊ณผ ๋‘ ํ…Œ์ด๋ธ”์ด ์ผ๋Œ€๋‹ค ๊ด€๊ณ„๋ฅผ ๋งบ๋„๋ก ๊ตฌ์„ฑ EX) ํ•™์ƒ ํ…Œ์ด๋ธ”, ํ•™์ƒ_๋™์•„๋ฆฌ ํ…Œ์ด๋ธ”(ํ•™์ƒํ…Œ์ด๋ธ”๊ณผ ๋™์•„๋ฆฌํ…Œ์ด๋ธ”์˜ ์—ฐ๊ฒฐ ํ…Œ์ด๋ธ”), ๋™์•„๋ฆฌ ํ…Œ์ด๋ธ” ํ•™์ƒ ํ…Œ์ด๋ธ”, ํ•™์ƒ_๋™์•„๋ฆฌ ํ…Œ์ด๋ธ”, ๋™์•„๋ฆฌ ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๋Š” ์ฟผ๋ฆฌ๋ฌธ -- ํ•™์ƒ ํ…Œ์ด๋ธ” drop table if exists stdtbl; create table stdtbl( stdname varch..

DB(Database)/MySQL 2021.02.16

SQL UNION, UNIONALL, NOT IN, IN

UNION ๋‘ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ–‰์œผ๋กœ ํ•ฉ์น˜๋Š” ์—ฐ์‚ฐ์ž ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ ์‹œ ์ค‘๋ณต๋œ ๊ฒƒ ์ œ์™ธ SELECT [๋ฌธ์žฅ1] UNION [ALL] SELECT [๋ฌธ์žฅ2] UNION ALL ๋‘ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ–‰์œผ๋กœ ํ•ฉ์น˜๋Š” ์—ฐ์‚ฐ์ž UNION๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ค‘๋ณต๋œ ๊ฒƒ๋„ ๋‹ค ์ถœ๋ ฅ NOT IN ์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ ์ค‘์—์„œ ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ ์ œ์™ธํ•˜๊ณ  ์ถœ๋ ฅ SELECT * FROM [ํ…Œ์ด๋ธ”๋ช…] WHERE [์กฐ๊ฑด ์—ด] NOT IN (์„œ๋ธŒ์ฟผ๋ฆฌ) ์ฐธ๊ณ ) MySQL ๊ธฐ์ดˆ์—์„œ ์‹ค๋ฌด๊นŒ์ง€ ์™„์ „์ •๋ณต ํ•˜๊ธฐ - ์•„์ดํ‹ฐ๊ณ  ์‹ ๊ฒฝ์ง„ ๊ฐ•์‚ฌ

SQL ์กฐ์ธ, ์ผ๋Œ€๋‹ค, ๋‹ค๋Œ€๋‹ค ๊ด€๊ณ„ - Inner Join, Outer Join, Cross Join, Self Join

๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋Œ€์šฉ๋Ÿ‰์ด๋ผ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์ €์žฅํ•œ๋‹ค. → ์ค‘๋ณต๊ณผ ๊ณต๊ฐ„ ๋‚ญ๋น„ ๋ฐฉ์ง€, ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์œ„ํ•จ → ๋ถ„๋ฆฌ๋œ ํ…Œ์ด๋ธ”์€ ์„œ๋กœ ๊ด€๊ณ„(relation) ๊ฐ€์ง€๋ฏ€๋กœ join ์‹œ ์ˆ™์ง€๊ฐ€ ํ•„์š”ํ•˜๋‹ค. (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ DBMS ์ •์˜ ์ฐธ๊ณ ) ahnty0122.tistory.com/26 [DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€? DBMS๋ž€? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •์˜์™€ ํŠน์ง• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณต์œ  + ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ ๊ณต๊ฐ„ ๊ทธ ์ž์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํŠน์ง• ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ: ์˜ค๋ฅ˜๊ฐ€ ์žˆ์–ด ahnty0122.tistory.com JOIN 2๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ” ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“œ๋Š” ๊ฒƒ Inner join ํ†ต์ƒ ์กฐ์ธ ๊ต์ง‘ํ•ฉ, ์กฐ์ธ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ–‰๋งŒ ์ถœ๋ ฅํ•˜๋Š” ์กฐ์ธ SELECT ..

[MySQL] ๋Œ€์šฉ๋Ÿ‰ ํ…Œ์ด๋ธ” csv, txt ํŒŒ์ผ ํ˜•ํƒœ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ & ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

txt ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ select * from [ํ…Œ์ด๋ธ”๋ช…] into outfile '[ํŒŒ์ผ๋ช…].txt' character set utf8mb4 fields terminated by ',', optionally enclosed by '"' escaped by '\\' lines terminated by '\n'; csv ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ select * from [ํ…Œ์ด๋ธ”๋ช…] into outfile '[ํŒŒ์ผ๋ช…].csv' character set utf8mb4 fields terminated by ',', optionally enclosed by '"' escaped by '\\' lines terminated by '\n'; txt ํŒŒ์ผ ํ…Œ์ด๋ธ”๋กœ ์ฝ์–ด์˜ค๊ธฐ load data infile '[ํŒŒ์ผ๋ช…].txt' ..

DB(Database)/MySQL 2021.02.09

JSON ๋ฐ์ดํ„ฐ๋ž€? + MySQL ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ €์žฅ ํ˜•์‹

JSON ํ˜•์‹์ด๋ž€? JSON (JavaScript Object Notation) ์›น ํ™˜๊ฒฝ์ด๋‚˜ ๋ชจ๋ฐ”์ผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€ ํฌ๋งท ์†์„ฑ(KEY)๊ณผ ๊ฐ’(VALUE) ์Œ์œผ๋กœ ๊ตฌ์„ฑ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์—์„œ ํŒŒ์ƒ๋˜์—ˆ์ง€๋งŒ ํŠน์ • ์–ธ์–ด์— ์ข…์†๋˜์ง€ ์•Š๊ณ  ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ์ ์ธ ๋ฐ์ดํ„ฐ ํฌ๋งท ํฌ๋งท์ด ๋‹จ์ˆœ, ๊ณต๊ฐœ๋˜์–ด ์žˆ์–ด ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‰ฝ๊ฒŒ ์ฝ๊ฑฐ๋‚˜ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐ€๋Šฅ โ€ป ์ตœ๊ทผ ๊ธฐ์กด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ NoSQL๋กœ์˜ ๋ณ€ํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋•Œ JSON ํ˜•ํƒœ๋Š” ๋งค์šฐ ์ค‘์š” โ€ป But, ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์•Œ์•„์•ผ NoSQL ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ™์ง€ ํ•„์ˆ˜ JSON_OBJECT() ์ฟผ๋ฆฌ๋ฌธ ๊ฒฐ๊ณผ๋ฅผ JSON ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜ @json ๋ณ€์ˆ˜์— JSON ๋ฐ์ดํ„ฐ..

728x90