2020. 9. 19. 13:29ใ์ ๊ณต ๊ณผ๋ชฉ/๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ฐ์ดํฐ๋ฒ ์ด์ค - DDL(Data Definition Language)
์ฐ๋ฆฌ๊ฐ ์์์ ๋ช ๋ น์ด๋ฅผ ์ ๊ธฐ์ ์ ์์ SQL > ์์์ด ๋ถ์๋ค.
์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํ๊ธฐ ์ํ์ฌ ๋ฐ๋์ ํ์ํ ๋ช ๋ น์ด์ด๋ค.
SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ธฐ ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
์ด๋ ๋ฐ์ดํฐ ์ ์, ์กฐ์, ์ ์ด ๋ชจ๋์ ํ์ฉ๋๋ค.
๋จผ์ ์ ์๋ฅผ ์ดํด๋ณด์.
์ด๋ฅผ DDL(Data Definition Laguage)๋ผ๊ณ ๋ถ๋ฅด๋๋ฐ, ๋ง ๊ทธ๋๋ก ์ ์ํ๋๋ฐ ์ฐ์ธ๋ค.
DDL์ ์ค์ ๋ฐ์ดํฐ ์ ํ์ ์ด๋ ๋ค.
CHARACTER(s), VARCHAR(s), NUMERIC, DATETIME
์ฌ๊ธฐ์ VARCHAR๋ CHAR๊ณผ ๋ค๋ฅด๊ฒ ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์์ด ์ ๋ณด๋ก์จ ๊ฐ๋ณ์ ์ผ๋ก ๊ธธ์ด๋ฅผ ์ค์ ํ ์ ์๋ค.
VARCHAR์ ํ์ ๊ฐ๋ณ ๊ธธ์ด์ด๋ฏ๋ก ํ์ํ ์์ญ์ ์ค์ ๋ฐ์ดํฐ ํฌ๊ธฐ ๋ฟ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ ์๋ ๊ธธ์ด์ ์ค์ ๋ฐ์ดํฐ ๊ธธ์ด์ ์ฐจ์ด๊ฐ ์๋ ์นผ๋ผ์ ์ ํฉํ๋ค. ์ ์ฅ ์ธก๋ฉด์์๋๋ ์์ ์์ญ์ ์ ์ฅํ ์ ์๋ค.
CHAR ์ ํ์ 'BB' =='BB ' ๋ฅผ ๋น๊ตํ๋ค๋ฉด ๋์ด ๊ฐ์ง๋ง VARCHAR ์ ํ์ 'BB' == 'BB '๋ฅผ ๋น๊ตํ๋ฉด ๋์ด ๋ค๋ฅด๋ค.
VARCHAR๋ ๊ณต๋ฐฑ๋ ๋ฌธ์๋ก ์ทจ๊ธํ๊ธฐ ๋๋ฌธ์ด๋ค.
ํ ์ด๋ธ์๋ ์ฌ๋ฌ ์ ๋ณด๋ค์ด ์๋ค. ์ฐ๋ฆฌ๋ ์ด์ ๋ถํฐ ์ด ์ ๋ณด๋ค์ ์นผ๋ผ(column)์ด๋ผ๊ณ ๋ถ๋ฅผ ๊ฒ์ด๋ค.
ํ ํ ์ด๋ธ ์์ ์นผ๋ผ ์ด๋ฆ์ ๋ฌ๋ผ์ผ ํ๋ค. ํ์ง๋ง ๋ค๋ฅธ ํ ์ด๋ธ๊ณผ์ ์นผ๋ผ ์ด๋ฆ์ ๊ฐ์ ์ ์๋ค.
๋ํ ๋ค๋ฅธ ํ ์ด๋ธ๊ณผ ๊ฐ์ ์ด๋ฆ์ ๊ฐ์ง ์นผ๋ผ์ ๊ธฐ๋ณธํค์ ์ธ๋ํค์ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ์, ์ค์ํ ์นผ๋ผ๋ค์ด๋ค.
ํ ์ด๋ธ ์์ฑ ๊ท์น์ ์ดํด๋ณด์.
ํ ์ด๋ธ๋ช ์ ๋ค๋ฅธ ํ ์ด๋ธ๊ณผ ๊ฒน์น๋ฉด ์๋๊ณ , ํ ์ด๋ธ ๋ด๋ถ์ ์นผ๋ผ๋ค์ ์ด๋ฆ์ด ์ค๋ณต๋๋ฉด ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ ์นผ๋ผ๋ค์ ์ฝค๋ง๋ก ๊ตฌ๋ถ๋๊ณ ํญ์ ๋์ ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๋๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ซ์๊ฐ ์๋ ๋ฌธ์๋ก ์์๋์ด์ผํ๊ณ , -๊ฐ์ ํน์ ๋ฌธ์๋ ์ฌ์ฉํ ์ ์๋ค.
์ด์ ํ ์ด๋ธ ๋ด๋ถ์์ ์ฐ์ด๋ ๋ฐ์ดํฐ์ ์กฐ๊ฑด์ ๋ํด์ ์์๋ณด์.
PRIVARY KEY(๊ธฐ๋ณธํค)
ํ ์ด๋ธ์ ์ ์ฅ๋ ํ ๋ฐ์ดํฐ๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ๊ธฐ ์ํ ํค์ด๋ค.
ํ๋์ ํ ์ด๋ธ์ ํ๋์ ๊ธฐ๋ณธํค๋ง ๊ฐ๋ฅํ๋ฉฐ, ๊ธฐ๋ณธํค๋ฅผ ๊ตฌ์ฑํ๋ ์นผ๋ผ์๋ NULL์ ์ ๋ ฅํ ์ ์๋ค. ๊ธฐ๋ณธํค๋ฅผ ์์ฑํ๋ฉด ์๋์ผ๋ก UNIQUE ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๊ฒ ๋๋ค.(์๋์ UNIQUE)
UNIQUE(๊ณ ์ ํค)
๊ธฐ๋ณธํค๋ฅผ ์ ์ํ๋ ํค.
NOT NULL
NULL์ ๋ ฅ ๊ธ์งํ๋ค. ๋ํดํธ ์ํ์์๋ ๋ชจ๋ ์นผ๋ผ์์ NULL์ ํ๊ฐํ๊ณ ์์ง๋ง ์ด๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ์ ๋ ฅ์ด ํ์๊ฐ ๋๋ค.
CHECK
์ ๋ ฅํ ์ ์๋ ๊ฐ์ ๋ฒ์๋ฅผ ์ ํํ๋ค.
FOREIGN KEY
์ธ๋ํค๋ก, ๊ธฐ๋ณธํค๋ฅผ ๋ค๋ฅธ ํ ์ด๋ธ์ ์ธ๋ํค๋ก ๋ณต์ฌํ๋ ๊ฒฝ์ฐ ์๊ธด๋ค.
์ด์ ์ค์ ์ผ๋ก ๊ฐ๋ณด์.
1. ๋ค์๊ณผ ๊ฐ์ด BUSEO ํ ์ด๋ธ์ ์์ฑํ ํ, ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ์์ค.
sol) SQL > CREATE TABLE BUSEO(
DEPTNO NUMBER NOT NULL,
DEPTNAME CHAR(10),
FLOOR NUMBER,
PRIMARY KEY(DEPTNO)
);
INSERT INTO BUSEO VALUES(1, 'MARKETING', 8);
INSERT INTO BUSEO VALUES(2, 'PLANNING', 10);
INSERT INTO BUSEO VALUES(3, 'DEVELOPING', 9);
INSERT INTO BUSEO VALUES (4, 'GENERAL', 7);
2. ์์ฑ๋ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ๋ณด์ด์์ค.
sol) SQL > desc buseo; // desc๋ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค๋ค.
3. BUSEO ํ ์ด๋ธ์ 'HOBBY'์ด์ ์๋์ ๊ฐ์ด ์ถ๊ฐํ์์ค.
HOBBY CHAR(8)
BIGO CHAR(8)
sol) SQL > alter table buseo add hobby char(8);
SQL > alter table buseo add bigo char(8); // add๋ ์นผ๋ผ์ ๋ค์ ์์ ์ด๋ ๊ฐ๋ฅํ๋ค.
4. BUSEO ํ ์ด๋ธ์ 'HOBBY'์ด์ ์๋์ ๊ฐ์ด ์์ ํ์์ค.
HOBBY VARCHAR2(10);
sol) SQL > alter table buseo modify hobby varchar2(10); // modify์ญ์ ์นผ๋ผ์ ๋ค์ ์์ ๊ณ ๋ฐ๋ก ์ ๋๋ค.
5. BUSEO ํ ์ด๋ธ ์ด๋ฆ์ BUSEO1์ผ๋ก ๋ณ๊ฒฝํ์์ค.
sol) SQL > rename buseo to buseo1;
6. BIGO ํ๋ ์ด๋ฆ์ REMARK๋ก ๋ณ๊ฒฝํ์์ค.
sol) SQL > alter table buseo1 rename column bigo to remark; //rename์ ๋ค์ column์ ์ ์ด์ผ ํ๋ค.
7. buseo1์ ๋ด์ฉ์ buseo2๋ก ๋ณต์ฌํ์์ค.
sol) SQL > create table buseo2 as select * from buseo1;
8. buseo2ํ ์ด๋ธ ๊ตฌ์กฐ๋ง ๋จ๊ธฐ๊ณ ๋ด์ฉ์ ๋ชจ๋ ์ญ์ ํ์์ค.
sol) truncate table buseo2;
9. buseo1์์ marketing๋ฐ์ดํฐ๋ฅผ ์ง์ฐ์์ค.
sol) delete from buseo1 where deptno = 1 // ๊ธฐ๋ณธํค๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ง์ด๋ค.
'์ ๊ณต ๊ณผ๋ชฉ > ๋ฐ์ดํฐ๋ฒ ์ด์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ๋ฒ ์ด์ค - ๊ธฐ์ด (0) | 2020.09.19 |
---|