SQL ์‹œ๋ฆฌ์ฆˆ (6์žฅ) ๐Ÿชด

On a regular basisยท2021๋…„ 8์›” 20์ผ
0

SQL ์‹œ๋ฆฌ์ฆˆ ๐Ÿช“

๋ชฉ๋ก ๋ณด๊ธฐ
6/8
post-thumbnail

<SQL ์ฒซ๊ฑธ์Œ> ์„ ๋ณด๊ณ  ์ง์ ‘ ํ•™์Šตํ•˜๊ณ  ๊ธฐ๋กํ•˜๋Š” ํฌ์ŠคํŠธ! ๐Ÿ”ฅ

DATABASE ๋งˆ์Šคํ„ฐ๋ฅผ ๊ฟˆ๊พธ๋ฉฐ...๐Ÿ”ฅ

๐Ÿ’š 6์žฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด ์ž‘์„ฑ๊ณผ ์‚ญ์ œ

๐Ÿ’š 25๊ฐ• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด

  • RDBMS ์†ํŠธ์›จ์–ด๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋น„์–ด์žˆ๋Š” ์ƒํƒœ! ์—ฌ๊ธฐ์— ํ…Œ์ด๋ธ”์ด๋‚˜ ๋ทฐ, ์ธ๋ฑ์Šค, ํ”„๋กœ์‹œ์ € ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ฅผ ์ž‘์„ฑํ•ด ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•.
  1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด? ํ…Œ์ด๋ธ”์ด๋‚˜ ๋ทฐ, ์ธ๋ฑ์Šค ๋“ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์— ์ •์˜ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ผ์ปซ๋Š” ๋ง.
    (๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช๐Ÿคช)

  • ๊ฐ์ฒด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์— ์‹ค์ฒด๋ฅผ ๊ฐ€์ง€๋Š” ์–ด๋–ค ๊ฒƒ. ๊ฐ์ฒด์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜๋Š” ๋‚ด์šฉ๋„ ๋‹ฌ๋ผ์ง. ์ง€๊ธˆ๊นŒ์ง€ ํ•™์Šตํ•œ ๊ฒƒ ์ค‘ ๊ฐ์ฒด์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์€ ํ…Œ์ด๋ธ”! (๊ณ ๋กœ select๋‚˜ insert ๋“ฑ์€ SQL๋ช…๋ น์–ด๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์— ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ˆ๊นŒ ๊ฐ์ฒด๊ฐ€ ์•„๋‹˜~!)

  • ๊ฐ์ฒด ์ด๋ฆ„ ๋ถ™์ผ ๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ?

  • ๊ธฐ์กด ์ด๋ฆ„์ด๋‚˜ ์˜ˆ์•ฝ์–ด์™€ ์ค‘๋ณตํ•˜์ง€ ์•Š๊ธฐ
  • ์ˆซ์ž๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Œ
  • ์–ธ๋”์Šค์ฝ”์–ด(_) ์ด์™ธ์˜ ๊ธฐํ˜ธ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ
  • ํ•œ๊ธ€์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋”๋ธ”์ฟผํŠธ(MySQL์—์„œ๋Š” ๋ฐฑ์ฟผํŠธ)๋กœ ๋‘˜๋Ÿฌ์Œˆ
  • ์‹œ์Šคํ…œ์ด ํ—ˆ์šฉํ•˜๋Š” ๊ธธ์ด๋ฅผ ์ดˆ๊ณผํ•˜์ง€ ์•Š๊ธฐ
    ex) foo๋ผ๋Š” ์ด๋ฆ„์˜ ํ…Œ์ด๋ธ”์„ ํ•œ๋ฒˆ ๋งŒ๋“ค๋ฉด, ๊ฐ™์€ ์ข…๋ฅ˜์˜ ํ…Œ์ด๋ธ”์€ ๋ฌผ๋ก ์ด๊ณ  ๋ทฐ์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด ์—ญ์‹œ ๋˜‘๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์—†์Œ!
  1. ์Šคํ‚ค๋งˆ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋Š” ์Šคํ‚ค๋งˆ๋ผ๋Š” ๊ทธ๋ฆ‡ ์•ˆ์—์„œ ๋งŒ๋“ค์–ด์ง. ๊ฐ์ฒด์˜ ์ด๋ฆ„์ด ๊ฐ™์•„๋„ ์Šคํ‚ค๋งˆ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋‹ค๋ฉด ์ƒ๊ด€์—†์Œ! ์Šคํ‚ค๋งˆA์˜ fooํ…Œ์ด๋ธ”, ์Šคํ‚ค๋งˆB์˜ fooํ…Œ์ด๋ธ” -> NO ์ƒ๊ด€.
    -> ์ด์™€ ๊ฐ™์€ ํŠน์ง• ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋Š” '์Šคํ‚ค๋งˆ ๊ฐ์ฒด'๋ผ๊ณ  ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•จ. ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ…Œ์ด๋ธ”์„ ์ž‘์„ฑํ•ด์„œ ๊ตฌ์ถ•ํ•ด๋‚˜๊ฐ€๋Š” ์ž‘์—…์„ '์Šคํ‚ค๋งˆ ์„ค๊ณ„'๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•จ. ์ด๋•Œ ์Šคํ‚ค๋งˆ๋Š” SQL๋ช…๋ น์˜ DDL์„ ์ด์šฉํ•ด ์ •์˜.

  • MySQL์—์„œ๋Š” CREATE DATABASE๋ช…๋ น์œผ๋กœ ์ž‘์„ฑํ•œ '๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค'๊ฐ€ ์Šคํ‚ค๋งˆ๊ฐ€ ๋จ.

  • ์Šคํ‚ค๋งˆ๋Š” '๋„ค์ž„์ŠคํŽ˜์ด์Šค(namespace)'๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•จ!

๐Ÿ’š 26๊ฐ• ํ…Œ์ด๋ธ” ์ž‘์„ฑ/์‚ญ์ œ/๋ณ€๊ฒฝ

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด์ธ ํ…Œ์ด๋ธ”์„ ์ž‘์„ฑ, ์‚ญ์ œ, ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณผ๊นŒ!?
  1. ํ…Œ์ด๋ธ” ์ž‘์„ฑ
  • DDL์€ ๋ชจ๋‘ ๊ฐ™์€ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•จ. create๋กœ ์ž‘์„ฑ, drop์œผ๋กœ ์‚ญ์ œ, alter๋กœ ๋ณ€๊ฒฝ.
    ex) ํ…Œ์ด๋ธ”์„ ์ž‘์„ฑํ•œ๋‹ค๋ฉด, create table, ๋ทฐ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๋ฉด create view!
