๐ŸงฑSQL ํ…Œ์ด๋ธ” ์ƒ์„ฑ(CREATE) ๋ฌธ ์ƒ์„ฑ๊ธฐ

์ปฌ๋Ÿผ ์ •์˜๋กœ ๋ฐฉ์–ธ๋ณ„ DDL ์ƒ์„ฑ

ํƒ€์ž…: int, bigint, varchar(n), decimal(p,s), text, bool, date, datetime, json, uuid. ์˜ต์…˜: pk, auto, notnull, unique, default=๊ฐ’ (๊ณต๋ฐฑ ์—†์ด). ๊ตฌ๋ถ„์ž๋Š” ์„ธ๋กœ์ค„( | )์ž…๋‹ˆ๋‹ค โ€” decimal(10,2) ์•ˆ์˜ ์‰ผํ‘œ์™€ ๋ถ€๋”ชํžˆ์ง€ ์•Š๋„๋ก ์‰ผํ‘œ๋ฅผ ์“ฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์“ฐ๊ธฐ ์ „์—

๋ฐฉ์–ธ๋งˆ๋‹ค ํƒ€์ž… ์ด๋ฆ„๊ณผ ์ž๋™ ์ฆ๊ฐ€ ๋ฌธ๋ฒ•์ด ๋‹ฌ๋ผ ์„ž์–ด ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ ๊ทธ ๋ฐฉ์–ธ์˜ ๋ฌธ๋ฒ•๋งŒ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. MySQL ์€ AUTO_INCREMENT, PostgreSQL ์€ SERIAL ๊ณ„์—ด, SQLite ๋Š” INTEGER PRIMARY KEY AUTOINCREMENT ๋กœ ๋‚˜๊ฐ‘๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”ยท์ปฌ๋Ÿผ ์ด๋ฆ„์€ ํ—ˆ์šฉ ๋ฌธ์ž๋งŒ ํ†ต๊ณผ์‹œํ‚ค๊ณ  ์–ด๊ธ‹๋‚˜๋ฉด ๋ฐ˜๋ คํ•ฉ๋‹ˆ๋‹ค.

์ƒ์„ฑํ•œ DDL ์€ ๊ฐœ๋ฐœยท์‹œ๋“œ ํ™˜๊ฒฝ์—์„œ ๋จผ์ € ๋Œ๋ ค ๋ณด์„ธ์š”. ์ธ๋ฑ์Šค์™€ ์™ธ๋ž˜ ํ‚ค, ๋ฌธ์ž์…‹ยท์ฝœ๋ ˆ์ด์…˜, ํŒŒํ‹ฐ์…”๋‹, ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ๊ฐ™์€ ์šด์˜ ์„ค์ •์€ ๋‹ค๋ฃจ์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ทธ๋Œ€๋กœ ์šด์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ์šฉํ•  ๋ฌธ์žฅ์œผ๋กœ ๋ณด๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ๋œ ๋„๊ตฌ

์ปฌ๋Ÿผ ๋ชฉ๋ก์„ ํ•œ ์ค„์”ฉ ์ ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค

์ปฌ๋Ÿผ๋ช…๊ณผ ํƒ€์ž…, ์˜ต์…˜์„ ์„ธ๋กœ์ค„๋กœ ๊ตฌ๋ถ„ํ•ด ํ•œ ์ค„์”ฉ ์ ์œผ๋ฉด ๊ณ ๋ฅธ ๋ฐฉ์–ธ์˜ CREATE TABLE ๋ฌธ์„ ๋งŒ๋“ค์–ด ์ค๋‹ˆ๋‹ค. ๊ตฌ๋ถ„์ž๊ฐ€ ์‰ผํ‘œ๊ฐ€ ์•„๋‹ˆ๋ผ decimal(10,2) ์ฒ˜๋Ÿผ ๊ด„ํ˜ธ ์•ˆ์— ์‰ผํ‘œ๊ฐ€ ๋“  ํƒ€์ž…๋„ ๊ทธ๋Œ€๋กœ ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ ํ‚ค๋Š” ์—ฌ๋Ÿฌ ์ปฌ๋Ÿผ์— ์ง€์ •ํ•ด ๋ณตํ•ฉ ํ‚ค๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฉ์–ธ์„ ์„ž์ง€ ์•Š์Šต๋‹ˆ๋‹ค

