DDL : creat, alter, drop, truncate
๊ฐ์ฒด(object)๋ฅผ ์์ฑ, ์์ , ์ญ์ ํ๋ ๋ช ๋ น์ด
๊ฐ์ฒด ์ข ๋ฅ - table, view, index ๋ฑ
DDL๊ตฌ๋ฌธ์ autocommit์ ๋ดํฌํจ => ์ทจ์ x
1. ํ ์ด๋ธ ์์ฑ(create table)
ํ ์ด๋ธ ์์ฑ ์ ํ์ ์ ๋ณด : ํ ์ด๋ธ ๋ช , ์ปฌ๋ผ๋ช , ๋ฐ์ดํฐ ํ์ (์ปฌ๋ผ์ฌ์ด์ฆ)
์ต์ : default ๊ฐ, ์ ์ฝ ์กฐ๊ฑด
1-1. ์ ์ฝ์กฐ๊ฑด ์์ด default ๊ฐ์ผ๋ก ํ ์ด๋ธ ์์ฑ
1-2. default ๊ฐ์ด ์ ์ธ๋ ์ปฌ๋ผ์ insert ์์ ํ๊ธฐ
& default ๊ฐ์ ๋ช ์์ ์ผ๋ก ์ฝ์ ํ๋ ๋ฐฉ๋ฒ
1-3. default ๊ฐ์ ์์์ ์ผ๋ก ์ฝ์ ํ๋ ๋ฐฉ๋ฒ
1-4. default ๊ฐ์ด ์ค์ ๋์ด ์์ง ์์ ์ปฌ๋ผ์ default ์ต์ ์ฌ์ฉ ์ => null
1-5. default๊ฐ ์ฌ์ฉํด์ update ์์
* ์๋ธ์ฟผ๋ฆฌ ๊ตฌ๋ฌธ์ ํ์ฉํ ํ ์ด๋ธ ์์ฑ ์์ (ํ ์คํธ์ฉ, ๋ฐฑ์ ์ฉ์ผ๋ก ์ฃผ๋ก ์ฌ์ฉ)
* ํํ๋ง ๋ณต์ฌํ๊ธฐ
2. ์ ์ฝ์กฐ๊ฑด ์ค์ (alter table)
์ ์ฝ์กฐ๊ฑด ์ ํ : not null, unique, primarty, foreign key, check
2-1. not null ์ ์ฝ์กฐ๊ฑด
: ์ปฌ๋ผ์ null ๊ฐ์ ํ์ฉํ์ง ์๋ ์ ์ฝ์กฐ๊ฑด = > ๊ฐ์ด ๋ฐ๋์ ์์ด์ผ ํ๋ ์ปฌ๋ผ์ ์ง์
: null ๊ฐ ์ ์ฅ ์ ๊ณ ์ ๊ธธ์ด ๋ฌธ์ํ(char)์ ๊ณต๊ฐ์ ๋ชจ๋ ์ฐจ์ง,
: ๊ฐ๋ณ๊ธธ์ด ๋ฌธ์ํ(varchar)๋ ๊ณต๊ฐ์ ์ฐจ์งํ์ง x => null ๊ฐ์ด ๋ง์ด ์ ๋ ฅ๋๋ ์ปฌ๋ผ์ varchar์ฌ์ฉ์ ๊ถ์ฅ
2-2. unique ์ ์ฝ์กฐ๊ฑด
: ์ค๋ณต๋์ง ์๋ ๊ฐ์ ์ ๋ ฅ
: ์์ด๋, ์ฃผ๋ฏผ๋ฒํธ, ์ด๋ฉ์ผ ๋ฑ์ ์ฌ์ฉ๋จ
2-3. primary key ์ ์ฝ์กฐ๊ฑด
: ํ ์ด๋ธ ํ์ ์๋ณํด ์ค ์ ์๋ ์ปฌ๋ผ์ ์ ์ธํ๋ ์ ์ฝ์กฐ๊ฑด => ๋ํ์ปฌ๋ผ
: not null + unique
* ์ปฌ๋ผ, ํ ์ด๋ธ ๋ ๋ฒจ ๋ฌธ๋ฒ
์ปฌ๋ผ ๋ ๋ฒจ ๋ฌธ๋ฒ : not null, primary key, unique, check
ํ ์ด๋ธ ๋ ๋ฒจ ๋ฌธ๋ฒ : primary key, unique, check, foreign key
2-5. foreign key ์ ์ฝ์กฐ๊ฑด
: ๋ ํ ์ด๋ธ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์ ์ธ=> ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํด ์ค
: ์๊ธฐ์์ ํ ์ด๋ธ or ๋ค๋ฅธํ ์ด๋ธ์ ํน์ ์ปฌ๋ผ์ ์ฐธ์กฐ
: primary key, unique ์ ์ฝ์กฐ๊ฑด์ด ์ ์ธ๋ ์ปฌ๋ผ๋ง ์ฐธ์กฐ ํ ์ ์์
: foregin key(์ปฌ๋ผ๋ช ) references ์ฐธ์กฐํ ํ ์ด๋ธ ๋ช (์ฐธ์กฐํ ์ปฌ๋ผ๋ช )
2-6. check ์ ์ฝ์กฐ๊ฑด
: ํด๋น ์ปฌ๋ผ์ด ๋ง์กฑํด์ผํ๋ ์กฐ๊ฑด์ ์ง์
๋ ์ปฌ๋ผ ์กฐํฉ ๊ฐ์ primary key ์ค์
1. title ํ ์ด๋ธ ์์ฑ
*check ์ ์ฝ์กฐ๊ฑด
title_copy ํ ์ด๋ธ ์์ฑ
2. copy_id์ title_id ์ ์กฐํฉ ๊ฐ์ primary key ๊ฐ ์์ฑ
constraint ์กฐํฉ ๊ฐ ๋ค์ด๋ฐ primary key(์ปฌ๋ผ1, ์ปฌ๋ผ2)
'STUDY > DATABASE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
MYSQL - DDL(VIEW) (0) | 2022.05.13 |
---|---|
MYSQL - ALTER (0) | 2022.05.10 |
MYSQL - ์ฐ์ต๋ฌธ์ (DML) (0) | 2022.05.02 |
MYSQL - TCL(ํธ๋์ญ์ ์ ์ด์ด) (0) | 2022.05.02 |
MYSQL - DML_๋ฐ์ดํฐ ์ญ์ (delete) (0) | 2022.05.02 |