Bibi's DevLog ๐Ÿค“๐ŸŽ

[MySQL] ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿ–ฅ BE ๋ฐฑ์—”๋“œ/Database

[MySQL] ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ธฐ

๋น„๋น„ bibi 2021. 1. 28. 15:59

์ด ๊ธ€์€ ์ธํ”„๋Ÿฐ ์ƒํ™œ์ฝ”๋”ฉ-DATABASE 1&2๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ํ…Œ์ด๋ธ” ์ƒ์„ฑ
    : CREATE TABLE ํ…Œ์ด๋ธ” ์ด๋ฆ„(... ๊ฐ column ์ด๋ฆ„๊ณผ ๋ช…๋ น์–ด๋“ค ...);
  • ํ…Œ์ด๋ธ” ์‚ญ์ œ
    : DROP TABLE ํ…Œ์ด๋ธ” ์ด๋ฆ„;
  • ํ…Œ์ด๋ธ” ์กฐํšŒ
    : SHOW TABLES; TABLES ์ด๋‹ค!

โ€ป ํ˜„์žฌ ๋กœ๊ทธ์ธ๋œ ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ
: SET PASSWORD = PASSWORD('๋น„๋ฐ€๋ฒˆํ˜ธ');

  • ์ž๋ฃŒํ˜• Datatype
    SQL์€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ๋ถ€ํ„ฐ ๊ฐ column์— ๋“ค์–ด๊ฐˆ datatype์„ ์ •ํ•ด์•ผ ํ•œ๋‹ค.
    ์ž๋ฃŒํ˜•์€ MySQL Datatype์œผ๋กœ ๊ตฌ๊ธ€๋งํ•ด์„œ ์›ํ•˜๋Š” ์ž๋ฃŒํ˜• ๋ช…๋ น์–ด๋ฅผ ๋„ฃ๋Š”๋‹ค.
    INT(์ตœ๋Œ€์ถœ๋ ฅ์ž๋ฆฟ์ˆ˜) ์†Œ์ˆ˜์  ์—†๋Š” ์–‘์ˆ˜, ์Œ์ˆ˜, 0.(=INTEGER)
  • string : ๋ฌธ์ž์—ด , character : ๋ฌธ์ž.
    VARCHAR(์ตœ๋Œ€๋ฌธ์ž์ˆ˜=size) ๊ฐ€๋ณ€์ ์ธ(var) ๋ฌธ์ž(*character).
    ๊ด„ํ˜ธ ์•ˆ์— ๊ธ€์ž์ˆ˜ ์ œํ•œ์„ ์„ค์ •ํ•œ๋‹ค. VARCHAR(10) โ†’ 10๊ธ€์ž ์ด์ƒ์ด๋ฉด 11์ž๋ถ€ํ„ฐ๋Š” ์ €์žฅX.
    TEXT(size) / MEDIUMTEXT(size) / LONGTEXT(size) ๋ฌธ์ž์—ด์„ ์ €์žฅํ•จ.
    ๊ด„ํ˜ธ ์•ˆ์— ๊ธ€์ž์ˆ˜ ์ œํ•œ.
    ์ปดํ“จํ„ฐ์˜ ์ €์žฅ๊ณต๊ฐ„์€ ์ •ํ•ด์ ธ ์žˆ์œผ๋ฏ€๋กœ, ํ•ญ์ƒ column์— ์ €์žฅ๋  ๋ฐ์ดํ„ฐ ์ตœ๋Œ“๊ฐ’์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ!
  • DATE / TIME / DATETIME ..
    : ๋‚ ์งœ(์—ฐ์›”์ผ) / ์‹œ๊ฐ„ / ๋‚ ์งœ,์‹œ๊ฐ„ ์ž๋ฃŒํ˜•์„ ์ €์žฅ
  • NOT NULL ํ•„์ˆ˜ ์ •๋ณด. ์—†์–ด์„ (NULL) ์•ˆ ๋˜๋Š” ๋ฐ์ดํ„ฐ.
    ํ•ด๋‹น ๊ฐ’์ด ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋‹ค.
    NULL ์„ ํƒ ์ •๋ณด. ์—†์–ด๋„ ๋˜๋Š” ๋ฐ์ดํ„ฐ. ๊ฐ’์ด ์—†์–ด๋„ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ.
  • AUTO_INCREMENT ์ž๋™์œผ๋กœ 1์”ฉ ๊ฐ’์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ํ•œ๋‹ค. 1,2,3,4,5,6..
    id์™€ ๊ฐ™์ด ์ ˆ๋Œ€ ์ค‘๋ณต๋˜์–ด์„  ์•ˆ ๋˜๋Š” ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์„ค์ •ํ•˜๋Š” ๋ช…๋ น์–ด.

โš ๏ธ PRIMARY KEY(ํŠน์ • column๋ช…)
: ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์— ๋ฐ˜๋“œ์‹œ ์ง€์ •, ํฌํ•จํ•ด์•ผ ํ•˜๋Š” ๋ช…๋ น์–ด.
: primary key๋ฅผ ์ง€์ •ํ•˜๋Š” ์ด์œ ๋Š” '์„ฑ๋Šฅ'๊ณผ '์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ'๋•Œ๋ฌธ.
์ง€๊ธˆ์€ ํ›„์ž๋งŒ ์•Œ๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด id column๊ณผ ๊ฐ™์€ ์‹๋ณ„์ž(uniqueํ•œ column)์— ์ง€์ •ํ•˜๋ฉด ์ข‹๋‹ค : PRIMARY KEY(id)

โ‡’

์˜ˆ๋ฅผ ๋“ค์–ด..

ํ‘œ ์ƒ˜ํ”Œ

'topic'์ด๋ผ๋Š” ์ด๋ฆ„์˜ ์œ„์˜ ํ‘œ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด,

CREATE TABLE **topic**(
    id INT(11) NOT NULL AUTO_INCREMENT,
    title VARCHAR(1000) NOT NULL,
    description TEXT NULL,
    created DATETIME NOT NULL,
    author VARCHAR(15) NULL,
    profile VARCHAR(200) NULL,
    PRIMARY KEY(id)
);

์ด๋ ‡๊ฒŒ ๋ช…๋ น์–ด๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

๐Ÿ’ cheatsheet : =์ปจ๋‹ํŽ˜์ดํผ. ํ•œ๋งˆ๋””๋กœ ์š”์•ฝ์ •๋ฆฌ๋œ ๋ฌธ์„œ. ๊ตฌ๊ธ€๋งํ•  ๋•Œ ์ด ๋‹จ์–ด๋ฅผ ๋„ฃ์œผ๋ฉด ์š”์•ฝ์ •๋ฆฌ๋œ ๋ฌธ์„œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค!

โ€ป ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฐจ์ด ์ค‘ ํ•˜๋‚˜ : ์ž…๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๊ฐ•์ œ์„ฑ์ด ๊ฐ•ํ•˜๋‹ค(์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค)