์๋ฏธ ์๋ ํ ์ด๋ธ ์์ฑ
์ด์ ๊ฐ์์์ ์ฐ๋ฆฌ๋ ์ด๋ฏธ ํ ์ด๋ธ ์์ฑ์ ์ํ ์ฟผ๋ฆฌ์ ๋ํด ์กฐ๊ธ ์๊ฒ ๋์์ต๋๋ค. ์ด์ ์ด์ ๋ํด ๋ ๊น์ด ํ๊ณ ๋ค ์ฐจ๋ก์ ๋๋ค.
ํ ์ด๋ธ ์์ฑ์ 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,
);
GO TO FULL VERSION