๐Ÿ’š create tables ํ…Œ์ด๋ธ”๋ช…(
์—ด ์ •์˜1,
์—ด ์ •์˜2,
...
) ๐Ÿ’š
  • ์—ด๋ช…์€ ์—ด์— ๋ถ™์ด๋Š” ์ด๋ฆ„, ์ž๋ฃŒํ˜•์€ integer๋‚˜ varchar ๋“ฑ์„ ์ง€์ •. ํŠนํžˆ, char๋‚˜ varchar์™€ ๊ฐ™์€ ๋ฌธ์ž์—ดํ˜•์œผ๋กœ ์ง€์ •ํ•  ๋•Œ๋Š” ์ตœ๋Œ€๊ธธ์ด๋ฅผ ๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด์ฃผ๊ธฐ.

  • ๊ธฐ๋ณธ๊ฐ’์€ default๋กœ ์ง€์ •ํ•˜๋˜ ์ž๋ฃŒํ˜•์— ๋งž๋Š” ๋ฆฌํ„ฐ๋Ÿด๋กœ ๊ธฐ์ˆ . ๊ธฐ๋ณธ๊ฐ’ ์ƒ๋žต ๊ฐ€๋Šฅ.

  • ์—ด์ด NULL์„ ํ—ˆ์šฉํ•  ๊ฒƒ์ธ์ง€ ์ง€์ •๊ฐ€๋Šฅ. NOT NULL์ด๋ผ๊ณ  ์ง€์ •ํ•˜๋ฉด ์ œ์•ฝ์ด ๊ฑธ๋ฆฌ๊ณ  NULLํ—ˆ์šฉ ์•ˆ๋จ.

  • ๊ทธ๋ ‡๋‹ค๋ฉด!!1 create table ๋ช…๋ น์œผ๋กœ sample62 ํ…Œ์ด๋ธ”์„ ์ •์˜ํ•œ ๋’ค desc๋กœ ์—ด ๊ตฌ์„ฑ์„ ํ™•์ธํ•ด๋ณด์žฅ.

๐Ÿ’š create table sample62( # ํ…Œ์ด๋ธ”์ด๋ฆ„: sample62
    -> no integer NOT NULL, # ์—ด์ด๋ฆ„ no, a, b
    -> a VARCHAR(30), # ๊ฐ ํ…Œ์ด๋ธ”์˜ ํŠน์„ฑ๋“ค, integer, varchar, date
    -> b DATE); ๐Ÿ’š


  1. ํ…Œ์ด๋ธ” ์‚ญ์ œ
๐Ÿ’š drop table ํ…Œ์ด๋ธ”๋ช… ๐Ÿ’š
  • ํ…Œ์ด๋ธ”์‚ญ์ œ ๊ฐ€๋Šฅ ! ('์ง„์งœ ์‚ญ์ œํ• ๋ž˜?' ๋ผ๊ณ  ์•ˆ๋ฌผ์–ด๋ณด๋‹ˆ๊นŒ ์กฐ์‹ฌํ•ด์„œ ์‚ญ์ œํ•˜๊ธฐ! ๐Ÿ‘Š)
  • ๋ฐ์ดํ„ฐ ํ–‰ ์‚ญ์ œ: drop table ๋ช…๋ น์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋Š”๋ฐ ์ด๋•Œ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋„ ํ•จ๊ป˜ ์‚ญ์ œ. <-> ํ…Œ์ด๋ธ”์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œํ•  ๋•Œ๋Š” delete ๋ช…๋ น์„ ์‚ฌ์šฉ. ์ด๋•Œ๋„ delete ๋ช…๋ น์— where ์กฐ๊ฑด์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Œ!
  • delete ๋ช…๋ น์€ ํ–‰ ๋‹จ์œ„๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋‚ด๋ถ€์ฒ˜๋ฆฌ๊ฐ€ ์ผ์–ด๋‚˜๋ฏ€๋กœ ์‚ญ์ œํ•  ํ–‰์ด ๋งŽ์œผ๋ฉด ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ์ƒ๋‹นํžˆ ๋Šฆ์–ด์ง. ์ด๋•Œ๋Š” DDL๋กœ ๋ถ„๋ฅ˜๋˜๋Š” TRUNCATE TABLE ๋ช…๋ น์„ ์‚ฌ์šฉ!
  • TRUNCATE TABLE ๋ช…๋ น์€ 1)์‚ญ์ œํ•  ํ–‰์„ ์ง€์ •ํ•  ์ˆ˜ ์—†๊ณ  2)where๊ตฌ๋„ ์ง€์ • ๋ชปํ•˜์ง€๋งŒ 3)๋ชจ๋“  ํ–‰์„ ์‚ญ์ œํ•ด์•ผ ํ•  ๋•Œ ๋น ๋ฅธ ์†๋„๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Œ!
๐Ÿ’š truncate table ํ…Œ์ด๋ธ”๋ช… ๐Ÿ’š 
  1. ํ…Œ์ด๋ธ” ๋ณ€๊ฒฝ
  • ํ…Œ์ด๋ธ” ์ž‘์„ฑํ•ด๋„ ์—ด ๊ตฌ์„ฑ์€ ์–ธ์ œ๋“  ๋ณ€๊ฒฝ๊ฐ€๋Šฅ! ์ด๋•Œ ํ…Œ์ด๋ธ” ๋ณ€๊ฒฝ์€ alter table ๋ช…๋ น์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง!
๐Ÿ’š alter table ํ…Œ์ด๋ธ”๋ช… ๋ณ€๊ฒฝ๋ช…๋ น ๐Ÿ’š 
  • ํ…Œ์ด๋ธ”์„ ์ž‘์„ฑํ•œ ๋’ค์—๋„ ์—ด์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ ์ตœ๋Œ€๊ธธ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋“ฑ ๊ตฌ์„ฑ์„ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ์ƒ๊น€. ์ด๋•Œ ํ…Œ์ด๋ธ”์ด ๋น„์–ด์žˆ์œผ๋ฉด drop table๋กœ ํ…Œ์ด๋ธ” ์‚ญ์ œํ•˜๊ณ  ๋ณ€๊ฒฝํ•  ํ…Œ์ด๋ธ” ๊ตฌ์กฐ์— ๋งž์ถฐ create table์„ ์‹คํ–‰ํ•ด ํ…Œ์ด๋ธ”์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ!

  • ๊ทผ๋ฐ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋ฉด drop table๋กœ ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋Š” ์ˆœ๊ฐ„ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋„ ๋ชจ๋‘ ์‚ญ์ œ๋จ ใ… ใ… 

  • ์ด๋•Œ alter table ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๊ทธ๋Œ€๋กœ ๋‚จ๊ธด ์ฑ„ ๊ตฌ์„ฑ๋งŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ.

  • alter table ๊ธฐ๋Šฅ: 1) ์—ด์ถ”๊ฐ€, ์‚ญ์ œ, ๋ณ€๊ฒฝ 2) ์ œ์•ฝ ์ถ”๊ฐ€, ์‚ญ์ œ
    1) ์—ด์ถ”๊ฐ€