ํƒ€์ž… ์ด๋ฆ„๊ณผ ์ž๋™ ์ฆ๊ฐ€ ๋ฌธ๋ฒ•์€ ๋ฐฉ์–ธ๋งˆ๋‹ค ๋‹ฌ๋ผ์„œ ์„ž์œผ๋ฉด ์–ด๋А ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋„ ๋Œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ MySQLยทPostgreSQLยทSQLite ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ณ ๋ฅด๊ฒŒ ํ•˜๊ณ  ๊ทธ ๋ฐฉ์–ธ์˜ ๋ฌธ๋ฒ•๋งŒ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ž๋™ ์ฆ๊ฐ€๋Š” MySQL ์€ AUTO_INCREMENT, PostgreSQL ์€ SERIAL ๊ณ„์—ด, SQLite ๋Š” INTEGER PRIMARY KEY AUTOINCREMENT ๋กœ ๋‚˜๊ฐ€๋ฉฐ ์–ด๋–ค ๋ณ€ํ™˜์„ ํ–ˆ๋Š”์ง€ ๊ฒฐ๊ณผ ์•„๋ž˜์— ์ ์–ด ๋‘ก๋‹ˆ๋‹ค. 2026๋…„ 10์›” ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค.

์‹๋ณ„์ž ๊ฒ€์ฆ๊ณผ ํ•œ๊ณ„

ํ…Œ์ด๋ธ”๋ช…๊ณผ ์ปฌ๋Ÿผ๋ช…์€ ์˜๋ฌธ์žยท์ˆซ์žยท๋ฐ‘์ค„ยท$ ๋งŒ ํ—ˆ์šฉํ•˜๊ณ  ์–ด๊ธ‹๋‚˜๋ฉด ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์ง€ ์•Š๊ณ  ๋ฐ˜๋ คํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ์ˆซ์ž์™€ NULLยทTRUEยทFALSEยทCURRENT_TIMESTAMP ๋ฅผ ๋นผ๋ฉด ์ž‘์€๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ๊ณ  ๋‚ด๋ถ€ ๋”ฐ์˜ดํ‘œ๋ฅผ ๋‘ ๋ฒˆ ์จ์„œ escape ํ•ฉ๋‹ˆ๋‹ค. ์ธ๋ฑ์Šคยท์™ธ๋ž˜ ํ‚คยท๋ฌธ์ž์…‹ยทํŒŒํ‹ฐ์…”๋‹์€ ๋‹ค๋ฃจ์ง€ ์•Š์œผ๋‹ˆ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๋จผ์ € ๋Œ๋ ค ๋ณด์„ธ์š”.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

์™œ ์‰ผํ‘œ๊ฐ€ ์•„๋‹ˆ๋ผ ์„ธ๋กœ์ค„๋กœ ๊ตฌ๋ถ„ํ• ๊นŒ?

decimal(10,2) ์ฒ˜๋Ÿผ ํƒ€์ž… ์•ˆ์— ์‰ผํ‘œ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ์‰ผํ‘œ๋ฅผ ๊ตฌ๋ถ„์ž๋กœ ์“ธ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์„ธ๋กœ์ค„๋กœ ๋‚˜๋ˆ„๋ฉด ๊ด„ํ˜ธ ์•ˆ ์‰ผํ‘œ๋ฅผ ๊ทธ๋Œ€๋กœ ์ ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SQLite ์—์„œ varchar(255) ๊ฐ€ ์™œ TEXT ๋กœ ๋‚˜์˜ฌ๊นŒ?

SQLite ๋Š” ๊ธธ์ด ์ œํ•œ์„ ๊ฐ•์ œํ•˜์ง€ ์•Š์•„ varchar(255) ์™€ TEXT ๊ฐ€ ์‚ฌ์‹ค์ƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฐฉ์–ธ์— ๋งž๋Š” ํƒ€์ž…์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๊ทธ ์‚ฌ์‹ค์„ ๊ฒฐ๊ณผ ์•„๋ž˜์— ์ ์–ด ๋‘ก๋‹ˆ๋‹ค.

์ด ๋„๊ตฌ๊ฐ€ ํ•˜์ง€ ์•Š๋Š” ์ผ์€ ๋ฌด์—‡์ผ๊นŒ?

์ธ๋ฑ์Šคยท์™ธ๋ž˜ ํ‚คยท๋ฌธ์ž์…‹ยทํŒŒํ‹ฐ์…”๋‹ ๊ฐ™์€ ์šด์˜ ์„ค์ •์€ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๊ธฐ์กด ํ…Œ์ด๋ธ”์„ ๋ฐ”๊พธ๋Š” ALTER ๋ฌธ๋„ ๋งŒ๋“ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.