TIL

[TIL-Codesquad] Docker, MySQL, SQL๊ณผ SQL ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

๋น„๋น„ bibi 2021. 1. 28. 17:46
728x90
๋ฐ˜์‘ํ˜•

[210128]

์˜ค๋Š˜์€ docker, MySQL์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ , ์„ค์น˜ํ•˜๊ณ , SQL ์–ธ์–ด์— ๋Œ€ํ•ด ์กฐ๊ธˆ ์ตํžˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค.

์„ค์น˜๋ž‘ ์ดˆ๊ธฐ ์„ค์ •, ๊ณต๋ถ€ ์ข€ ํ•˜๋‹ˆ ํ•˜๋ฃจ๊ฐ€ ๋‹ค ๊ฐ”๋‹ค๐Ÿ˜… ํ”„๋กœ๊ทธ๋žจ ์งœ๋Š” ๊ฑด ๋‚ด์ผ ์•„์นจ๋ถ€ํ„ฐ ์—ด์‹ฌํžˆ ํ•ด์•ผ๊ฒ ๋‹ค.

๋ฏธ์…˜ ๋ชฉํ‘œ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๊ธฐ์ดˆ SQL๋ฌธ๋ฒ• ์ตํžˆ๊ธฐ
๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ณธ๊ฐœ๋…, ๋™์ž‘ ์ดํ•ดํ•˜๊ธฐ (MySQL ๊ถŒ์žฅ)


TIL

๋„์ปค๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

๋ฐฐ๊ฒฝ

์„œ๋ฒ„ ๊ด€๋ฆฌ๋ฅผ ๋œ ๋ณต์žกํ•˜๊ณ  ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•จ.
์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„ ์ปดํ“จํ„ฐ์˜ OS, ํ”„๋กœ๊ทธ๋žจ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ์„ ์„ค์น˜/์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ์—๋Ÿฌ, ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. OS/ํ”„๋กœ๊ทธ๋žจ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋ฉฐ, ์„œ๋ฒ„ ํ™˜๊ฒฝ๋„ ์‹œ๊ฐ„์ด ํ๋ฅด๋ฉด์„œ ์กฐ๊ธˆ์”ฉ ๋ฐ”๊ฟ”์ฃผ์–ด์•ผ ํ•˜๋ฏ€๋กœ ์„œ๋ฒ„๋ฅผ ๋‹ค๋ฃจ๋Š” ์ž‘์—…์€ ๋ถˆ๊ฐ€ํ”ผํ•˜๋ฉด์„œ๋„ ๋ฆฌ์Šคํฌ๊ฐ€ ํฐ ์ž‘์—…์ด๋‹ค.

๋„์ปคdocker๋ž€?

๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ์†Œ์Šค ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ์ด๋‹ค.

์ปจํ…Œ์ด๋„ˆ : ๊ทœ๊ฒฉํ™”๋˜์–ด ์žˆ๋‹ค. ์•ˆ์— ๋‹ค์–‘ํ•œ ๊ฒƒ๋“ค์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๋Ÿฌ ์šด์†ก์ˆ˜๋‹จ์œผ๋กœ ์‰ฝ๊ฒŒ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋‹ค
โ†’ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ, ์‹คํ–‰ํ™˜๊ฒฝ์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ถ”์ƒํ™”ํ•˜๊ณ , ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ด ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฐฐํฌ ๋ฐ ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ํ•ด ์ค€๋‹ค.
์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ๋„ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ๊ณ , ์–ด๋–ค ์ปดํ“จํ„ฐ/ํ™˜๊ฒฝ์—์„œ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค.

โ†’ ๋„์ปค๋ฅผ ๊ฐœ๋ฐœํ™˜๊ฒฝ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ,ํ…Œ์ŠคํŠธ,์šด์˜์„ ๋™์ผํ•œ ํ™˜๊ฒฝ์—์„œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

์ปจํ…Œ์ด๋„ˆ container

์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฒฉ๋ฆฌ๋œ ๊ณต๊ฐ„์—์„œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๊ธฐ์ˆ  (๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์˜ ํ•˜๋‚˜).

์ปจํ…Œ์ด๋„ˆ๋Š” ํ”„๋กœ์„ธ์Šค์ด๊ธฐ ๋•Œ๋ฌธ์—, ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ปจํ…Œ์ด๋„ˆ๋Š” ์ข…๋ฃŒ๋จ.

  1. ๊ธฐ์กด์˜ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์€ ์ฃผ๋กœ OS๋ฅผ ๊ฐ€์ƒํ™”ํ–ˆ๋‹ค(VirtualBox ๊ฐ™์€ ๊ฐ€์ƒ๋จธ์‹ ).
    ์‚ฌ์šฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ๋ฌด๊ฒ๊ณ  ๋Š๋ ค์„œ ์‹ค์ œ ์„œ๋ฒ„ ์šด์˜์—๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์—ˆ์Œ
  2. ์ดํ›„ ์ „์ฒด OS๋ฅผ ๊ฐ€์ƒํ™”ํ•˜๋Š” ๋Œ€์‹  CPU ๊ฐ€์ƒํ™”, ๋ฐ˜๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•œ ๊ธฐ์ˆ ๋“ค์ด ๋“ฑ์žฅ (KVM, Xen..) - ํด๋ผ์šฐ๋“œ์„œ๋น„์Šค์˜ ๊ฐ€์ƒ์ปดํ“จํŒ… ๊ธฐ์ˆ ์˜ ๊ธฐ๋ฐ˜์ด ๋จ.
  3. ๊ทธ๋ž˜๋„ ์„ฑ๋Šฅ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— OS๋ฅผ ์ถ”๊ฐ€์„ค์น˜ํ•˜๋Š” ๊ฐ€์ƒํ™” ๋ฐฉ์‹์ด ์•„๋‹Œ, ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด ๋“ฑ์žฅํ•จ. ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๋ฉฐ, CPU๋‚˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋”ฑ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ์ถ”๊ฐ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹.
    ํ•˜๋‚˜์˜ ์„œ๋ฒ„์— ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ด๋„, ์„œ๋กœ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค(๊ฐ€๋ฒผ์šด VM์„ ์‚ฌ์šฉํ•˜๋Š” ๋Š๋‚Œ).

์ด๋ฏธ์ง€ image

๋„์ปค์—์„œ ์ปจํ…Œ์ด๋„ˆ์™€ ํ•จ๊ป˜ ์ค‘์š”ํ•œ ๊ฐœ๋….
์ด๋ฏธ์ง€๋Š” ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ชจ๋“  ํŒŒ์ผ, ์„ค์ •๊ฐ’ ๋“ฑ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ๋Œ€์ƒ.

  • ์ด๋ฏธ์ง€ : ์ƒํƒœ๊ฐ’์„ ๊ฐ€์ง€์ง€ ์•Š๊ณ , ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค(immutable)

  • ์ปจํ…Œ์ด๋„ˆ : ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•œ ์ƒํƒœ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ. ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ๋ณ€ํ•˜๋Š” ๊ฐ’์ด ์ปจํ…Œ์ด๋„ˆ์— ์ €์žฅ๋จ.

๊ฐ™์€ ์ด๋ฏธ์ง€์—์„œ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ.
์ปจํ…Œ์ด๋„ˆ์˜ ์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜์–ด๋„ ์ด๋ฏธ์ง€๋Š” ๊ทธ๋Œ€๋กœ ๋‚จ์•„ ์žˆ์Œ.

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋ฏธ์ง€๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค.

