Data Define Language
DB์ Table, User, Sequence ๋ฅผ Object๋ผ๊ณ ํจ
DB์ Object๋ฅผ ์์ฑ, ์์ , ์ญ์
- Create : ์์ฑ
- Alter: ์์
- Drop, Truncate : ์ญ์
- Rename : ์ด๋ฆ ์์
์ ์ฝ์กฐ๊ฑด
์ด์ํ(๊ฒฐํจ์ด ์๋) Data ๊ฐ ์ ๋ ฅ๋๋ ๊ฒ์ ๋ฐฉ์ง : ๋ฌด๊ฒฐ์ฑ ์์น
๋ฌด๊ฒฐ์ฑ ์์น์ ์๋ฐํ๋ฉด ์๋ฌ๋ฅผ ๋ฐ์ ์ํด
1. ์ ์ฝ ์กฐ๊ฑด ์กฐํ
- SELECT * FROM USER_CONSTRAINTS;
- SELECT * FROM USER_CONSTRAINT WHERE TABLE_NAME='ํ ์ด๋ธ๋ช ';
2. ์ ์ฝ ์กฐ๊ฑด ์ข ๋ฅ
1) NULL : NULL๊ฐ ํ์ฉ, Default
2) not NULL (NN) : NULL๊ฐ์ ํ์ฉํ์ง ์์(NULL์ด ๋ค์ด๊ฐ๋ฉด ์๋ฌ)
3) Unique (UK) : ๊ฐ์ ๊ฐ์ ํ์ฉํ์ง ์์(์ค๋ณต ๋ถ๊ฐ), NULL ์ ๋ ฅ ๊ฐ๋ฅ( ๊ทผ๋ฐ ํ๋ฒ๋ง ๋ค์ด๊ฐ์ผ ๋จ)
4) Primary Key (PK): Not NULL + Unique null ๊ฐ์ ํ์ฉํ์ง ์๊ณ ์ค๋ณต๋ ํ์ฉํ์ง ์๊ฒ ๋ค
5) Default : ๊ฐ์ ๋ฃ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ ์ ์ฉ
6) Check (C) : ์กฐ๊ฑด์ ๋ง๋ ๊ฐ๋ง ํ์ฉ(where์ ์กฐ๊ฑด์๊ณผ ๊ฐ์ ํ์)
7) Foerign Key
- ๋ค๋ฅธ ํ ์ด๋ธ์ ์ฐธ์กฐ
- ๋ค๋ฅธ ํ ์ด๋ธ๊ณผ ๊ด๊ณ(Relation) ์ฒ๋ฆฌ
- ์ฐธ์กฐ ๋๋ ํ ์ด๋ธ ๋ถ๋ชจํ ์ด๋ธ, ์ฐธ์กฐํ๋ ํ ์ด๋ธ์ ์์ํ ์ด๋ธ
- ๋ถ๋ชจํ ์ด๋ธ์ ์ปฌ๋ผ์ ๊ธฐ๋ณธํค (Primary key or Unique)๋ก ์ง์ ๋ ์ปฌ๋ผ์ด์ด์ผ ํจ
- ๋ถ๋ชจํ ์ด๋ธ์ ํ ์ด๋ธ์์ญ์ ํ๋ ค๋ฉด ์์ํ ์ด๋ธ์์ ์ฐธ์กฐํ๋ row๊ฐ ์์ด์ผ๋ง ์ญ์ ๊ฐ๋ฅ
์ฐธ์กฐ๋นํ๋ Table(Parent, ๋ถ๋ชจ), ์ฐธ์กฐํ๋ Table (Child, ์์)
* TABLE ์์ฑ์ ๋ถ๋ชจ์ TUPLE(ROW)๊ฐ ์ญ์ ๋ ๋ ์๋์ผ๋ก ์์์ TUPLE(ROW)์ ๋ณ๊ฒฝํ๋ ์ต์
A. ์์์ Tuple(row) ๋ ๊ฐ์ด ์ญ์ : ON DELETE CASCADE
EX) NUM NUMBER CONSTRAINT POINT_NUM_FK REFERENCES STUDENT(NUM) ON DELETE CASCADE,
B. ์์์ Attribute (Column) ์ NULL : ON DELETE SET NULL
EX) NUM NUMBER CONSTRAINT POINT_NUM_FK REFERENCES STUDENT(NUM) ON DELETE SET NULL,
3. ์ ์ฝ ์กฐ๊ฑด ์ค์ ๋ฐฉ์
1) ์ ์ฝ ์กฐ๊ฑด ์ด๋ฆ: ํ ์ด๋ธ๋ช _์ปฌ๋ผ๋ช _์ ์ฝ์กฐ๊ฑด์ ์ฝ์นญ
2) ์ ์ฝ ์กฐ๊ฑด ์ฝ์นญ
a. Primary key : PK (P)
b. Foreign key : FK (R)
c. Unique : U
d. Not null : NN (C)
e. Check : C
4. DB ๋ชจ๋ธ๋ง ์ฉ์ด ์ ๋ฆฌ
Table -> ๋ฆด๋ ์ด์ (Relation)
Column -> ์์ฑ (Attribute)
Row -> ํํ (Tuple)
์ธ์คํด์ค (Instance) : Data ๋ค์ ์งํฉ
์คํค๋ง(Schema) : ๊ธฐ๋ณธ๊ตฌ์กฐ (๋ผ๋, ์ปฌ๋ผ๋ช ), ์ด๋ค ์ปฌ๋ผ(Attribute) ๋ค๋ก ๊ตฌ์ฑ
๋๋ฉ์ธ(Domain) : ํ ์ปฌ๋ผ(Attribute) ์ ์๋ Data๋ค์ ์งํฉ
5. key์ ์ข ๋ฅ
1) ํ๋ณดํค (Candidate Key)
- ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ์์ฑ๋ค ์ค์์ ํํ์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋๋ก ํ๋ ๊ฒ๋ค
- ๋ชจ๋ ๋ฆด๋ ์ด์ ์ ํ๋ ์ด์์ ํ๋ณดํค๊ฐ ์์ด์ผ ํจ
- ์ค๋ณต์ด ์๋๋ Data๊ฐ ์๋ ์์ฑ๋ค (Attribute)
- Primary key(๊ธฐ๋ณธํค)๊ฐ ๋ ์ ์๋ ์์ฑ๋ค
2) ๊ธฐ๋ณธํค (Primary Key)
- ํ๋ณดํค ์ค์์ ํ๋๋ฅผ ์ ํ
- ๋ฆด๋ ์ด์ ์์ ํ๋์ tuple์ ๊ตฌ๋ณํ ์ ์๋ ์์ฑ
3) ๋์ฒดํค (Alternate key)
- ํ๋ณดํค ์ค์์ Primary key๋ฅผ ์ ์ธํ ๋๋จธ์ง
4) ์ํผํค (Super key)
- ์ ์ผ์ฑ ๋ง์กฑ, ์ต์์ฑ์ ๋ง์กฑํ์ง ์์ ๊ฒ
- ๋๊ฐ์ ์์ฑ(Attribute)์ ๋ชจ์์ ํ๋์ ํค๋ก ๋ง๋๋ ๊ฒ
5) ์ธ๋ํค (Foreign key)
- ๋ค๋ฅธ ๋ฆด๋ ์ด์ (Table)๊ณผ ์ฐธ์กฐ ๊ด๊ณ๋ฅผ ๋งบ์ ๋ ์ฌ์ฉ
- ์ธ๋ํค๋ก ์ง์ ๋๋ฉด Primary key์ ์๋ ๊ฐ์ ์ ๋ ฅํ ์ ์์
- ์ฐธ์กฐ๋นํ๋ Table(Parent, ๋ถ๋ชจ) , ์ฐธ์กฐํ๋ Table(Child, ์์)
- ๋ถ๋ชจ์ Tuple(Row) ๋ฅผ ์ญ์ ํ๋ ค๋ฉด ์ฐธ์กฐํ๋ ์์ Tuple(Row)๊ฐ ์์ด์ผ ํจ
- Table ์์ฑ์ ๋ถ๋ชจ์ Tuple(Row)๊ฐ ์ญ์ ๋ ๋ ์๋์ผ๋ก ์์์ Tuple(Row)์ ๋ณ๊ฒฝํ๋ ์ต์
a. ์์์ Tuple(Row)๋ ๊ฐ์ด ์ญ์ : ON DELETE CASCADE
b. ์์์ Attribute(Column)์ NULL : ON DELETE SET NULL
ex) CONSTRAINT POINT_NUM_FK REFERENCES STUDENT (NUM) ON DELETE SET NULL -- ON DELETE CASCADE
Table ์์ฑ ์์ ์ญ์
1. Table ์์ฑ
Create Table ํ ์ด๋ธ๋ช (
์ปฌ๋ผ๋ช 1 ๋ฐ์ดํฐํ์ ,
์ปฌ๋ผ๋ช 2 ๋ฐ์ดํฐํ์ ,
์ปฌ๋ผ๋ช 3 ๋ฐ์ดํฐํ์ ,
...
์ปฌ๋ผ๋ช 4 ๋ฐ์ดํฐํ์
)
a. ์ปฌ๋ผ๋ ๋ฒจ ๋ฐฉ์
CREATE TABLE ํ ์ด๋ธ๋ช (
์ปฌ๋ผ๋ช 1 ๋ฐ์ดํฐํ์ CONSTRAINT ์ ์ฝ์กฐ๊ฑด์ด๋ฆ ์ ์ฝ์กฐ๊ฑด,
์ปฌ๋ผ๋ช 2 ๋ฐ์ดํฐํ์ CONSTRAINT ์ ์ฝ์กฐ๊ฑด์ด๋ฆ ์ ์ฝ์กฐ๊ฑด,
์ปฌ๋ผ๋ช 3 ๋ฐ์ดํฐํ์ CONSTRAINT ์ ์ฝ์กฐ๊ฑด์ด๋ฆ REFERENCES ์ฐธ์กฐํ ํ ์ด๋ธ๋ช (์ฐธ์กฐํ ์ปฌ๋ผ๋ช )
-- ์ปฌ๋ผ๋ช ๊ณผ ์ฐธ์กฐํ ์ปฌ๋ผ๋ช ์ด ๊ฐ๋ค๋ฉด (์ฐธ์กฐํ ์ปฌ๋ผ๋ช ) ์๋ต ๊ฐ๋ฅ
...
)
b. ํ ์ด๋ธ๋ ๋ฒจ ๋ฐฉ์
CREATE TABLE ํ ์ด๋ธ๋ช (
์ปฌ๋ผ๋ช 1 ๋ฐ์ดํฐํ์ ,
์ปฌ๋ผ๋ช 2 ๋ฐ์ดํฐํ์ ,
...
CONSTRAINT ์ ์ฝ์กฐ๊ฑด์ด๋ฆ ์ ์ฝ์กฐ๊ฑด (์ ์ฉํ ์ปฌ๋ผ๋ช ),
CONSTRAINT ์ ์ฝ์กฐ๊ฑด์ด๋ฆ ์ ์ฝ์กฐ๊ฑด (์ ์ฉํ ์ปฌ๋ผ๋ช ),
CONSTRAINT ์ ์ฝ์กฐ๊ฑด์ด๋ฆ FOREIGN KEY (์ง์ ํ ์ปฌ๋ผ๋ช ) REFERENCES ์ฐธ์กฐํ ํ ์ด๋ธ๋ช (์ฐธ์กฐํ ์ปฌ๋ผ๋ช )
-- ์ง์ ํ ์ปฌ๋ผ๋ช ์ฐธ์กฐํ ์ปฌ๋ผ๋ช ์ด ๊ฐ์ ๊ฒฝ์ฐ (์ฐธ์กฐํ ์ปฌ๋ผ๋ช )์ ์๋ต ๊ฐ๋ฅ
...
)
c. ์ ์ฝ ์กฐ๊ฑด ์์ด ํ ์ด๋ธ ์์ฑ ํ ์ ์ฝ ์กฐ๊ฑด ์ถ๊ฐ
- NOT NULL ๊ณผ DEFAULT๋ ์ปฌ๋ผ ๋ ๋ฒจ ๋ฐฉ์์์๋ง ๊ฐ๋ฅ
- ์ปฌ๋ผ ๋ ๋ฒจ ๋ฐฉ์๊ณผ ํ ์ด๋ธ ๋ ๋ฒจ ๋ฐฉ์์ ํผ์ฉ์ด ๊ฐ๋ฅ
2. TABLE ์ญ์
1) DROP
- TABLE ์์ฒด๋ฅผ ์ญ์
- DROP TABLE ํ ์ด๋ธ๋ช
2) TRUNCATE
-TABLE ์ ์ญ์ ํ๋ ๊ฒ์ด ์๋๋ผ ๋ชจ๋ ROW(TUPLE) ์ ์ญ์
-TABLE ๊ตฌ์กฐ๋ฅผ ์ ์ง
-TRUNCATE TABLE ํ ์ด๋ธ๋ช
3) DML์ DELETE
- WHERE ์์ด ์ฌ์ฉํ๋ฉด ๋ชจ๋ ROW๊ฐ ์ญ์
EX) TEST TABLE์ 3๊ฐ์ DATA๊ฐ ์๋ ๊ฒฝ์ฐ
- DROP : ๊ตฌ์กฐ์ DATA๊ฐ ์ญ์
- TRUNCATE : ๊ตฌ์กฐ์ ์ง, ๋ฐ์ดํฐ ์ญ์
- DELETE : ๊ตฌ์กฐ ์ ์ง, ๋ฐ์ดํฐ ์ญ์ , ๋ฐ์ดํฐ๊ฐ ์๋ 3์ค๋ ์ ์ง(๋์ ๋ณด์ด์ง ์์ง๋ง)
4) RECYCLTBIN(ํด์งํต)
- DB์์ ์ญ์ ๋ TABLE์ ํด์งํต์ผ๋ก ์ด๋
- SELECT * FROM RECYCLEBIN : ํด์งํต ์กฐํ
- PURGE RECYCLEBIN : ํด์งํต ๋น์ฐ๊ธฐ, ๋ณต์ X
- DROP TABLE ํ ์ด๋ธ๋ช PURGE : ํด์งํต์ ์ ์ฅํ์ง ์๊ณ ๋ฐ๋ก ์ญ์ , ๋ณต์ X
- FLASHBACK TABLE ํ ์ด๋ธ๋ช TO BEFORE DROP : ํด์งํต์์ ๋ณต์
3. TABLE ์์
1) ์ปฌ๋ผ(Column)์ถ๊ฐ
์ฌ์ฉ๋ฒ
ALTER TABLE ํ ์ด๋ธ๋ช ADD (์ปฌ๋ผ๋ช DATATYPE)
2) ์ปฌ๋ผ(Column)์ญ์
์ฌ์ฉ๋ฒ
ALTER TABLE ํ ์ด๋ธ๋ช DROP COLUMN ์ปฌ๋ผ๋ช
3) ์ปฌ๋ผ(Column)์ด๋ฆ ๋ณ๊ฒฝ
์ฌ์ฉ๋ฒ
ALTER TABLE ํ ์ด๋ธ๋ช RENAME COLUMN ๊ธฐ์กด์ปฌ๋ผ๋ช TO ์๋ก์ด์ปฌ๋ผ๋ช
4) Column DataType ๋ณ๊ฒฝ
์ฌ์ฉ๋ฒ
ALTER TABLE ํ ์ด๋ธ๋ช MODIFY (COLUMN ๋ช DataType )
- ๋ณ๊ฒฝ ์ ์๋ ํด๋น ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ NULL๋ก ์์ (UPDATE)
- ๊ฐ์ DataType์ผ๋ก ๋ณ๊ฒฝํ ๊ฒฝ์ฐ๋ ๋ฐ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅ
- ๊ฐ์ DataType ์ด๋ผ๋ Size ๊ฐ ๋ง์ง ์์ผ๋ฉด ๋ฐ๋ก ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅ
5) Table์ ์ด๋ฆ์ ๋ณ๊ฒฝ
RENAME ๋ณ๊ฒฝ์ ํ ์ด๋ธ๋ช TO ์๋ก์ดํ ์ด๋ธ๋ช
- ๋ถ๋ชจํ ์ด๋ธ์ด๋ผ ํ๋๋ผ๋ ์์ํ ์ด๋ธ๊ณผ ์๊ด์์ด ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค( ์ฐธ์กฐํ ๊ฒ ์๋์ผ๋ก ๋ณ๊ฒฝ)
4. CONSTRAINT (์ ์ฝ์กฐ๊ฑด) ์์
- ๋ง๋ค์ด์ง ์ ์ฝ ์กฐ๊ฑด์ ์์ ์ด ๋ถ๊ฐ๋ฅ ํจ
->์ญ์ ํ๊ณ ์๋ก ์ถ๊ฐ
1) ์๋ก์ด ์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ
ALTER TABLE ํ ์ด๋ธ๋ช ADD CONSTRAINT ์ ์ฝ์กฐ๊ฑด์ด๋ฆ ์ ์ฝ์กฐ๊ฑด (์ถ๊ฐํ ์ปฌ๋ผ๋ช )
-> ์ ์ฝ์กฐ๊ฑด์ด๋ฆ์ POINT_NO_PK์ด๋ฐ๊ฑธ ๋งํ๋๋ฐ ๊ฐ๋ฐ์๊ฐ ์ค์ ํด์ฃผ๋ ๊ฒ
2) ์ ์ฝ ์กฐ๊ฑด ์ญ์
ALTER TABLE ํ ์ด๋ธ๋ช DROP CONSTRAINT ์ ์ฝ์กฐ๊ฑด์ด๋ฆ
EX)
ALTER TABLE BOARD DROP CONSTRAINT PK;
ALTER TABLE BOARD DROP CONSTRAINT BOARD_NAME_FK;
์ด๋ ๊ฒ๋ ์ธ ์ ์๊ธดํจ
ALTER TABLE ํ ์ด๋ธ๋ช DROP CONSTRAINT ์ ์ฝ์กฐ๊ฑด๋ช
EX) ALTER TABLE BOARD DROP CONSTRAINT PRIMARY KEY;
'23. Back-end > 23. DATABASE' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DDL SEQUENCE, ORCL SID ํ์ธ๋ฐฉ๋ฒ (0) | 2022.02.02 |
---|---|
DML (INSERT, UPDATE, DELETE) ์ ๋ฆฌ (0) | 2022.01.26 |
JOIN! (0) | 2022.01.26 |
๊ทธ๋ฃนํจ์, SUBQUERY, HAVING , ORDER BY (0) | 2022.01.22 |
SQL, DB BASIC DML (0) | 2022.01.21 |