๐Ÿ’š alter table ํ…Œ์ด๋ธ”๋ช… add ์—ด ์ •์˜ ๐Ÿ’š
๐Ÿ’š alter table sample62 add newcol integer; ๐Ÿ’š # newcol(์—ด์ด๋ฆ„) integer(์ž๋ฃŒํ˜•์†์„ฑ)

  • ์—ฌ๊ธฐ์„œ ์ฃผ์˜ํ•  ๊ฒƒ์€!! NOT NULL ์ œ์•ฝ์„ ๋ถ™์ธ ์—ด์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋จผ์ € NOT NULL๋กœ ์ œ์•ฝ์„ ๊ฑด ๋’ค์— NULL ์ด์™ธ์˜ ๊ฐ’์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์„ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ!

  • ์—ด ์†์„ฑ ๋ณ€๊ฒฝ: alter table ์—ด ์†์„ฑ์„ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด modify ํ•˜๋ถ€๋ช…๋ น์„ ์‹คํ–‰ํ•จ.

๐Ÿ’š alter table ํ…Œ์ด๋ธ”๋ช… modify ์—ด ์ •์˜ ๐Ÿ’š
  • ์ด๋•Œ๋„ ์—ด ์ •์˜๋Š” create table์˜ ๊ฒฝ์šฐ์™€ ๋™์ผํ•จ. modify๋กœ ์—ด ์ด๋ฆ„์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ, ์ž๋ฃŒํ˜•์ด๋‚˜ ๊ธฐ๋ณธ๊ฐ’, not null ์ œ์•ฝ ๋“ฑ์˜ ์†์„ฑ์€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ!
๐Ÿ’š alter table sample62 modify newcol varchar(20); ๐Ÿ’š

-> ์š”๋ ‡๊ฒŒ int์—์„œ varchar๋กœ ํƒ€์ž…ํ˜•์ด ๋ฐ”๋€œ!

  • ์—ด ์ด๋ฆ„ ๋ณ€๊ฒฝ: alter table๋กœ ์—ด ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” change ํ•˜๋ถ€๋ช…๋ น์œผ๋กœ ์‹œํ–‰ํ•  ์ˆ˜ ์žˆ์Œ!
๐Ÿ’š alter table ํ…Œ์ด๋ธ”๋ช… change [๊ธฐ์กด ์—ด ์ด๋ฆ„] [์‹ ๊ทœ ์—ด ์ •์˜] ๐Ÿ’š
  • ์—ด ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” Modify ๋ง๊ณ  change ์‚ฌ์šฉ!! change๋Š” ์—ด ์ด๋ฆ„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์—ด ์†์„ฑ๋„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ!

  • ์—ด ์‚ญ์ œ: alter table๋กœ ์—ด์„ ์‚ญ์ œํ•  ๋•Œ๋Š” drop ํ•˜๋ถ€๋ช…๋ น์„ ์‚ฌ์šฉํ•จ.

๐Ÿ’š alter table ํ…Œ์ด๋ธ”๋ช… drop ์—ด๋ช… ๐Ÿ’š
๐Ÿ’š alter table sample62 drop c; ๐Ÿ’š

  1. alter table๋กœ ํ…Œ์ด๋ธ” ๊ด€๋ฆฌ
  • ์ตœ๋Œ€๊ธธ์ด ์—ฐ์žฅ: ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ์—„~~~์ฒญ ์ปค์งˆ์ˆ˜๊ฐ€ ์žˆ์Œ! ํŠนํžˆ ํ–‰ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์€ ํ…Œ์ด๋ธ”์—์„œ๋Š” ๋ฐ์ดํ„ฐ ํ•˜๋‚˜์˜ ํฌ๊ธฐ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ์ €์žฅ ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Œ!
  • ์ด๋Ÿด ๋•Œ alter table๋กœ ์—ด์˜ ์ž๋ฃŒํ˜•๋งŒ ๋ณ€๊ฒฝํ•ด ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Œ!
๐Ÿ’š alter table sample modify col varchar(30) ๐Ÿ’š 
  • ์ฃผ์˜ํ•  ์ ! ๊ธฐ์กด์˜ ํ–‰์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด๋ณด๋‹ค ์ž‘๊ฒŒ ์ง€์ •ํ•  ์ˆ˜๋Š” ์—†์Œ!

  • ์—ด ์ถ”๊ฐ€: ํ…Œ์ด๋ธ”์— ์—ด์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ผ์€ ์ž์ฃผ ์ผ์–ด๋‚จ. alter table ๋ช…๋ น์„ ์จ์„œ!

๐Ÿ’š alter table sample add new_col integer ๐Ÿ’š

๐Ÿ’š 27๊ฐ• ์ œ์•ฝ

  • create table๋กœ ํ…Œ์ด๋ธ”์„ ์ •์˜ํ•  ๊ฒฝ์šฐ, ์—ด ์ด์™ธ์— ์ œ์•ฝ๋„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์—ˆ์Œ! ๊ทธ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ NOT NULL! NOT NULL๋ง๊ณ ๋„ ๋‹ค์–‘ํ•œ ์ œ์•ฝ์ด ์žˆ์Œ! ์•Œ์•„๋ณด์žฅ...^^
  1. ํ…Œ์ด๋ธ” ์ž‘์„ฑ์‹œ ์ œ์•ฝ ์ •์˜
  • ์ œ์•ฝ์€ ํ…Œ์ด๋ธ”์— ์„ค์ •ํ•˜๋Š” ๊ฒƒ. create table๋กœ ํ…Œ์ด๋ธ”์„ ์ž‘์„ฑํ•  ๋•Œ ์ œ์•ฝ์„ ๊ฐ™์ด ์ •์˜ํ•จ. ๋ฌผ๋ก  alter table๋กœ ์ œ์•ฝ์„ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ! ์ด๋•Œ NOT NULL ์ œ์•ฝ ๋“ฑ ํ•˜๋‚˜์˜ ์—ด์— ๋Œ€ํ•ด ์„ค์ •ํ•˜๋Š” ์ œ์•ฝ์€ ์—ด์„ ์ •์˜ํ•  ๋•Œ ์ง€์ •ํ•จ.
๐Ÿ’š create table sample631(
a integer NOT NULL, # a ์—ด์—๋Š” NOT NULL ์ œ์•ฝ์ด ๊ฑธ๋ ค์žˆ์Œ!
b integer NOT NULL UNIQUE, # b์—ด์—๋Š” NOT NULL + UNIQUE ์ œ์•ฝ.
c VARCHAR(30)
); ๐Ÿ’š
  • a,b ์—ด์—๋Š” ๊ฐ๊ฐ ์ œ์•ฝ์ด ๊ฑธ๋ ค์žˆ๋Š”๋ฐ ์ด๊ฑธ '์—ด ์ œ์•ฝ'์ด๋ผ๊ณ  ๋ถ€๋ฆ„. ๋ฐ˜๋ฉด, ํ•œ ๊ฐœ์˜ ์ œ์•ฝ์œผ๋กœ ๋ณต์ˆ˜์˜ ์—ด์— ์ œ์•ฝ์„ ์„ค๋ช…ํ•˜๋Š” ์ œ์•ฝ์„ ์„ค๋ช…ํ•˜๋Š” ๊ฒฝ์šฐ '๋ณต์ˆ˜์—ด์— ์˜ํ•œ ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ' ์ด๋ผ๊ณ  ๋ถ€๋ฆ„!
๐Ÿ’š create table sample 632(
no INTEGER NOT NULL,
sub_no INTEGER NOT NULL,
name VARCHAR(30),
PRIMARY KEY (no, sub_no)
); ๐Ÿ’š