โ†’ ์ƒˆ๋กœ์šด ์„œ๋ฒ„ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์ด ๊ฐ„์†Œํ™”๋จ.
(๋ฏธ๋ฆฌ ๋งŒ๋“  ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋ฐ›๊ณ , ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑ๋งŒ ํ•˜๋ฉด ๋)
โ†’ ๋Œ€๊ทœ๋ชจ์˜ ์„œ๋ฒ„ ๊ตฌ์ถ•๋„ ์‰ฌ์›Œ์ง.
(ํ•œ ์„œ๋ฒ„์— ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„ค์น˜ ๊ฐ€๋Šฅ)

๋„์ปค ์ด๋ฏธ์ง€๋Š” Docker hub์— ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜ Docker Registry ์ €์žฅ์†Œ๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ˆ„๊ตฌ๋‚˜ ์ด๋ฏธ์ง€๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋‹ค.


Docker ์„ค์น˜ํ•˜๊ณ  ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ํ•˜๊ธฐ

์„ค์น˜

์œ„ ๊ธ€์„ ๋ณด๋ฉด์„œ ์ฐจ๊ทผ์ฐจ๊ทผ ๋”ฐ๋ผํ•จ.
๋‚˜๋Š” ์œˆ๋„์šฐ๋ผ์„œ Docker for windows๋ฅผ ์„ค์น˜ํ–ˆ๋‹ค.

๋„์ปค๋Š” ์‹ค์ œ๋กœ๋Š” ๊ฐ€์ƒ๋จธ์‹ ์— ์„ค์น˜๋˜๋‚˜, ๊ทธ๋Ÿฐ ๋Š๋‚Œ์ด ์ „ํ˜€ ๋“ค์ง€ ์•Š๊ฒŒ ์„ค๊ณ„๋˜์—ˆ๋‹ค.

  • docker version : ์„ค์น˜๋œ ๋„์ปค์˜ ๋ฒ„์ „์„ ์ถœ๋ ฅํ•จ.

์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰

  • docker run [์˜ต์…˜๋“ค] ๋ผ๋Š” ๊ธฐ๋ณธ ๋ช…๋ น์–ด๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

Docker๋กœ MySQL ์„ค์น˜, ์‹คํ–‰

  1. Docker MySQL ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ

    docker pull mysql : ๋„์ปค ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ.
    docker pull mysql:8.0.17 ์ฒ˜๋Ÿผ ๋ฒ„์ „์„ ์ง€์ •ํ•ด ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
    docker images : ๋„์ปค ์ด๋ฏธ์ง€ ํ™•์ธ.

  2. Docker MySQL ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ

    docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=๋น„๋ฐ€๋ฒˆํ˜ธ --name ์ด๋ฆ„_mysql -v ์ €์žฅ์†Œ ๊ฒฝ๋กœ mysql:๋ฒ„์ „ --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

  3. Docker ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก ์ถœ๋ ฅ

    docker ps -a

  4. MySQL ์ปจํ…Œ์ด๋„ˆ bash์‰˜ ์ ‘์†

    docker exec -it ์ด๋ฆ„_mysql bash : docker ์ปจํ…Œ์ด๋„ˆ์— ์ ‘๊ทผํ•œ ๋‹ค์Œ MySQL์— ๋กœ๊ทธ์ธํ•จ.

  5. MySQL ์„œ๋ฒ„ ์ ‘์†

    mysql -u root -p : root์‚ฌ์šฉ์ž๋กœ mysql์„œ๋ฒ„ ์ ‘์†. (์ƒ์„ฑํ•  ๋•Œ ์ง€์ •ํ•œ ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ)


SQL ๋ฌธ๋ฒ•๊ณผ DDL, DML, DCL, DQL, TCL

SQL

Structed Query Language ๊ตฌ์กฐ์  ์งˆ์˜์–ด

