1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | DROP DATABASE if EXISTS tabledb; CREATE DATABASE tabledb; CREATE TABLE `usertbl` ( `userid` CHAR(8) NOT NULL, -- ์ฌ์ฉ์ ID, ๊ธฐ๋ณธ ํค๋ก ์ฌ์ฉ `name` VARCHAR(10) NOT NULL, -- ์ด๋ฆ, 10์๊น์ง ํ์ฉ `birthyear` INT(11) NOT NULL, -- ์ถ์ ์ฐ๋, 11์๋ฆฌ๊น์ง `addr` CHAR(2) NOT NULL, -- ์ฃผ์, 2์๊น์ง ํ์ฉ `mobile1` CHAR(3) DEFAULT NULL, -- ํด๋์ ํ1, 3์๋ฆฌ๊น์ง `mobile2` CHAR(8) DEFAULT NULL, -- ํด๋์ ํ2, 8์๋ฆฌ๊น์ง `height` SMALLINT(6) DEFAULT NULL, -- ํค, ์์ ์ ์๋ก ์ค์ `mDate` DATE DEFAULT NULL, -- ๋ ์ง ํ๋ CONSTRAINT pk_usertbl_userid PRIMARY KEY (`userid`) -- ๊ธฐ๋ณธ ํค ์ ์ฝ ์กฐ๊ฑด ); | cs |
tabledb๋ฅผ ์ญ์ ํ๊ณ ๋ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ ๋ค.
1 2 3 4 5 6 7 8 9 10 11 | CREATE TABLE `usertbl` ( `userid` CHAR(8) NOT NULL, -- ์ฌ์ฉ์ ID, ๊ธฐ๋ณธ ํค๋ก ์ฌ์ฉ `name` VARCHAR(10) NOT NULL, -- ์ด๋ฆ, 10์๊น์ง ํ์ฉ `birthyear` INT(11) NOT NULL, -- ์ถ์ ์ฐ๋, 11์๋ฆฌ๊น์ง `addr` CHAR(2) NOT NULL, -- ์ฃผ์, 2์๊น์ง ํ์ฉ `mobile1` CHAR(3) DEFAULT NULL, -- ํด๋์ ํ1, 3์๋ฆฌ๊น์ง `mobile2` CHAR(8) DEFAULT NULL, -- ํด๋์ ํ2, 8์๋ฆฌ๊น์ง `height` SMALLINT(6) DEFAULT NULL, -- ํค, ์์ ์ ์๋ก ์ค์ `mDate` DATE DEFAULT NULL, -- ๋ ์ง ํ๋ CONSTRAINT pk_usertbl_userid PRIMARY KEY (`userid`) -- ๊ธฐ๋ณธ ํค ์ ์ฝ ์กฐ๊ฑด ); | cs |
NOT NULL์ NULL๊ฐ์ ํ์ฉํ์ง ์๋๋ค๋ ๊ฒ, NULL์ NULL๊ฐ์ด ๋ค์ด์๋ ๊ด์ฐฎ๋ค๋ ๊ฒ์ด๋ค.
1. ๊ธฐ๋ณธํค pk ์ ์ฝ ์กฐ๊ฑด
unique(์ค๋ณต x), NOT NUll ๋๊ฐ์ ์กฐ๊ฑด์ ๋ง์กฑ
auto_increment ์ค์ ํ๋ฉด insert ํ ๋ null์ ๋ฃ๋๋ค.
pk๋ก ์ค์ ํ๋ฉด ์๋์ผ๋ก ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ค. (ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๋ ํ ํ
์ด๋ธ์์ ํ๋๋ง ์กด์ฌํ๋ค๋ ๊ฒ์ด๋ค. primary key๋ก ๋ฑ๋ก๋ ์ด์ ๋ํด์ ์๋์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ค.)
1 2 3 4 5 6 7 8 9 | CREATE TABLE usertbl2( userid CHAR(8) NOT NULL, NAME VARCHAR(10) NOT NULL, birthyear INT NOT NULL); ALTER TABLE usertbl2 ADD CONSTRAINT pk_usertbl_userid PRIMARY KEY (userid); | cs |
ALTER TABLE "ํ ์ด๋ธ๋ช " ~ ๊ตฌ๋ฌธ์ ํ์ฉํด ์ด๋ฏธ ๋ง๋ค์ด์ง ํ ์ด๋ธ์์ primary key๋ฅผ ์ค์ ํ ์ ์๋ค.
๋ณตํฉํค : 2๊ฐ์ด์์ ์ปฌ๋ผ์ ์กฐํฉํด์ ๊ธฐ๋ณธํค๋ก ์ค์
PIRMARY KEY(์ปฌ๋ผ 1, ์ปฌ๋ผ 2)
์ธ๋ํค FK : ๋ ํ
์ด๋ธ๊ฐ์ ๊ด๊ณํ์ฑ, ์ค๋ณต๊ฐ๋ฅ
๋ฐ๋์ ์ฐธ์กฐ ํ
์ด๋ธ์ ์ปฌ๋ผ์ด pk๋ก ์ค์ ์ด ๋์ด์์ด์ผ ํ๋ค.
๋ถ๋ชจํ
์ด๋ธ์ ์ฐธ์กฐ์ปฌ๋ผ์ ์ญ์ ํ๋ ค๋ฉด
์์ํ
์ด๋ธ์ fk๊ฐ๋ถํฐ ์ญ์ ํ๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | DROP TABLE if EXISTS buytbl, usertbl; CREATE TABLE `usertbl` ( `userid` CHAR(8) , `name` VARCHAR(10) , `birthyear` INT(11) , `addr` CHAR(2) , `mobile1` CHAR(3) , `mobile2` CHAR(8) , `height` SMALLINT(6) , `mDate` DATE ); CREATE TABLE `buytbl` ( `num` INT(11) AUTO_INCREMENT PRIMARY KEY, `userid` CHAR(8) , `prodname` CHAR(6) , `groupname` CHAR(4) , `price` INT(11) , `amount` SMALLINT(6) ); | cs |
DROP DATABASE๋ฌธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก DROP TABLE๋ฌธ์ ํ์ฉํด ํ ์ด๋ธ์ ์ญ์ ํ ์๋ ์๋ค.
ALTER TABLE usertbl ADD CONSTRAINT pk_usertbl_userid PRIMARY KEY (userid); DELETE FROM buytbl WHERE userid = 'BBK'; INSERT INTO buytbl VALUES(NULL, 'BBK', '๋ชจ๋ํฐ', '์ ์', 200,5); SHOW KEYS FROM buytbl;
์ฝ๋ ์์๋ ์์ง๋ง ๋ค์๊ณผ ๊ฐ์ด ์ธ๋ํค๋ฅผ ์ด์ฉํ ์ ์๋ค.
2. View
๋ทฐ ์ฌ์ฉํ๊ธฐ : ๊ฐ์์ ํ
์ด๋ธ ๊ฐ๋
์ฌ์ฉ๋ฒ์ : ์กฐํ๊ธฐ๋ฅ ์ธ์ ์ถ๊ฐ, ์์ , ์ญ์ ๊ฐ๋ฅํ๋ค.--> ์๋ณธ ํ
์ด๋ธ์ ๋์์ผ๋ก
๋ณด์๊ฐํ ํจ๊ณผ : ์ฌ์ฉ์๊ฐ ์๋ณธํ
์ด๋ธ์๋ ์ ๊ทผํ์ง ๋ชปํ๊ณ ๋ทฐ์๋ง ์ ๊ทผํ๋๋ก ๊ถํ์ ๋ถ์ฌํ ์ ์์.
1 2 3 4 5 6 | CREATE VIEW v_usertbl AS SELECT userid, NAME, addr FROM usertbl; SELECT * FROM v_usertbl WHERE userid = 'JYP'; | cs |
๋ทฐ๋ฅผ ๋ง๋ค๊ณ ์ด๋ฏธ ๋ง๋ค์ด์ง ํ ์ด๋ธ์์ ํ์ํ ๋ด์ฉ์ ๋ณต์ฌํด์ ๋ทฐ์์ ํ์ํ ์กฐ๊ฑด์ ์ฝ์์ ์ถ๋ ฅํ๋ค.
1 2 3 4 5 6 7 | CREATE TABLE tb2( a INT PRIMARY KEY, b INT UNIQUE, c INT UNIQUE , d INT ); | cs |
a๋ฅผ ๊ธฐ๋ณธํค(ํด๋ฌ์คํฐ ์ธ๋ฑ์ค)๋ก b, c๋ ๋ณด์กฐ ์ธ๋ฑ์ค๋ก ํ์ฉํ๋ ๊ฒ์ด๋ค. ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๋ ๊ธฐ๋ณธํค๋ก ์ธ๋ฑ์ค๋ฅผ ์ค์ ํ๋ค.
ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๋ ํ๋๋ง ์์ด์ผ ํ๋ฉฐ ๋ณด์กฐ ์ธ๋ฑ์ค๋ ์ฌ๋ฌ๊ฐ ์์ด๋๋๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | CREATE TABLE tb4( a INT UNIQUE, b INT UNIQUE NOT NULL, -- b ๊ฐ ๋งจ ์๋ก ์ฌ๋ผ์ด, -> ์ ๋ํฌ _ ๋ซ๋ = ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค ์์ฑ c INT UNIQUE , d INT ); SHOW INDEX FROM tb4; CREATE TABLE tb5( a INT UNIQUE, b INT UNIQUE NOT NULL, -- b ๊ฐ ๋งจ ์๋ก ์ฌ๋ผ์ด, -> ์ ๋ํฌ _ ๋ซ๋ = ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค ์์ฑ c INT UNIQUE , d INT PRIMARY KEY ); | cs |
NOT NULL๋ก ์ค์ ํ๋ฉด ํด๋ฌ์คํฐ ์ธ๋ฑ์ค๋ก ๋ง๋ค ์ ์์ง๋ง PRIMARY KEY๋ผ๊ณ ๋ช ์๋ฅผ ํด๋ ๋ณ์๊ฐ ์์ผ๋ฉด PRIMARY ํค๊ฐ ์ฐ์ ํด์ ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๊ฐ ๋๋ค.
'MySQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค NULL ๊ฐ ์ฒ๋ฆฌํ๊ธฐ (0) | 2025.04.12 |
---|---|
์คํ ์ด๋ ํ๋ก์์ , ์คํ ์ด๋ ํจ์, ์ปค์, ํธ๋ฆฌ๊ฑฐ (0) | 2024.08.08 |
DB ์ค์ต [1] { dbForge Studio for MySQL, Heidi SQL } (0) | 2024.07.31 |