-> ์—ด์€ no, sub_no, name์œผ๋กœ ์„ธ๊ฐœ, integer ์ž๋ฃŒํ˜•์€ not null ์ œ์•ฝ ๊ฑธ์–ด์ฃผ๊ณ , name ์—ด์€ null true๊ฐ€ ๋˜์–ด์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  no, sub_no ์—ด์€ primary key๋กœ ์ง€์ •!

  • ์ œ์•ฝ์—๋Š” ์ด๋ฆ„์„ ๋ถ™์ผ ์ˆ˜ ์žˆ์Œ! ์ด๋ฆ„ ๋ถ™์ด๋ฉด ๊ด€๋ฆฌ๊ฐ€ ์‰ฌ์›Œ์ง€๊ฒŒ์ฐŒ~~~
  • ์ œ์•ฝ ์ด๋ฆ„์€ constraint ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ง€์ •! ๐ŸŒฑ
๐Ÿ’š create table sample632(
no integer NOT NULL,
sub_no INTEGER NOT NULL,
name VARCHAR(30),
CONSTRAINT ๐ŸŒฑpkey_sample๐ŸŒฑ PRIMARY KEY(no, sub_no) # ์ œ์•ฝ์ด๋ฆ„์€ pkey_sample!
); ๐Ÿ’š
  1. ์ œ์•ฝ ์ถ”๊ฐ€
    ๊ธฐ์กด ํ…Œ์ด๋ธ”์—๋„ ๋‚˜์ค‘์— ์ œ์•ฝ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ. ์ด๋•Œ ์—ด ์ œ์•ฝ๊ณผ ํ…Œ์ด๋ธ” ์ œ์•ฝ์€ ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ถ”๊ฐ€.
    1) ์—ด ์ œ์•ฝ ์ถ”๊ฐ€
  • ์—ด ์ œ์•ฝ์„ ์ถ”๊ฐ€ํ•  ๊ฒฝ์šฐ alter table๋กœ ์—ด ์ •์˜๋ฅผ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ. ๊ธฐ์กด ํ…Œ์ด๋ธ” ๋ณ€๊ฒฝํ•  ๋•Œ๋Š” ์ œ์•ฝ์„ ์œ„๋ฐ˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ๋จผ์ € ๊ฒ€์‚ฌํ•จ.
    ex) c์—ด์— NULL๊ฐ’์ด ์กด์žฌํ•œ๋‹ค๋ฉด alter table ๋ช…๋ น์€ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ. c์—ด์— NOT NULL ์ œ์•ฝ์„ ์„ค์ •ํ•ด๋ณด์žฅ!
๐Ÿ’š alter table sample632 modify name varchar (30) NOT NULL; ๐Ÿ’š


์š”๋ ‡๊ฒŒ ๋ฐ”๋€Œ์–ด์ฐŒ~~~ ๐Ÿ˜‡

-> sample632ํ…Œ์ด๋ธ”์˜ name์—ด์„ NOT NULL๋กœ ์ œ์•ฝ ์„ค์ •ํ•จ!

2) ํ…Œ์ด๋ธ” ์ œ์•ฝ ์ถ”๊ฐ€
alter table์˜ add ํ•˜๋ถ€๋ช…๋ น์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ! ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ์„ ์ถ”๊ฐ€ํ•ด๋ณผ๊นŒ์•„...?^^ ๊ธฐ๋ณธํ‚ค๋Š” ์›๋ž˜ ํ…Œ์ด๋ธ”์— ํ•˜๋‚˜๋งŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ! ๊ทธ๋ž˜์„œ ์ด๋ฏธ ๊ธฐ๋ณธํ‚ค๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€๋กœ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์—†๋“ฌ! ๋˜, ์—ด ์ œ์•ฝ์„ ์ถ”๊ฐ€ํ•  ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ธฐ์กด์˜ ํ–‰์„ ๊ฒ€์‚ฌํ•ด ์ถ”๊ฐ€ํ•  ์ œ์•ฝ์„ ์œ„๋ฐ˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Œ ใ…‡ใ…”๋Ÿฌ ๋ฐœ์ƒ!

๐Ÿ’š alter table sample632 add constraint pkey_sample632 primary key(a); ๐Ÿ’š
  1. ์ œ์•ฝ ์‚ญ์ œ
  • ํ…Œ์ด๋ธ” ์ œ์•ฝ์€ ๋‚˜์ค‘์— ์‚ญ์ œ ๊ฐ€๋Šฅ. ์—ด ์ œ์•ฝ์˜ ๊ฒฝ์šฐ, ์ œ์•ฝ์„ ์ถ”๊ฐ€ํ•  ๋•Œ์™€ ๋™์ผํ•˜๊ฒŒ ์—ด ์ •์˜๋ฅผ ๋ณ€๊ฒฝ. ๋‹ค์Œ์€ ์•ž์„œ ์ถ”๊ฐ€ํ•œ c ์—ด์˜ NOT NULL ์ œ์•ฝ์„ ์‚ญ์ œํ•˜๋Š” alter table์˜ ์˜ˆ์‹œ!
๐Ÿ’š alter table sample632 modify sub_no varchar(30); ๐Ÿ’š
  • ํ…Œ์ด๋ธ” ์ œ์•ฝ์€ alter table์˜ drop ํ•˜๋ถ€๋ช…๋ น์œผ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Œ! ์‚ญ์ œํ•  ๋•Œ๋Š” ์ œ์•ฝ๋ช…์„ ์ง€์ •ํ•จ. ๊ทผ๋ฐ ์ œ์•ฝ๋ช…์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ์‚ญ์ œ๋Š” ๊ฐ€๋Šฅ !
๐Ÿ’š alter table sample633 drop primary key; ๐Ÿ’š



-> ์š”๋ ‡๊ฒŒ ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ์„ ์‚ญ์ œํ•ด์ฅผ ใ…Žใ…Ž

  1. ๊ธฐ๋ณธํ‚ค
  • ์ •๋ฆฌ: NOT NULL ์ œ์•ฝ์€ ์—ด ์ œ์•ฝ, ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ์ด ํ…Œ์ด๋ธ” ์ œ์•ฝ.
  • ์ด๋•Œ, NOT NULL ์ œ์•ฝ์„ ์„ค์ •ํ•˜๋ ค๋ฉด ๋Œ€์ƒ ์—ด์—๋Š” NULL ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š์•„์•ผ ํ•จ.
  • ๊ทธ๋Ÿผ, ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ์„ ์„ค์ •ํ•˜๋ ค๋ฉด ํ…Œ์ด๋ธ”์€ ์–ด๋–ค ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผํ• ๊นŒ??

1)๋จผ์ € create table๋กœ ํ…Œ์ด๋ธ” ๋งŒ๋“ค์–ด์ฃผ๊ธฐ!