SQL์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ANSI ํ‘œ์ค€ ์–ธ์–ด์ด๋‹ค.

  • ํŠน์ง•
    • ์—ฌ๋Ÿฌ ์ค„ ์‹คํ–‰, ์ข…๊ฒฐ๋ฌธ์ž(;) ํ•„์š”
    • ๋ฒ„ํผ์— ๋งˆ์ง€๋ง‰ ๋ช…๋ น๋ฌธ ์ €์žฅ
    • ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ ์—†์Œ. ๋‹จ, ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•  ๋•Œ๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•จ.
  • SQL ๋ช…๋ น์–ด๋Š” DDL, DML, DCL, DQL, TCL๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

DDL

Data Definition Language ๋ฐ์ดํ„ฐ ์ •์˜์–ด

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด.

  • ๋ช…๋ น์–ด : CREATE(์ถ”๊ฐ€), DROP(์‚ญ์ œ), ALTER(ํŠน์„ฑ ๋ณ€๊ฒฝ), RENAME(์ด๋ฆ„ ๋ณ€๊ฒฝ), TRUNCATE(๋ฐ์ดํ„ฐ ์ œ๊ฑฐ)

DML

Data Manipulation Language ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ (์ถ”๊ฐ€/์‚ญ์ œ/์ˆ˜์ •) ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด.

  • ๋ช…๋ น์–ด : INSERT(์ถ”๊ฐ€), DELETE(์‚ญ์ œ), UPDATE(์ˆ˜์ •)

DCL

Data Control Language ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์ ‘๊ทผ๊ถŒํ•œ ๋ถ€์—ฌ ๋“ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด.

  • ๋ช…๋ น์–ด : GRANT(๊ถŒํ•œ ๋ถ€์—ฌ), REVOKE(๊ถŒํ•œ ํšŒ์ˆ˜)

DQL

Data Query Language ๋ฐ์ดํ„ฐ ์งˆ์˜์–ด

๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰, ์กฐํšŒํ•˜๋Š” ๋ช…๋ น์–ด

  • ๋ช…๋ น์–ด : SELECT

TCL

Transaction Control Language ํŠธ๋žœ์ ์…˜ ์ œ์–ด์–ด

๋…ผ๋ฆฌ์  ์ž‘์—…๋‹จ์œ„(DML)์˜ ๋ฌถ์Œ . ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋กœ ๋œ ์ „์ฒด ์ž‘์—…์„ ํ•œ ๋ฌถ์Œ์œผ๋กœ ๋ฌถ์€ ๊ฒƒ.

  • ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ์ƒํ™ฉ์— ๋Œ€ํ•œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • ๋ช…๋ น์–ด : COMMIT, ROLLBACK, SAVEPOINT

SQL ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์ •๋ฆฌ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ

CREATE DATABASE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…;
: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š”๊ตฌ๋ฌธ.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒ

USE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…;
: ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ ํƒํ•˜๋Š” ๊ตฌ๋ฌธ.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— TABLE ์ƒ์„ฑ

USE๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— TABLE์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

CREATE TABLE ํ…Œ์ด๋ธ”๋ช… (
    ํ•„๋“œ๋ช…1 ํƒ€์ž…1 ์ œ์•ฝ์กฐ๊ฑด1,
    ํ•„๋“œ๋ช…2 ํƒ€์ž…2 ์ œ์•ฝ์กฐ๊ฑด2,
    ...
);
CREATE TABLE PLAYER (
    ID INT PRIMARY KEY,
    NAME VARCHAR(30) NOT NULL,
    POSITION VARCHAR(20),
    COUNTRY VARCHAR(20) DEFAULT "Korea",
    AGE INT,
    GOAL INT DEFAULT 0,
    ASSIST INT DEFAULT 0,
    TEAM INT NOT NULL,
    FOREIGN KEY (TEAM)
    REFERENCES TEAM (ID)
);

Constraint ์ œ์•ฝ์กฐ๊ฑด

