Data Define Language
DDL์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ ๋ฐ์ดํฐ ์ ์ ์ธ์ด๋ ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ์์ฑ, ์์ , ์ ๊ฑฐ๋ฅผ ์ํ ๋ช ๋ น์ด๋ค์ด๋ค.
์ฐ๋ฆฌ๊ฐ ์์์ ๋ฐฐ์ด SELECT๋ ๋ฐ์ง์๋ฉด DML::Data Management Language ์ ํด๋นํ๋ค.
์์์ ์ฐ๋ฆฌ๋ ์ด๋ฐ ๋ฌธ์ฅ์ ๋ดค์ ๊ฒ์ด๋ค
SELECT * FROM STUDENT_TABLE;
SELECT student_id FROM STUDENT_TABLE
ORDER BY name DESC;
์ด๋ค์ ๊ฒฐ๊ณผ๊ฐ ์ด๋ค ์์ผ๋ก ๋์ํ๊ณ ์กฐ๊ฑด์ ๋ฐ๋์ง ๊ถ๊ธ ํ๋ค๋ฉด SELECT ๋ฌธ ํน์ SQL๋ฌธ ๊ธฐ์ด Section์ ๊ฐ์ ํ์ธํ๊ธธ ๋ฐ๋๋ค.
๋ฌธ์ฅ์ ๊ฒฐ๊ณผ์ ํต์ฌ์ ํ ์ด๋ธ ์์ฒด์ ๋ณ๊ฒฝ์ ์๋ค. ๋ผ๋ ์ ์ ์๋ค.
์ฐ๋ฆฌ๋ DML๋ก ํ
์ด๋ธ ์์ฒด์ ๋ณ๊ฒฝ์ ํ ์ ์์ง๋ง ์์ผ๋ก ๋ฐฐ์ฐ๊ฒ๋ DDL์ ๋ฐฐ์ฐ๊ฒ ๋๋ค๋ฉด ํ
์ด๋ธ์
- ์ญ์ ํ๊ฑฐ๋
- ์์ ๋๋
- ์์ฑ ํ ์ ์๊ฒ ๋๋ค.
์ง๊ธ๊น์ง๋ SELECT ๋ฐ์ ๋ฐฐ์ฐ์ง ์์์ง๋ง ์ถํ์ DML์ INSERT, UPDATE๋ DELETE์ ๋ํด์๋ ๋ค๋ฃจ๊ฒ ๋ค.
๊ทธ๋ผ ์ญ์ , ์์ , ์์ฑ์ DDL์ ๊ด์ ์์ ํ์ตํด๋ณด์.
ํ ์ด๋ธ ์์ฑ
CREATE TABLE
ํ ์ด๋ธ์ ์์ฑํ๋ ค๋ฉด ๋ช๋ช์ ์ ์ฝ ์กฐ๊ฑด์ ์ ์ํ๊ฑฐ๋, ๋ฐ์ดํฐ์ ํ์ ์ ์ ์ํด์ค์ผ ํ๋ค.
ํ ์ด๋ธ ์์ฑ ์ ์ฝ์กฐ๊ฑด
ํ
์ด๋ธ์ ์์ฑ ์ ์ฝ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๋ฌธ์๋ก ์์ํ๋ฉฐ 30์ ์ด๋ด๋ก ์์ฑํด์ผ ํ๋ค.
- ๋ฌธ์, ์ซ์, ํน์๋ฌธ์
(_, &, #)
๋ง ์ฌ์ฉํ ์ ์๋ค. - ๋์๋ฌธ์ ๊ตฌ๋ถ์ด ์๋ค. ๋ง์ฝ ์๋ฌธ์๋ก ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด ์์๋ฐ์ดํ๋ก ๋ฌถ์ด์ค์ผ ํ๋ค.
- ๋ค๋ฅธ ๊ฐ์ฒด์ ์ด๋ฆ๊ณผ ์ค๋ณต๋์ด์ ์๋๋ค.
๋ญ ๋ง์ด ์ด๋ ต์ง ํ ๋ฒ ์ฝ์ด๋ณด๋ฉด ์ด์ฉ๋ฉด ๋น์ฐํ ์ด์ผ๊ธฐ๋ค์ผ ์ ์์ง๋ง ์ค์ ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ ์ฝ์กฐ๊ฑด์ ๋ฌด์ํ๊ณ ์งํํ๋ค๊ฐ ํ๋ค์ด์ง ์ ์ด ๋ช ๋ฒ์๊ธฐ ๋๋ฌธ์ ๋์ถฉ ์๋ค๊ณ ๋์ด๊ฐ๋ ๊ฒ ๋ณด๋ค ํ ๋ฒ ์ฝ์ด๋ณด๋ ๊ฒ์ด ๋ค์์ ํ๋ฅผ ์ต์ํ ํ๋ ๊ธธ์ด ๋ ์ ์๋ค.
์ด์ ์์ฑ์ ์ํ ๊ธฐ๋ณธ ํ์๊ณผ ์กฐ๊ฑด์ ๋ํด์ ์์๋ณด์
CREATE TABLE [schema.] table_name
(column datatype[DEFAULT expression][column_constraint], ...]);
ํ์์ ์ ๋ง์ ๋ง ๊ฐ๋จํ๋ฐ ์ด๋ ๊ฒ ๊ธ๋ก ์จ๋ณด๋ ๋ณต์กํด๋ณด์ธ๋ค.. ํ๋์ฉ ํ์ด์ ์ค๋ช ํ์๋ฉด
- CREATE TALBE : ํ ์ด๋ธ ์์ฑ ๋ช ๋ น์ด
- column : ํ ์ด๋ธ์ ํฌํจ๋๋ ์ปฌ๋ผ
- datatype : ์ปฌ๋ผ์ ํด๋นํ๋ ๋ฐ์ดํฐ ํ์
- DEFAULT expression : ๋ฐ์ดํฐ ์ ๋ ฅ ์ ๊ฐ์ด ์๋ต๋ ๊ฒฝ์ฐ ์ ๋ ฅ๋๋ DEFAULT ๊ฐ
- column_constraint : ์ปฌ๋ผ์ ์ ์๋๋ ์ ์ฝ์กฐ๊ฑด
๊ฐ๋จํ๊ฒ ์ฌ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ํ ์ด๋ธ์ ์์ฑํด๋ณด์
CREATE TABLE emp01(
empno number(4),
ename varchar2(15),
sal number(7, 3)
);
ํ ์ด๋ธ ์์ (๊ตฌ์กฐ ๋ณ๊ฒฝ)
ALTER TABLE
์์์ ๋ฐ๋ผํ๋ผ๋ ๋๋ก ํ ์ด๋ธ์ ์์ฑํ๋ค.
ํ์ง๋ง ๋ง์ฝ ์์ ํ
์ด๋ธ์์ sal ์นผ๋ผ์ number(8, 4)
๋ก ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๊ฑฐ๋, ์๋ก์ด comm์ด๋ผ๋ ์นผ๋ผ์ ์ถ๊ฐํ๊ณ ์ถ์๋๋ ํ
์ด๋ธ ์์ ์ ์ํ ALTER ๋ช
๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
๋ํ ํ
์ด๋ธ ์์ ์๋ ์ฌ๋ฌ ์กฐ๊ฑด์ด ๋ถ์ ์ ์๋ค.
- ์ปฌ๋ผ ์ถ๊ฐ
- ์ปฌ๋ผ ๋ณ๊ฒฝ
- ์ปฌ๋ผ ์ ๊ฑฐ
์ปฌ๋ผ ์ถ๊ฐ :: ALTER TABLE ... ADD
์ปฌ๋ผ์ ์ถ๊ฐํ๊ธฐ ์ํ ๋ช ๋ น์ด๋ ADD ์ด๋ค.
ALTER TALBE table_name
ADD [column_name data_type DEFAULT expression] ...);
์ฌ๊ธฐ์ ๋์ค๋ data type ์ด๋ DEFAULT Expression์ ์์ CREATE TABLE์ ์นผ๋ผ ํ์๊ณผ ๋์ผํ๋ค.
๊ฐ๋จํ๊ฒ ์ฌ์ ํ ์ด๋ธ์์ ๋ ์ง ํ์ ์ ๊ฐ์ง๋ birth ์นผ๋ผ์ ์ถ๊ฐํด๋ณด์.
ALTER TABLE emp01
ADD (birth date);
์นผ๋ผ ๋ณ๊ฒฝ :: ALTER TABLE ... MODIFY
์นผ๋ผ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด์๋ MODIFY ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
ALTER TABLE table_name
MODIFY [column_name data_type DEFAULT expression]...);
์ฌ๊ธฐ์ ๋์ค๋ data type ์ด๋ DEFAULT Expression์ ์์ CREATE TABLE์ ์นผ๋ผ ํ์๊ณผ ๋์ผํ๋ค.
๊ฐ๋จํ๊ฒ **์ฌ์ ํ ์ด๋ธ์ ename ์นผ๋ผ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํด๋ณด์.
ALTER TABLE emp01
MODIFY (ename varchar(10);
์นผ๋ผ ์ ๊ฑฐ :: ALTER TABLE ... DROP COLUMN
์นผ๋ผ์ ์ ๊ฑฐํ๋ ๋ช ๋ น์ด๋ ์์ ALTER ๋ช ๋ น์ด๋ค๋ณด๋ค ์๋์ ์ผ๋ก ์ฝ๋ค.
๊ทธ ์ด์ ๋ ํ ์ด๋ธ์ ์นผ๋ผ์ ์์ฑํ๊ธฐ ์ํด์๋ ๋ค๋ฅธ ์ ์ฝ ์กฐ๊ฑด์ด ๋ถ๊ฒ ๋์ง๋ง ์ญ์ ๋ฅผ ํ๋ ๋ช ๋ น์ด์๋ ๋ค๋ฅธ ์ ์ฝ ์กฐ๊ฑด์ด ์์ด ์ญ์ ๋ช ๋ น๋ง ํด์ฃผ๋ฉด ๋์ด๊ธฐ ๋๋ฌธ์ด๋ค.
ALTER TABLE table_name
DROP COLUMN column_name;
๊ฐ๋จใทํ๊ฒ ์ฌ์ ํ ์ด๋ธ์์ ename ์นผ๋ผ์ ์์ ๋ณด์
ALTER TABLE emp01
DROP COLUMN ename;
ํ ์ด๋ธ ๋ช ๋ณ๊ฒฝ
ํ ์ด๋ธ ๋ช ์ ๋ณ๊ฒฝํ๋ ๋ช ๋ น์ด๋ ์กด์ฌํ๋ค.
์ ๋ง ๊ฐ๋จํ๋ค.
RENAME table_name01 to table_name02;
ํ ์ด๋ธ ์ญ์
ํ ์ด๋ธ์ ์ญ์ ์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
- ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ ๊ฑฐํ๊ธฐ
- ํ ์ด๋ธ์ ๋ชจ๋ ๊ฐ์ ์ ๊ฑฐํ๊ธฐ
DROP TABLE
ํ ์ด๋ธ ์ ์ฒด๋ฅผ ์ ๊ฑฐํ๋ ๋ช ๋ น์ด๋ก
DROP TABLE table_name;
TRUNCATE TABLE
TRUNCATE TALBE table_name;
๋๊ธ