๐Ÿ’š create table sample634(p INTEGER NOT NULL, a VARCHAR(30), CONSTRAINT pkey_sample634 PRIMARY KEY(p)); ๐Ÿ’š

  • ์—ด p๊ฐ€ sample634 ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค. (+๊ธฐ๋ณธํ‚ค๋กœ ์ง€์ •ํ•  ์—ด์€ NOT NULL ์ œ์•ฝ์ด ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผํ•จ!!!๐Ÿ‘Š)

  • ๊ธฐ๋ณธํ‚ค๋Š” ํ…Œ์ด๋ธ”์˜ ํ–‰ ํ•œ ๊ฐœ๋ฅผ ํŠน์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒ€์ƒ‰ํ‚ค!(๊ฒ€์ƒ‰ํ‚ค๋Š” ๊ฒ€์ƒ‰ํ•  ๋•Œ์˜ ํ‚ค์›Œ๋“œ๋ผ๊ณ  ์ดํ•ดํ•˜์žฅ!๐Ÿผ)

  • ๊ธฐ๋ณธํ‚ค๋กœ ์„ค์ •๋œ ์—ด์ด ์ค‘๋ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค~!

  • ๋จผ์ € insert๋ฅผ ์‚ฌ์šฉํ•ด์„œ sample634์— ์„ธ๊ฐœ์˜ ํ–‰์„ ์ถ”๊ฐ€ํ•จ!

๐Ÿ’š insert into sample634 values(1, '์ฒซ์งธ์ค„');
๐Ÿ’š insert into sample634 values(2, '๋‘˜์งธ์ค„');
๐Ÿ’š insert into sample634 values(3, '์…‹์งธ์ค„');
  • ์ด๋•Œ p ์—ด์˜ ๊ฐ’์ด ๊ฐ๊ฐ 1,2,3์œผ๋กœ ์ค‘๋ณตํ•˜์ง€ ์•Š์Œ! ๊ทธ๋Ÿผ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฐ’์ธ 2๋กœ ๋‹ค์‹œ ํ•œ๋ฒˆ ํ–‰์„ ์ถ”๊ฐ€ํ•ด๋ณผ๊นŒ์•„~?ใ…Žใ…Ž

    -> ์ค‘๋ณต๋ผ์„œ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹น! ๊ธฐ๋ณธํ‚ค์ œ์•ฝ์— ์œ„๋ฐ˜๋๋‹ค๋Š” ๋œผ!

  • update ๋ช…๋ น์„ ์‹คํ–‰ํ•  ๋•Œ๋„ ์ œ์•ฝ์„ ์œ„๋ฐ˜ํ•˜๋Š” ๊ฐ’์ด ์—†๋Š”์ง€ ๊ฒ€์‚ฌํ•จ!

  • p๊ฐ€ 3์ธ ํ–‰์„ 2๋กœ ๊ฐฑ์‹ ํ•˜๋Š”๋ฐ ์„ฑ๊ณตํ•˜๋ฉด, p=2์ธ ์—ด์ด ๋‘๊ฐœ๋‚˜ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— update ๋ช…๋ น ์—ญ์‹œ ์ œ์•ฝ์— ์œ„๋ฐ˜๋˜๋ฏ€๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์Œ.

๐Ÿ’š update sample634 SET p=2 where p=3; ๐Ÿ’š

  • ์š”๋ ‡๊ฒŒ ์—๋Ÿฌ๊ฐ€ ๋œธ.(p๋Š” primary key๋‹ˆ๊นŒ)

-> ์ด์ฒ˜๋Ÿผ ์—ด์„ ๊ธฐ๋ณธํ‚ค๋กœ ์ง€์ •ํ•ด ์œ ์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋„๋ก ํ•˜๋Š” ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋กœ ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ!

  • ๋ณต์ˆ˜์˜ ์—ด๋กœ ๊ธฐ๋ณธํ‚ค ๊ตฌ์„ฑํ•˜๊ธฐ: ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ์—๋Š” ์ด๋ฅผ ๊ตฌ์„ฑํ•  ์—ด ์ง€์ •์ด ํ•„์š”ํ•จ. ์ด๋•Œ ์ง€์ •๋œ ์—ด์€ NOT NULL ์ œ์•ฝ์ด ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•จ. ์ฆ‰, ๊ธฐ๋ณธํ‚ค๋กœ๋Š” NULL๊ฐ’์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š์Œ.
  • ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์—ด์€ ๋ณต์ˆ˜๋ผ๋„ ์ƒ๊ด€์ด ์—†์Œ. ๋ณต์ˆ˜์˜ ์—ด์„ ๊ธฐ๋ณธํ‚ค๋กœ ์ง€์ •ํ–ˆ์„ ๊ฒฝ์šฐ, ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ์—ด์„ ์‚ฌ์šฉํ•ด ์ค‘๋ณตํ•˜๋Š” ๊ฐ’์ด ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋ฅผ ๊ฒ€์‚ฌํ•จ.

