์˜๋ฏธ ์žˆ๋Š” ํ…Œ์ด๋ธ” ์ƒ์„ฑ

์ด์ „ ๊ฐ•์˜์—์„œ ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ํ…Œ์ด๋ธ” ์ƒ์„ฑ์„ ์œ„ํ•œ ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ์กฐ๊ธˆ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์ด์— ๋Œ€ํ•ด ๋” ๊นŠ์ด ํŒŒ๊ณ ๋“ค ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ” ์ƒ์„ฑ์€ Java์—์„œ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ๊ณผ ๋งค์šฐ ์œ ์‚ฌํ•˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒจํ„ด์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

CREATE TABLE table_name (
	column1 datatype,
	column2 datatype,
	column3 datatype,
   ....
);

์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž๊ฐ€ ํฌํ•จ๋œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“œ๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

CREATE TABLE user (
	id INT,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

์—ฌ๊ธฐ์—๋Š” ๋งŽ์€ ๋‰˜์•™์Šค๊ฐ€ ํ‘œ์‹œ๋˜์–ด ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๊ฐ„๋‹จํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.

์ฒซ์งธ, ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ ์„ค์ •์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘˜์งธ, ๊ฐ ์—ด์—๋Š” ์ถ”๊ฐ€ ์„ค์ •์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์—ด ์ƒ์„ฑ ์„ค์ •๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”์˜ ํ‚ค

์ด๋ฆ„ ๋ฐ ๋ฐ์ดํ„ฐ ์œ ํ˜• ์™ธ์—๋„ ํ…Œ์ด๋ธ” ์—ด์—๋Š” ๋‹ค์Œ ์„ค์ •์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ‚ค ์—ด์€ ํ…Œ์ด๋ธ”์˜ ํ‚ค์ž…๋‹ˆ๋‹ค.
๊ณ ์œ  ํ‚ค ๋ชจ๋“  ์—ด ๊ฐ’์€ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ๊ฐ’ ๊ธฐ๋ณธ๊ฐ’
NULL์ด ์•„๋‹˜ ๊ฐ’ NULL ํ—ˆ์šฉ ๊ธˆ์ง€
์ž๋™ ์ฆ๊ฐ€ ์ƒˆ ๋ ˆ์ฝ”๋“œ๊ฐ€ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€๋˜๋ฉด SQL Server๊ฐ€ ์ž๋™์œผ๋กœ ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.
์ƒ์„ฑ๋จ ๊ณ„์‚ฐ๋œ ํ•„๋“œ
์ €์žฅ ๋ฐ์ดํ„ฐ ์ €์žฅ ์œ„์น˜: ๋””์Šคํฌ ๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ
๋…ผํ‰ ์—ด ์ฃผ์„(์˜ˆ: ํ˜„์ง€ ์–ธ์–ด๋กœ ๋œ ์ œ๋ชฉ)

์•„๋ž˜์—์„œ ๊ทธ ์ค‘ ์ผ๋ถ€๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋จผ์ € PRIMARY KEY ์ž…๋‹ˆ๋‹ค .

๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ด๊ฒƒ์€ ์ด๋ฆ„์ด id์ด๊ณ  ์œ ํ˜•์ด INT์ธ ๋ณ„๋„์˜ ์—ด์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์†Œ์œ„ ํ…Œ์ด๋ธ”์˜ "๋งˆ์Šคํ„ฐ ํ‚ค"์ด๋ฉฐ ๋ชจ๋“  ํ–‰์—๋Š” ์ด ํ‚ค์— ๋Œ€ํ•œ ๊ณ ์œ ํ•œ ๊ฐ’์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์ด ์šฐ๋ฆฌ ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ํŠน์ • ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ๋Š” UNIQUE KEY ์ž…๋‹ˆ๋‹ค .

์–ด๋–ค ๋ฉด์—์„œ๋Š” PRIMARY KEY์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ์˜๋ฏธ๋ก ์  ๋กœ๋“œ๋Š” ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์—ด์— UNIQUE ์†์„ฑ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์—ด์˜ ๋ชจ๋“  ๊ฐ’์€ ๊ณ ์œ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. UNIQUE KEY์™€ PRIMARY KEY์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•œ ์ข‹์€ ์˜ˆ๋Š” ์—ฌ๊ถŒ ์‚ฌ๋ฌด์†Œ์— ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

์„ธ๊ธˆ ๋ฒˆํ˜ธ๋Š” PRIMARY KEY๋กœ, ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์—์„œ ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ๋žŒ์„ ์‰ฝ๊ฒŒ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์—ฌ๊ถŒ ๋ฒˆํ˜ธ๋Š” ๊ณ ์œ  ํ‚ค์ž…๋‹ˆ๋‹ค. ๋‘ ์‚ฌ๋žŒ์ด ๋™์ผํ•œ ์—ฌ๊ถŒ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹จ, ์—ฌ๊ถŒ๋ฒˆํ˜ธ๋Š” ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„ฑ์„ ๋ณ€๊ฒฝํ•  ๋•Œ. ๊ทธ๋ฆฌ๊ณ  ์„ธ๊ธˆ ๋ฒˆํ˜ธ๋Š” ์˜์›ํžˆ ๋‚จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด PRIMARY KEY์˜ ์ฃผ์š” ์—…๋ฌด์ž…๋‹ˆ๋‹ค. PRIMARY KEY๋ฅผ ์ง€์ •ํ•˜๋Š” ์ฟผ๋ฆฌ์˜ ์˜ˆ:

CREATE TABLE user (
	id INT PRIMARY KEY,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

๋ฐ์ดํ„ฐ ์œ ํ˜• ์„ค์ •

๋œ ์ค‘์š”ํ•˜์ง€๋งŒ ์œ ์šฉํ•œ ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’

ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…(์ƒˆ ํ–‰ ์ถ”๊ฐ€)ํ•  ๋•Œ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ์ผ๋ถ€ ์—ด์˜ ๊ฐ’์„ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ SQL ์„œ๋ฒ„๋Š” ๋‹จ์ˆœํžˆ ์—ด ์ž์ฒด์˜ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

MySQL ๋ฒ„์ „ 8๋ถ€ํ„ฐ ์‹์„ ๊ฐ’์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

NULL์ด ์•„๋‹˜

ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ๋•Œ ์—ด์— ๋Œ€ํ•ด NOT NULL ํŠน์„ฑ์„ ์ง€์ •ํ•˜๋ฉด SQL Server๋Š” ์ด ์—ด์— NULL ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์—†๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ์—ด์€ INT ์—ด์„ ํฌํ•จํ•˜์—ฌ NULL ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Java ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ๋Š” ๋‹ค์†Œ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž๋™ ์ฆ๊ฐ€

์ผ๋ฐ˜์ ์œผ๋กœ ์—ด ID์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์— ์ƒˆ ํ–‰์„ ์ถ”๊ฐ€ํ•  ๋•Œ SQL ์„œ๋ฒ„๊ฐ€ ์ด ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ID๋ฅผ ํ• ๋‹นํ•˜๊ธฐ๋ฅผ ์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์— ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ํ–‰์ด ์žˆ๋Š”์ง€ ์„œ๋ฒ„๋ณด๋‹ค ๋” ์ž˜ ์•„๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ์ž…๋‹ˆ๊นŒ? ํŠนํžˆ ๋‹ค๋ฅธ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋™์ผํ•œ SQL ์„œ๋ฒ„๋กœ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ.

์ด๊ฒƒ์ด ๋ฐ”๋กœ AUTO_INCREMENT ์†์„ฑ์ด ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค. ์ƒˆ ํ–‰์„ ์ถ”๊ฐ€ํ•  ๋•Œ ๋‹จ์ˆœํžˆ ID๋กœ ์•„๋ฌด ๊ฒƒ๋„ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉฐ SQL ์„œ๋ฒ„๋Š” ์ด ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ID๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ ๊ธฐ์กด ๋ ˆ์ฝ”๋“œ์˜ ID๋ฅผ ๊ฐ€์ ธ์™€ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค. ์ด ์†์„ฑ์€ ์ •์ˆ˜ ๋ฐ ์‹ค์ˆ˜ ์œ ํ˜•๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด๋Ÿฌํ•œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“œ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

CREATE TABLE user (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(100) NOT NULL,
	level INT DEFAULT 1,
	created_date DATE NOT NULL,
);