: ๊ฐ ํ•„๋“œ์— ์ œ์•ฝ ์กฐ๊ฑด์„ ๊ฑธ ์ˆ˜ ์žˆ๋‹ค.

  • NOT NULL : ํ•„์ˆ˜ ํ•„๋“œ์— ์ง€์ •ํ•จ. ํ•ด๋‹น ํ•ญ๋ชฉ์ด ๋น„์–ด์žˆ์œผ๋ฉด ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ๋ถˆ๊ฐ€๋Šฅ
  • UNIQUE : ํ…Œ์ด๋ธ” ๋‚ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์™€ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์œ ์ผํ•œ ํ•„๋“œ์— ์ง€์ •ํ•จ (์˜ˆ - ID)
  • PRIMARY KEY : NOT NULL, UNIQUE ์˜ ํŠน์„ฑ์„ ๋ชจ๋‘ ๊ฐ€์ง€๋Š” ํ•„๋“œ์— ์ง€์ •ํ•จ.
  • FOREIGN KEY : ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ํŠน์ • ํ•„๋“œ ๊ฐ’๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•˜๋Š” ํ•„๋“œ์— ์ง€์ •ํ•จ.
  • DEFAULT : ๊ธฐ๋ณธ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํ•„๋“œ์— ์ง€์ •ํ•จ.

ํ…Œ์ด๋ธ”/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ˆ˜์ •

ALTER
: ํ…Œ์ด๋ธ”์˜ ํ•„๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ CHARACTER SET์ด๋‚˜ COLLATE๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ˆ˜์ •

ALTER DATABASE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช… CHARACTER SET=๋ฌธ์ž์ง‘ํ•ฉ์ด๋ฆ„;

ALTER DATABASE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช… COLLATE=์ฝœ๋ ˆ์ด์…˜์ด๋ฆ„;

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

ALTER TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ ADD ํ•„๋“œ๋ช… ํ•„๋“œํƒ€์ž…;
: ํ…Œ์ด๋ธ”์— ํ•„๋“œ ์ถ”๊ฐ€

ALTER TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ DROP ํ•„๋“œ๋ช…;
: ํ…Œ์ด๋ธ”์— ํ•„๋“œ ์‚ญ์ œ

ALTER TABLE ํ…Œ์ด๋ธ”์ด๋ฆ„ MODIFY COLUMN ํ•„๋“œ๋ช… ํ•„๋“œํƒ€์ž…;
: ํ…Œ์ด๋ธ”์— ํ•„๋“œ ์ˆ˜์ • (์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€ ๊ฐ€๋Šฅ)

ํ…Œ์ด๋ธ”/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ

DROP
: ํ…Œ์ด๋ธ”์ด๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

DROP DATABASE ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…;

DROP TABLE ํ…Œ์ด๋ธ”๋ช…;

ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œ

TRUNCATE TABLE ํ…Œ์ด๋ธ”๋ช…;
: ํ…Œ์ด๋ธ” ๋‚ด์˜ ์Šคํ‚ค๋งˆ๋Š” ๋‚จ๊ธฐ๊ณ , ํ…Œ์ด๋ธ” ๋‚ด ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œํ•œ๋‹ค.

๋ฐ์ดํ„ฐ ์‚ฝ์ž…

INSERT INTO ํ…Œ์ด๋ธ”๋ช… (...) VALUES (...)
: ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ๊ตฌ๋ฌธ. VALUES์— ์‚ฝ์ž…ํ•˜๋ ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. ๋ณต์ˆ˜์ž…๋ ฅ ๊ฐ€๋Šฅ.

INSERT INTO ํ…Œ์ด๋ธ”๋ช…(ํ•„๋“œ๋ช…_1, ํ•„๋“œ๋ช…_2, ํ•„๋“œ๋ช…_3, ...)
VALUES (ํ•„๋“œ๊ฐ’_1, ํ•„๋“œ๊ฐ’_2, ํ•„๋“œ๊ฐ’_3, ...), (ํ•„๋“œ๊ฐ’_1, ํ•„๋“œ๊ฐ’_2, ํ•„๋“œ๊ฐ’_3), ...;