๐Ÿ’š 28๊ฐ• ์ธ๋ฑ์Šค ๊ตฌ์กฐ

  • '์ƒ‰์ธ'์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด ์ค‘ ํ•˜๋‚˜.
  • ํ…Œ์ด๋ธ”์—๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ!
  1. ์ธ๋ฑ์Šค
  • ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”์— ๋ถ™์—ฌ์ง„ ์ƒ‰์ธ์ด๋ผ ํ•  ์ˆ˜ ์žˆ์Œ. ์ธ๋ฑ์Šค์˜ ์—ญํ• ์€ ๊ฒ€์ƒ‰์†๋„์˜ ํ–ฅ์ƒ.
    -> ์—ฌ๊ธฐ์„œ '๊ฒ€์ƒ‰'์ด๋ž€ select ๋ช…๋ น์— where ๊ตฌ๋กœ ์กฐ๊ฑด์„ ์ง€์ •ํ•˜๊ณ  ๊ทธ์— ์ผ์น˜ํ•˜๋Š” ํ–‰์„ ์ฐพ๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ๋งํ•จ.
    -> ์ด ์ฑ…์˜ ๋ชฉ์ฐจ๋‚˜ ์ƒ‰์ธ ์—ญ์‹œ ์ธ๋ฑ์Šค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์ข€๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ.
    -> ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ ๋…๋ฆฝ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋กœ ์ž‘์„ฑ๋จ. ํ•˜์ง€๋งŒ ์ธ๋ฑ์Šค๋งŒ์œผ๋กœ๋Š” ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๊ฐ€ ์—†์Œ. ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”์— ์˜์กดํ•˜๋Š” ๊ฐ์ฒด๋ผ ํ•  ์ˆ˜ ์žˆ์Œ. ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋ฉด ์ธ๋ฑ์Šค๋„ ๊ฐ™์ด ์‚ญ์ œ๋จ.
  1. ๊ฒ€์ƒ‰์— ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ธ๋ฑ์Šค์— ์“ฐ์ด๋Š” ๋Œ€ํ‘œ์ ์ธ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ๋Š” '์ด์ง„ ํŠธ๋ฆฌ(binary tree)'๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ทธ ๋‹ค์Œ์œผ๋กœ 'ํ•ด์‹œ'๊ฐ€ ์žˆ์Œ!

  • ํ’€ ํ…Œ์ด๋ธ” ์Šค์บ”(full table scan)
    ์ธ๋ฑ์Šค๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ํ…Œ์ด๋ธ”์„ ๊ฒ€์ƒ‰ํ•  ๋•Œ๋Š” ํ’€ ํ…Œ์ด๋ธ” ์Šค์บ”์ด๋ผ ๋ถˆ๋ฆฌ๋Š” ๊ฒ€์ƒ‰๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉ. ํ–‰์ด 1,000๊ฑด ์žˆ๋‹ค๋ฉด ์ตœ๋Œ€ 1,000๋ฒˆ ๊ฐ’์„ ๋น„๊ตํ•จ

  • ์ด์ง„ ํƒ์ƒ‰(binary search)
    ์ด์ง„ ํƒ์ƒ‰์€ ์ฐจ๋ก€๋กœ ๋‚˜์—ด๋œ ์ง‘ํ•ฉ์— ๋Œ€ํ•ด ์œ ํšจํ•œ ๊ฒ€์ƒ‰ ๋ฐฉ๋ฒ•. ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์กฐ์‚ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  ์ง‘ํ•ฉ์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ์กฐ์‚ฌํ•˜๋Š” ๊ฒ€์ƒ‰๋ฐฉ๋ฒ•.

  • ์ด์ง„ ํŠธ๋ฆฌ(binary tree)
    ์ด์ง„ ํƒ์ƒ‰์€ ๊ณ ์†์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ด์ง€๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฏธ๋ฆฌ ์ •๋ ฌ๋˜์–ด์žˆ์–ด์•ผ ํ•จ.

  1. ์œ ์ผ์„ฑ
    ์ด์ง„ ํŠธ๋ฆฌ์˜ ๊ตฌ์กฐ๋ฅผ ์‚ดํ”ผ๋‹ค ๋ณด๋ฉด, ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ๋…ธ๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ๋•Œ์˜ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ์ƒ๊ธธ ์ˆ˜๋„ ์žˆ์Œ. ์‚ฌ์‹ค ์ด์ง„ ํŠธ๋ฆฌ์—์„œ๋Š” ์ง‘ํ•ฉ ๋‚ด ์ค‘๋ณตํ•˜๋Š” ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ. ์ฆ‰, ๋…ธ๋“œ์˜ ๊ฐ€์ง€๋Š” ํฐ ์ชฝ๊ณผ ์ž‘์€ ์ชฝ์˜ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰˜๋ฉฐ, ๊ฐ™์€ ๊ฐ’์„ ํ—ˆ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” '๊ฐ™์€'์ด๋ผ๋Š” ์ œ 3์˜ ๊ฐ€์ง€๋ฅผ ๊ฐ€์งˆ ํ•„์š”๊ฐ€ ์žˆ์Œ.
    -> ์ด์ง„ ํŠธ๋ฆฌ์—๋Š” ์ค‘๋ณตํ•˜๋Š” ๊ฐ’์„ ๋“ฑ๋กํ•  ์ˆ˜ ์—†์Œ!

๐Ÿ’š 29๊ฐ• ์ธ๋ฑ์Šค ์ž‘์„ฑ๊ณผ ์‚ญ์ œ

  • ์‹ค์ œ๋กœ ํ…Œ์ด๋ธ”์— ์ธ๋ฑ์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์žฅ!
๐Ÿ’š create index
๐Ÿ’š drop index
  • ์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด์˜ ํ•˜๋‚˜๋กœ DDL์„ ์‚ฌ์šฉํ•ด์„œ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•จ.
  • ํ‘œ์ค€ SQL์—๋Š” create index ๋ช…๋ น์€ ์—†์Œ.
  1. ์ธ๋ฑ์Šค ์ž‘์„ฑ
  • ์ธ๋ฑ์Šค๋Š” create index ๋ช…๋ น์œผ๋กœ ๋งŒ๋“ ๋‹น! ์ธ๋ฑ์Šค์— ์ด๋ฆ„์„ ๋ถ™์—ฌ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๊ฐ€ ๋ ์ง€ ํ…Œ์ด๋ธ”์˜ ์—ด์ฒ˜๋Ÿผ ์ทจ๊ธ‰๋ ์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ œํ’ˆ์— ๋”ฐ๋ผ ๋‹ค๋ฆ„! SQL Server๋‚˜ MySQL์—์„œ ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ” ๋‚ด ๊ฐ์ฒด๊ฐ€ ๋จ. ๊ทธ๋ž˜์„œ ํ…Œ์ด๋ธ” ๋‚ด ์ด๋ฆ„์ด ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ์ง€์ •ํ•ด ๊ด€๋ฆฌ!

  • ์ธ๋ฑ์Šค๋ฅผ ์ž‘์„ฑํ•  ๋•Œ๋Š” ํ•ด๋‹น ์ธ๋ฑ์Šค๊ฐ€ ์–ด๋Š ํ…Œ์ด๋ธ”์˜ ์–ด๋Š ์—ด์— ๊ด€ํ•œ ๊ฒƒ์ธ์ง€ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ. ์—ด์€ ๋ณต์ˆ˜๋กœ๋„ ์ง€์ •๊ฐ€๋Šฅ.

๐Ÿ’š create index ์ธ๋ฑ์Šค๋ช… on ํ…Œ์ด๋ธ”๋ช… (์—ด๋ช…1, ์—ด๋ช…2, ...) ๐Ÿ’š

  1. ์ธ๋ฑ์Šค ์‚ญ์ œ
  • ์ธ๋ฑ์Šค๋Š” drop index ๋ช…๋ น์œผ๋กœ ์‚ญ์ œํ•จ. drop ํ•  ๋•Œ๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ๋™์ผํ•˜๊ฒŒ ์ธ๋ฑ์Šค ์ด๋ฆ„๋งŒ ์ง€์ •ํ•˜๋ฉด ๋จ. ๋‹ค๋งŒ ํ…Œ์ด๋ธ” ๋‚ด ๊ฐ์ฒด๋กœ์„œ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํ…Œ์ด๋ธ” ์ด๋ฆ„๋„ ์ง€์ •ํ•จ.
๐Ÿ’š drop index ์ธ๋ฑ์Šค๋ช… on ํ…Œ์ด๋ธ”๋ช… ๐Ÿ’š


-> ์œ„์—์„œ ๋งŒ๋“ค์–ด๋†“์€๊ฑฐ ์ง€์›Œ์คŒ!

  • ์ธ๋ฑ์Šค๋Š” ํ…Œ์ด๋ธ”์— ์˜์กดํ•˜๋Š” ๊ฐ์ฒด์ž„. drop table๋กœ ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋ฉด ํ…Œ์ด๋ธ”์— ์ž‘์„ฑ๋œ ์ธ๋ฑ์Šค๋„ ์ž๋™์œผ๋กœ ์‚ญ์ œ. ์ธ๋ฑ์Šค๋งŒ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” drop index ์‚ฌ์šฉ.

  • ์ธ๋ฑ์Šค๋ฅผ ์ž‘์„ฑํ•ด๋‘๋ฉด ๊ฒ€์ƒ‰์ด ๋นจ๋ผ์ง. ์ž‘์„ฑํ•œ ์ธ๋ฑ์Šค์˜ ์—ด์„ where ๊ตฌ๋กœ ์กฐ๊ฑด์„ ์ง€์ •ํ•ด select ๋ช…๋ น์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ํ–ฅ์ƒ.

๐Ÿ’š create index isample65 On sample634(a); ๐Ÿ’š


-> sample634 ํ…Œ์ด๋ธ”์— isample65๋ผ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•จ.
-> where ๊ตฌ์— a ์—ด์— ๋Œ€ํ•œ ์กฐ๊ฑด์‹์„ ์ง€์ •ํ•œ ๊ฒฝ์šฐ, select ๋ช…๋ น์€ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ.

๐Ÿ’š select *from sample634 where a = 'a'; ๐Ÿ’š

-> ๊ทธ์น˜๋งŒ where ๊ตฌ์˜ ์กฐ๊ฑด์‹์— a์—ด์ด ์ „ํ˜€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด select ๋ช…๋ น์€ isample62๋ผ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ.

  1. EXPLAIN
  • ์ธ๋ฑ์Šค ์ž‘์„ฑ์„ ํ†ตํ•ด ์ฟผ๋ฆฌ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Œ ! ์‹ค์ œ๋กœ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ๊ฒ€์ƒ‰ํ•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด EXPLAIN ๋ช…๋ น์„ ์‚ฌ์šฉํ•จ!
๐Ÿ’š EXPLAIN SQL ๋ช…๋ น ๐Ÿ’š
  • EXPLAIN์— ๋’ค์ด์–ด ํ™•์ธํ•˜๊ณ  ์‹ถ์€ select ๋ช…๋ น ๋“ฑ์˜ SQL ๋ช…๋ น์„ ์ง€์ •ํ•˜๋ฉด ๋จ! ๋‹ค๋งŒ ์ด SQL ๋ช…๋ น์€ ์‹ค์ œ๋กœ๋Š” ์‹คํ–‰๋˜์ง€ ์•Š์Œ ใ… ใ…  ์–ด๋–ค ์ƒํƒœ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์„ค๋ช…ํ•ด์ค„ ๋ฟ!

  • EXPLAIN์€ ํ‘œ์ค€ SQL์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š”, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ œํ’ˆ ์˜์กดํ˜• ๋ช…๋ น!

๐Ÿ’š EXPLAIN select * from sample634 where a = 'a'; ๐Ÿ’š

  • sample634์˜ a์—ด์—๋Š” isample65๋ผ๋Š” index๊ฐ€ ์ž‘์„ฑ๋˜์–ด์žˆ์Œ. EXPLAIN์˜ ๋’ค๋ฅผ ์ž‡๋Š” select ๋ช…๋ น์€ a ์—ด์˜ ๊ฐ’์„ ์ฐธ์กฐํ•ด ๊ฒ€์ƒ‰ํ•˜๋ฏ€๋กœ isample65์„ ์‚ฌ์šฉํ•ด ๊ฒ€์ƒ‰ํ•จ.

  • ๊ทธ๋Ÿผ where ์กฐ๊ฑด์„ ๋ฐ”๊พธ๋ฉด ์–ด๋–ป๊ฒŒ ๋ณ€ํ• ๊นŒ?

EXPLAIN select * from sample634 where no > 10;

-> a ์—ด์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์กฐ๊ฑด์„ ๋ณ€๊ฒฝํ•˜๋ฉด ์ธ๋ฑ์Šค ์‚ฌ์šฉ NONO!

  1. ์ตœ์ ํ™”
  • ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ์—์„œ select ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ธฐ์— ์•ž์„œ ์‹คํ–‰๊ณ„ํš์„ ์„ธ์›€. ์‹คํ–‰๊ณ„ํš์—์„œ๋Š” '์ธ๋ฑ์Šค๊ฐ€ ์ง€์ •๋œ ์—ด์ด where ์กฐ๊ฑด์œผ๋กœ ์ง€์ •๋˜์–ด ์žˆ์œผ๋‹ˆ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ž'์™€ ๊ฐ™์€ ์ฒ˜๋ฆฌ๊ฐ€ ์ด๋ฃจ์–ด์ง. EXPLAIN ๋ช…๋ น์€ ์ด ์‹คํ–‰๊ณ„ํš์„ ํ™•์ธํ•˜๋Š” ๋ช…๋ น.

  • ์‹คํ–‰๊ณ„ํš์—์„œ๋Š” ์ธ๋ฑ์Šค์˜ ์œ ๋ฌด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•ด์„œ๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด๋ถ€์˜ ์ตœ์ ํ™” ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ํŒ๋‹จ.

๐Ÿ’š 30๊ฐ• ๋ทฐ ์ž‘์„ฑ๊ณผ ์‚ญ์ œ

  • ๋ทฐ๋Š” ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๋ถ€๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด ์ค‘ ํ•˜๋‚˜!
๐Ÿ’š create view ๋ทฐ๋ช… as select๋ช…๋ น
๐Ÿ’š drop view ๋ทฐ๋ช…
  • from ๊ตฌ์— ๊ธฐ์ˆ ๋œ ์„œ๋ธŒ์ฟผ๋ฆฌ์— ์ด๋ฆ„์„ ๋ถ™์ด๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒดํ™”ํ•˜์—ฌ ์“ฐ๊ธฐ ์‰ฝ๊ฒŒ ํ•œ ๊ฒƒ์„ ๋ทฐ๋ผ๊ณ  ํ•จ!
  1. ๋ทฐ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ž€ ํ…Œ์ด๋ธ”์ด๋‚˜ ์ธ๋ฑ์Šค ๋“ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์— ์ •์˜ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋งํ•จ! ๋ทฐ๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด ์ค‘ ํ•˜๋‚˜! <-> ๋ฐ˜๋ฉด, select ๋ช…๋ น์€ ๊ฐ์ฒด๊ฐ€ ์•„๋‹˜. select ๋ช…๋ น์— ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์—†๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋“ฑ๋ก๋˜์ง€๋„ ์•Š๊ธฐ ๋–„๋ฌธ.
  • ์ด์ฒ˜๋Ÿผ ๋ณธ๋ž˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋กœ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋Š” select ๋ช…๋ น์„ ๊ฐ์ฒด๋กœ์„œ ์ด๋ฆ„์„ ๋ถ™์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ฒƒ์ด ๋ทฐ.
  • select ๋ช…๋ น์€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐ๊ด๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜. ๋”ฐ๋ผ์„œ ๋ทฐ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ๊ทธ์— ์ •์˜๋œ select ๋ช…๋ น์˜ ์‹คํ–‰๊ฒฐ๊ณผ๋ฅผ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ!

-> ๋ทฐ๋Š” select ๋ช…๋ น์„ ๊ธฐ๋กํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด!

  • from ๊ตฌ์—๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Œ!
๐Ÿ’š select * from (select * from sample634) sq; ๐Ÿ’š


-> ์š”๋Ÿฐ์‹์œผ๋กœ!

  • ์•ž์˜ ์˜ˆ์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ ๋ถ€๋ถ„์„ '๋ทฐ ๊ฐ์ฒด'๋กœ ๋งŒ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ select ๋ช…๋ น์ด ๋จ.