๋ฐ์ดํ„ฐ ์ˆ˜์ •

UPDATE ํ…Œ์ด๋ธ”๋ช… SET ๋ฐ”๋€” ๋ฐ์ดํ„ฐ WHERE ๋ฐ”๊ฟ€ ๋ฐ์ดํ„ฐ

: ๋ฐ์ดํ„ฐ ์ˆ˜์ • ๊ตฌ๋ฌธ. ๋ณต์ˆ˜ ์ˆ˜์ • ๊ฐ€๋Šฅ.
UPDATE๋ฌธ์œผ๋กœ TABLE์„ ์„ ํƒํ•˜๊ณ ,
SET๋ฌธ์œผ๋กœ ์ˆ˜์ •ํ•  ๋‚ด์šฉ์„ ์ž…๋ ฅํ•˜๊ณ ,
WHERE๋ฌธ์œผ๋กœ ์ˆ˜์ •ํ•  ๋Œ€์ƒ์„ ์„ ํƒํ•จ.

UPDATE ํ…Œ์ด๋ธ”๋ช…
SET ํ•„๋“œ๋ช…_1=ํ•„๋“œ๊ฐ’_1, ํ•„๋“œ๋ช…_2=ํ•„๋“œ๊ฐ’_2, ...
WHERE ํ•„๋“œ๋ช…_1=ํ•„๋“œ๊ฐ’_1, ํ•„๋“œ๋ช…_2=ํ•„๋“œ๊ฐ’_2, ...;

๋ฐ์ดํ„ฐ ์‚ญ์ œ

DELETE FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์‚ญ์ œํ•  ๋ฐ์ดํ„ฐ

: ๋ฐ์ดํ„ฐ ์‚ญ์ œ ๊ตฌ๋ฌธ.
DELETE FROM๋ฌธ์œผ๋กœ TABLE์„ ์„ ํƒํ•˜๊ณ ,
WHERE๋ฌธ์œผ๋กœ ์‚ญ์ œํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•จ.

DELETE FROM ํ…Œ์ด๋ธ”๋ช…
WHERE ํ•„๋“œ๋ช…_1=ํ•„๋“œ๊ฐ’_1, ํ•„๋“œ๋ช…_2=ํ•„๋“œ๊ฐ’_2, ...;

๋ฐ์ดํ„ฐ ์กฐํšŒ

SELECT ํ•„๋“œ๋ช… FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์กฐํšŒํ•  ๋ฐ์ดํ„ฐ
: ๋ฐ์ดํ„ฐ ์กฐํšŒ ๊ตฌ๋ฌธ.

SELECT๋ฌธ์œผ๋กœ ์กฐํšŒํ•  ํ•„๋“œ๋ฅผ ์„ ํƒํ•˜๊ณ ,
FROM๋ฌธ์œผ๋กœ TABLE์„ ์„ ํƒํ•œ ํ›„,
WHERE๋ฌธ์œผ๋กœ ์กฐํšŒํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์ •ํ•จ.

SELECT ํ•„๋“œ๋ช…_1, ํ•„๋“œ๋ช…_2, ...
FROM ํ…Œ์ด๋ธ”๋ช…
WHERE ํ•„๋“œ๋ช…_1=ํ•„๋“œ๊ฐ’_1, ํ•„๋“œ๋ช…_2=ํ•„๋“œ๊ฐ’_2;

1/28 ์˜ค๋Š˜์˜ ์˜๋‹จ์–ด

truncate (v) (๊ธธ์ด๋ฅผ) ์ค„์ด๋‹ค.

grant (v) ์Šน์ธํ•˜๋‹ค, ์ธ์ •ํ•˜๋‹ค

revoke (v) (๊ฒฉ์‹) ์ทจ์†Œํ•˜๋‹ค, ํ์ง€ํ•˜๋‹ค

728x90
๋ฐ˜์‘ํ˜•