๐Ÿ’š select * from sample_view_67; ๐Ÿ’š
  • ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ณต์žกํ•œ select ๋ช…๋ น์„ ๋ทฐ๋กœ ๋งŒ๋“ค์–ด ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ!

  • ๊ฐ€์ƒ ํ…Œ์ด๋ธ”: ๋ทฐ๋Š” ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ์ฐŒ๋งŒ, '์‹ค์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค'๋Š” ์˜๋ฏธ๋กœ '๊ฐ€์ƒ ํ…Œ์ด๋ธ”'์ด๋ผ ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•จ.

  • select ๋ช…๋ น์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋Š” ๋ทฐ๋Š” ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ์ง€์šธ ์ˆ˜ ์žˆ๋Š” ์ €์žฅ๊ณต๊ฐ„์„ ๊ฐ€์ง€์ง€ ์•Š์Œ. ์ด ๋•Œ๋ฌธ์— ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ ๋Š” ํ•ด๋„ 'select ๋ช…๋ น์—์„œ๋งŒ ์‚ฌ์šฉ'ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•จ.

  1. ๋ทฐ ์ž‘์„ฑ๊ณผ ์‚ญ์ œ
  • ๋ทฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— DDL๋กœ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œ.

  • ์ž‘์„ฑ: create view, ์‚ญ์ œ: drop view.

  • ๋ทฐ ์ž‘์„ฑ

๐Ÿ’š create view ๋ทฐ๋ช… as select ๋ช…๋ น ๐Ÿ’š # as ์ƒ๋žต ๋ถˆ๊ฐ€๋Šฅ!

  • create view๋กœ ๋ทฐ๋ฅผ ์ž‘์„ฑํ•œ ๋’ค select ๋ช…๋ น์˜ from ๊ตฌ์— ์ง€์ •ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. ๋ทฐ๋Š” ํ•„์š”์— ๋”ฐ๋ผ ์—ด์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ์—๋Š” ์ด๋ฆ„ ๋’ค์— ๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด ์—ด์„ ๋‚˜์—ดํ•จ.
๐Ÿ’š create view ๋ทฐ๋ช…(์—ด๋ช…1, ์—ด๋ช…2, ...) as select ๋ช…๋ น ๐Ÿ’š
  • ๋ทฐ์˜ ์—ด ์ง€์ •์„ ์ƒ๋žตํ•œ ๊ฒฝ์šฐ์—๋Š” select ๋ช…๋ น์˜ select ๊ตฌ์—์„œ ์ง€์ •ํ•˜๋Š” ์—ด ์ •๋ณด๊ฐ€ ์ˆ˜์ง‘๋˜์–ด ์ž๋™์ ์œผ๋กœ ๋ทฐ์˜ ์—ด๋กœ ์ง€์ •๋จ! ๋ฐ˜๋Œ€๋กœ ์—ด์„ ์ง€์ •ํ•œ ๊ฒฝ์šฐ์—๋Š” select ๋ช…๋ น์˜ select ๊ตฌ์— ์ง€์ •ํ•œ ์—ด๋ณด๋‹ค ์šฐ์„ ๋จ.

  • ๋ทฐ ์‚ญ์ œ

๐Ÿ’š drop view sample_view_67; ๐Ÿ’š

  1. ๋ทฐ์˜ ์•ฝ์ 
  • ๋ทฐ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋กœ์„œ ์ €์žฅ์žฅ์น˜์— ์ €์žฅ๋จ. but ํ…Œ์ด๋ธ”๊ณผ ๋‹ฌ๋ฆฌ ๋Œ€๋Ÿ‰์˜ ์ €์žฅ๊ณต๊ฐ„์„ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š์Œ! ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์€ select ๋ช…๋ น๋ฟ์ด๊ธฐ ๋•Œ๋ฌธ.

1) ๋จธํ‹ฐ๋ฆฌ์–ผ๋ผ์ด์ฆˆ๋“œ ๋ทฐ

  • ๋ทฐ์˜ ๊ทผ์›์ด ๋˜๋Š” ํ…Œ์ด๋ธ”์— ๋ณด๊ด€ํ•˜๋Š” ๋ฐ์ดํ„ฐ์–‘์ด ๋งŽ์€ ๊ฒฝ์šฐ, ์ง‘๊ณ„์ฒ˜๋ฆฌ๋ฅผ ํ•  ๋•Œ๋„ ๋ทฐ๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋งŽ์ด ๋–จ์–ด์ง. -> ์ด๋ฅผ ์œ„ํ•ด ๋จธํ‹ฐ๋ฆฌ์–ผ๋ผ์ด์ฆˆ๋“œ ๋ทฐ๋ฅผ ์‚ฌ์šฉ!
  • ๋จธํ‹ฐ๋ฆฌ์–ผ๋ผ์ด์ฆˆ๋“œ ๋ทฐ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ์ €์žฅ์žฅ์น˜์— ์ €์žฅํ•ด๋‘๊ณ  ์‚ฌ์šฉ! 1. ๋ทฐ๊ฐ€ ์ฒ˜์Œ ์ฐธ์กฐ๋˜์—ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ 2. ์ดํ›„ ๋‹ค์‹œ ์ฐธ์กฐํ•  ๋•Œ ์ด์ „์— ์ €์žฅํ•ด ๋‘์—ˆ๋˜ ๋ฐ์ดํ„ฐ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ.
  • MySQL์—์„œ๋Š” ๋จธํ‹ฐ๋ฆฌ์–ผ๋ผ์ด์ฆˆ๋“œ ๋ทฐ๋ฅผ ์‚ฌ์šฉ๋ถˆ๊ฐ€.

2) ํ•จ์ˆ˜ํ…Œ์ด๋ธ”

  • ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฝ์šฐ ๋ทฐ์˜ select ๋ช…๋ น์œผ๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€. -> ํ•จ์ˆ˜ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉ!
  • ํ•จ์ˆ˜ ํ…Œ์ด๋ธ”์€ ํ…Œ์ด๋ธ”์„ ๊ฒฐ๊ด๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” ์‚ฌ์šฉ์ž์ •์˜ ํ•จ์ˆ˜! ํ•จ์ˆ˜์—๋Š” ์ธ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ˆ˜์˜ ๊ฐ’์— ๋”ฐ๋ผ where ์กฐ๊ฑด์„ ๋ถ™์—ฌ ๊ฒฐ๊ด๊ฐ’์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Œ ! ๊ทธ์— ๋”ฐ๋ผ ์ƒ๊ด€ ์„œ๋ธŒ์ฟผ๋ฆฌ์ฒ˜๋Ÿผ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์Œ!

๐Ÿฆ– 6์žฅ ์™„๋ฃŒ...! ์–ด์ง€๋Ÿฌ์›Œ... ๊ทธ๋ ‡์ง€๋งŒ ํ• ์ˆ˜์ด๋”ฐ! ๐Ÿฆ–

profile
๊ฐœ๋ฐœ ๊ธฐ๋ก

0๊ฐœ์˜ ๋Œ“๊ธ€