DAY04. SQL Basic DDL (ํ ์ด๋ธ ์์ฑ,๊ตฌ์กฐ ๋ณ๊ฒฝ,์ญ์ )
- ํ ์ด๋ธ ์์ฑ, ๊ตฌ์กฐ ๋ณ๊ฒฝ, ์ญ์ โ
- ์๋ ์ปค๋ฐ (=auto commit)
โ
โโ
โ
Oracle์์ ์ ๊ณต๋๋ ๋ฐ์ดํฐํ์ ์ข ๋ฅ
VARCHAR2(n) ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์ ๋ฐ์ดํฐ(1~4000byte), ์ต์ํฌ๊ธฐ 1byte
CHAR(n) ๊ณ ์ ๊ธธ์ด ๋ฌธ์ ๋ฐ์ดํฐ(1~2000byte) , ์ต์ํฌ๊ธฐ 1byte
INT 4Byte ํฌ๊ธฐ์ ์ ์ ๋ฐ์ดํฐ
NUMBER(p,s) ์ ์ฒด p์๋ฆฌ ์ค ์์์ ์ดํ s์๋ฆฌ(p:1~38, s:-84~127)
DATE 7Byte(BC 4712๋ 1์ 1์ผ๋ถํฐ AD 9999๋ 12์ 31์ผ)
RAW(n) n Byte์ ์์ ์ด์ง ๋ฐ์ดํฐ(1~2000)
LONG ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์ ๋ฐ์ดํฐ(1~2Gbyte)
LONG RAW ๊ฐ๋ณ ๊ธธ์ด ์์ ์ด์ง ๋ฐ์ดํฐ(1~2Gbyte
โ
โ
1) ์์ฌ์นผ๋ผ(Pseudo Column)
- ์ค์ ํ ์ด๋ธ์ ์กด์ฌํ์ง ์์ ๊ฐ์ง ์นผ๋ผ(๊ฐ์ ๊ณต๊ฐ์์ ์ฌ์ฉ)
- SELECT์ WHERE์ ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
๋ํ์ ์ธ ์์ฌ์นผ๋ผ : ROWNUM๊ณผ ROWID
* ROWNUM : ๋ ์ฝ๋ ์กฐํ ์๋ฒ
* ROWID : ํ ์ด๋ธ ์์ฑ๊ณผ์ ์์ ์๋์ผ๋ก ๋ง๋ค์ด์ง๋ ์๋ณ๊ฐ๋ฅํ ๊ณ ์ ๊ฐโ
SELECT ROWNUM, empno, ename, ROWID -- ์์ ์๋ณ์ ๊ฐ ๋ถ์ฌ
FROM emp
WHERE ROWNUM <=10 ; --1๋ฒ๋ถํฐ 10๋ฒ๊น์ง ๊ฐ์ฅ ์ต๊ทผ์ ๋ฐ์ดํฐ ํ์ธ
โโ
๋ ์ฝ๋ ์๋ฒ ์ญ์ ๊ฒ์
SELECT ROWNUM, empno, ename, ROWID
FROM emp
WHERE ROWNUM <=5
ORDER BY ROWNUM DESC;
โ
โ
5๋ฒ~10๋ฒ์งธ ์ ์ฌ์ : ํน์ ๋ฒ์ ์กฐํ๋ ๋ถ๊ฐ๋ฅ
SELECT ROWNUM, empno, ename, ROWID
FROM emp
WHERE ROWNUM >=5 AND ROWNUM <=10;
โ
ํน์ ๋ฒ์ : subquery + ๋ณ์นญ ์ด์ฉ
SELECT rnum, empno, ename, sal
FROM (SELECT emp.*, ROWNUM rnum FROM emp) -- ํ
์ด๋ธ ๋์ฒด
WHERE rnum >= 5 AND rnum <=10;
sub query ๋ณ์นญ : main query SELECT, WHERE์ ์ด์ฉ
emp.* : main query์ emp์ ์นผ๋ผ์ ๋๊ธฐ๋ ์ญํ
โ
โ
โ
โ
2. ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํด์ ํ ์ด๋ธ ์์ฑ
๊ธฐ์กด ํ ์ด๋ธ์ ์ด์ฉํด์ ์๋ก์ด ํ ์ด๋ธ์ ์์ฑ
/*
main qeury -- 2์ฐจ ์คํ
AS
sub query; -- 1์ฐจ ์คํ
*/
CREATE TABLE emp02 -- ์ ์ฒด๋ด์ฉ+๊ตฌ์กฐ๊ฐ ๋ชจ๋ ๊ฐ๊ณ , ์ด๋ฆ๋ง ๋ค๋ฆ
AS
SELECT * FROM emp;
SELECT * FROM emp02;
โโ
์ผ๋ถ๋ถ์ ์นผ๋ผ์ผ๋ก๋ง ํ ์ด๋ธ ์์ฑ
CREATE TABLE emp03
AS
SELECT empno, ename FROM emp;
โโ
ํน์ ํ์ ๋์์ผ๋ก ์๋ธ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํ ํ ์ด๋ธ ์์ฑ
CREATE TABLE emp05
AS
SELECT * FROM emp
WHERE deptno=10;
โ
ํ ์ด๋ธ์ ๊ตฌ์กฐ(์คํค๋ง)๋ง ๋ณต์ฌํ๊ธฐ
CREATE TABLE emp06
AS
SELECT * FROM emp WHERE 1=0; -- 1=0์ ๊ฑฐ์ง์ด๋ฏ๋ก ๋ฉ์ธ์ฟผ๋ฆฌ์ ๋ฐ์๋์ง ์๊ณ , ๊ตฌ์กฐ๋ง ๋ณต์ฌ๋จ
โ
[๊ณผ์ ] DEPT ํ ์ด๋ธ๊ณผ ๋์ผํ ๊ตฌ์กฐ์ ๋น ํ ์ด๋ธ์ ์์ฑํ์์ค. (ํ ์ด๋ธ์ ์ด๋ฆ์ DEPT02)
CREATE TABLE dept02
AS
SELECT*FROM dept WHERE 1=0;
โ
โ
โ
โ
3. ์ค์ํ ํ ์ด๋ธ ์์ฑ
CREATE TABLE emp01(
empno number(4),
ename varchar2(20),
sal number(7,2) -- (์ ์ฒด ์๋ฆฟ์, ์์์ ์๋ฆฟ์)
);
INSERT INTO emp01 VALUES (1001, 'hong', 1234.1);
INSERT INTO emp01 VALUES (1002, 'lee', 1234.123); -- ์ ์ฒด ์๋ฆฌ์๊ฐ ๋์ง ์๋๋ค๋ฉด, ์์์ 3๋ฒ์งธ ์๋ฆฌ์์ ๋ฐ์ฌ๋ฆผ๋์ด ๋ฐ์๋๋ค
INSERT INTO emp01 VALUES (1002, 'kang', 123456.123); -- ์ ์ฒด๊ฐ 8์๋ฆฌ์ด๋ฏ๋ก error ๋ฐ์
Constraint (ํ ์ด๋ธ ์ ์ฝ์กฐ๊ฑด)
โ1. PRIMARY KEY(PK) ์ ์ผํ๊ฒ ํ ์ด๋ธ์ ๊ฐํ์ ์๋ณ(NOT NULL๊ณผ UNIQU E์กฐ๊ฑด ๋ง์กฑ)
2. FOREIGN KEY(FK) ์ด๊ณผ ์ฐธ์กฐ๋ ์ด ์ฌ์ด์ ์ธ๋ํค ๊ด๊ณ๋ฅผ ์ ์ฉํ๊ณ ์ค์
3. UNIQUE key(UK) ํ ์ด๋ธ์ ๋ชจ๋ ํ์ ์ ์ผํ๊ฒ ํ๋ ๊ฐ์ ๊ฐ์ง ์ด(NUL L ํ์ฉ)
4. NOT NULL(NN) ์ด์ NULL๊ฐ์ ํฌํจํ ์ ์๋ค.
5. CHECK(CK) ์ฐธ์ด์ด์ผ ํ๋ ์กฐ๊ฑด์ ์ง์ ํจ(๋๋ถ๋ถ ์ ๋ฌด ๊ท์น ์ค์ )
โ
โ
โ
โ
์ ์ฝ ์กฐ๊ฑด ์ ์ ๋ฐฉ๋ฒ
1) ์นผ๋ผ LEVEL ์ ์ฝ ์กฐ๊ฑด(COLUMN LEVEL CONSTRAINT)
์ด(์นผ๋ผ)๋ณ๋ก ์ ์ฝ ์กฐ๊ฑด์ ์ ์ํ๋ค.
๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด 5๊ฐ์ง๋ฅผ ๋ชจ๋ ์ ์ฉํ ์ ์๋ค.
NOT NULL์ ์ฝ ์กฐ๊ฑด์ ์นผ๋ผ LEVEL์์๋ง ๊ฐ๋ฅํ๋ค.
โ
โ
โ
โ
2) ํ ์ด๋ธ LEVEL ์ ์ฝ ์กฐ๊ฑด(TABLE LEVEL CONSTRAINT)
ํ ์ด๋ธ์ ์นผ๋ผ ์ ์์๋ ๊ฐ๋ณ์ ์ผ๋ก ์ ์ํ๋ค.
ํ๋ ์ด์์ ์ด์ ์ฐธ์กฐํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค.
NOT NULL์ ์ ์ธํ ๋๋จธ์ง ์ ์ฝ ์กฐ๊ฑด๋ง ์ ์
โ
(1) PRIMARY KEY (PK)
column datatype [CONSTRAINT constraint_name] PRIMARY KEY (col1[,col2,..])
ํ ์ด๋ธ์ ๋ํ ๊ธฐ๋ณธ ํค๋ฅผ ์์ฑํ๋ค.
ํ๋์ ๊ธฐ๋ณธ ํค๋ง์ด ํ ์ด๋ธ์ ์กด์ฌํ ์ ์๋ค.
PRIMARY KEY ์ ์ฝ ์กฐ๊ฑด์ ํ ์ด๋ธ์์ ๊ฐํ์ ์ ์ผํ๊ฒ ์๋ณํ๋ ์ด ๋๋ ์ด์ ์งํฉ์ด๋ค.(UNIQUE์ NOT NULL์กฐ๊ฑด์ ๋ง์กฑ)
์ด ์ ์ฝ ์กฐ๊ฑด์ ์ด ๋๋ ์ด์ ์งํฉ์ ์ ์ผ์ฑ์ ์๊ตฌํ๊ณ NULL๊ฐ์ ํฌํจํ ์ ์๋ค.
UNIQUE INDEX๊ฐ ์๋ ์์ฑ๋๋ค.
โ
1) ๊ธฐ๋ณธํค (primary key) : ์๋ฃ ๊ฒ์์ฉ ์นผ๋ผ
CREATE TABLE test_tab1(
id number(2) PRIMARY KEY, -- ์นผ๋ผ ๋ ๋ฒจ๋ก ๊ธฐ๋ณธํค ์ค์
name varchar(10)
);
CREATE TABLE test_tab2(
id number(2),
name varchar(10),
PRIMARY KEY(id) -- ํ
์ด๋ธ ๋ ๋ฒจ๋ก ๊ธฐ๋ณธํค ์ค์
);
โ
โ(2) FOREIGN KEY (FK)
column datatype [CONSTRAINT constraint_name] REFERENCES table_ name (column1[,column2,..] [ON DELETE CASCADE])
์ธ๋ํค(FOREIGN KEY)๋ ์ฐธ์กฐํ๋ ํ ์ด๋ธ์์ ์ ์ํ๋ค.
MASTER TABLE์ PRIMARY KEY,UNIQUE KEY๋ก ์ ์๋ ์ด์ ์ง์ ํ ์ ์์ผ๋ฉฐ ์ด์ ๊ฐ๊ณผ ์ผ์นํ๊ฑฐ๋ NULL๊ฐ์ด์ด์ผ ํ๋ค.
FOREIGN KEY๋ ์ด ๋๋ ์ด์ ์งํฉ์ ์ง์ ํ ์ ์์ผ๋ฉฐ ๋์ผ ํ ์ด๋ธ ๋๋ ๋ค๋ฅธ ํ ์ด๋ธ๊ฐ์ ๊ด๊ณ๋ฅผ ์ง์ ํ ์ ์๋ค.
ON DELETE CASCADE์ ์ฌ์ฉํ์ฌ DETAIL TABLE์์ ๊ด๋ จ๋ ํ์ ์ญ์ ํ ๊ณ MASTER TABLE์์ ์ญ์ ๋ฅผ ํ์ฉํ ์ ์๋ค
โ
์ธ๋ํค ํฌํจ๋ table ์์ฑ (=๊ฑฐ๋ ํ ์ด๋ธ)
CREATE TABLE emp_tab(
empno number(4) PRIMARY KEY, -- ๊ฑฐ๋ํ
์ด๋ธ ์์ฒด์ ๊ธฐ๋ณธํค
ename varchar(30),
sal number(7),
deptno number(2) NOT NULL, -- ์ธ๋ํค
FOREIGN KEY(deptno) REFERENCES dept_tab(deptno) -- ์ฐธ์กฐํ๊ณ ์ ํ๋ ํ
์ด๋ธ ๋ช
์
);
INSERT INTO emp_tab VALUES (1001, 'ํ๊ธธ๋', 2500000, 1);
INSERT INTO emp_tab VALUES (1002, '์ ๊ด์', 3500000, 2);
INSERT INTO emp_tab VALUES (1003, '๊ฐํธ๋', 4500000, 3); -- error : ์ฐธ์กฐ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด ์๋ฐฐ
SELECT * FROM emp_tab;
โ
๋ฌธ์ ) sub query๋ฅผ ์ด์ฉํด์ ์ฌ๋ฒ์ด 1002์ธ ์ฌ์์ ๋ถ์์ ๋ณด ์ถ๋ ฅ
sub ํ ์ด๋ธ : emp_tab, main ํ ์ด๋ธ : dept_tab
SELECT *
FROM dept_tab
WHERE deptno =
(SELECT deptno FROM emp_tab WHERE empno=1002);
โโ
(3) UNIQUE KEY (UK)
column datatype [CONSTRAINT constraint_name] UNIQUE
UNIQUE Key ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด์ ์ด ๋๋ ์ด ์งํฉ์ ๊ฐ๋ค์ด ์ ์ผํด์ผ ํ๋ค.
์ค๋ณต๋ ๊ฐ์ ๊ฐ์ง๋ ํ์ด ์กด์ฌํ ์ ์์์ ์๋ฏธํ๋ค.
PRIMARY KEY์ ์ ์ฌํ๋ NULL์ ํ์ฉํ๋ค.
์ด์ด ํ๋ ์ด์ ํฌํจ๋์ด ์๋ค๋ฉด composite unique key๋ผ ๋ถ๋ฅธ๋ค.
UNIQUE Key์ ๋ํ์ฌ UNIQUE INDEX๊ฐ ์๋ ์์ฑ๋๋ค.โ
CREATE TABLE UNI_TAB1 (
DEPTNO NUMBER(2) CONSTRAINT UNI_TAB_DEPTNO_UK UNIQUE, -- ์นผ๋ผ level : ์ค๋ณต ๋ถ๊ฐ
DNAME CHAR(14),
LOC CHAR(13));
INSERT INTO UNI_TAB1 VALUES(1,'AAAA','BBBB');
INSERT INTO UNI_TAB1(dname, loc) VALUES('BBBB','CCCC'); -- ์ค๋ณต์ ๋ถ๊ฐ๋ฅํ์ง๋ง null(์๋ต)์ ํ์ฉ
INSERT INTO UNI_TAB1(dname, loc) VALUES('1','BBBB','CCCC'); -- error๋ฐ์ : ์ค๋ณต๋ถ๊ฐ ์ ์ฝ์กฐ๊ฑด๋๋ฌธ์
SELECT * FROM uni_tab1;
โโ
(4) NOT NULL (NN)
column datatype [CONSTRAINT constraint_name] NOT NULL
NOT NULL ์ ์ฝ ์กฐ๊ฑด์ ์ด์์ NULL์ ํ์ฉํ์ง ์๋๋ก ๋ณด์ฆํ๋ค.
NOT NULL ์ ์ฝ ์กฐ๊ฑด์ด ์๋ ์ด์ DEFAULT๋ก NULL์ ํ์ฉํ๋ค.
NOT NULL ์ ์ฝ ์กฐ๊ฑด์ ์นผ๋ผ ์ ์ฝ์กฐ๊ฑด์์๋ง ๊ฐ๋ฅํ๋ค.
โโ
(5) CHECK (CK)
column datatype [CONSTRAINT constraint_name] CHECK (condition)
ํน์ ์ด(์นผ๋ผ)์ ๋ํด์ ์กฐ๊ฑด์ ์ง์ ํ์ฌ ์กฐ๊ฑด์ ๋ง์กฑํ์ง๋์ง๋ฅผ ์ ๊ฒํ๋ค.
์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ ๊ฐ์ด ์ ์ฅ๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ๋ฐํํ๋ค.
๋ค์๊ณผ ๊ฐ์ ํํ์์ ํ์ฉ๋์ง ์๋๋ค.
– CURRVAL, NEXTVAL, LEVEL, ROWNUM์ ๋ํ ์ฐธ์กฐ
– SYSDATE, UID, USER, USERENV ํจ์์ ๋ํ ํธ์ถ
– ๋ค๋ฅธ ํ์ ์๋ ๊ฐ์ ์ฐธ์กฐํ๋ ์ง์
– ORACLE SERVER๊ฐ ์ฌ์ฉํ๋ ์์ฝ์ด
โ
CREATE TABLE CK_TAB (
DEPTNO NUMBER(2) NOT NULL CHECK (DEPTNO IN (10,20,30,40,50)), -- ์ฒซ ๋ฒ์งธ ์ ์ฝ์กฐ๊ฑด : NOT NULL, ๋ ๋ฒ์งธ ์ ์ฝ์กฐ๊ฑด CEHCK์
DNAME CHAR(14),
LOC CHAR(13));
INSERT INTO CK_TAB VALUES(10,'AAAA','BBBB'); -- ๋ ์ฝ๋ ์ฝ์
INSERT INTO CK_TAB VALUES(60,'AAAA','BBBB'); -- CHECK์ ์ฝ ์กฐ๊ฑด ์๋ฐฐ. '60'์ CEHCK์ list์ ์ถ๊ฐํ๋ฉด ์ฑ๋ฆฝ
SQL DDL (๋ฐ์ดํฐ ์ ์์ด) ํ ์ด๋ธ ๊ตฌ์กฐ๋ณ๊ฒฝ
1. ALTER TABLE ๋ช ๋ น๋ฌธ
์นผ๋ผ ์ถ๊ฐ, ์ญ์ , ํ์ ์ด๋ ๊ธธ์ด๋ฅผ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉ
ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ฒ ๋๋ฉด ๊ธฐ์กด์ ์ ์ฅ๋์ด ์๋ ๋ฐ์ดํฐ์ ์ํฅ์ ์ค๋ค.
โ
โ
1) ALTER TABLE ADD
ALTER TABLE table_name ADD (column_name, data_type expr, …)
๊ธฐ์กด ํ ์ด๋ธ์ ์๋ก์ด ์นผ๋ผ ์ถ๊ฐ
์๋ก์ด ์นผ๋ผ์ ํ ์ด๋ธ ๋งจ ๋ง์ง๋ง์ ์ถ๊ฐ๋๋ฏ๋ก ์์ ์ด ์ํ๋ ์์น ์ ๋ง๋ค์ด ๋ฃ์ ์ ์๋ค.
๋ํ ์ด๋ฏธ ์ด์ ์ ์ถ๊ฐํด ๋์ ๋ก์ฐ๊ฐ ์กด์ฌํ๋ค๋ฉด ๊ทธ ๋ก์ฐ์๋ ์นผ๋ผ ์ด ์ถ๊ฐ๋์ง๋ง, ์นผ๋ผ ๊ฐ์ NULL ๊ฐ์ผ๋ก ์ ๋ ฅ๋๋ค.
โ
ALTER TABLE emp01
ADD (job varchar(9)); -- ์ด๋ฏธ ์ฌ์ฉ์ค์ธ ํ
์ด๋ธ์ ์ ์นผ๋ผ job์ ์ถ๊ฐํ๋ฉด ํด๋น ์นผ๋ผ์๋ null๊ฐ์ด ์ฑ์์ง๋ค
โ
2) ALTER TABLE MODIFY๋ฌธ
์นผ๋ผ์ ๋ํด์ ๋ฐ์ดํฐ ํ์ ์ด๋ ํฌ๊ธฐ, ๊ธฐ๋ณธ ๊ฐ๋ค์ ๋ณ๊ฒฝ๊ฐ๋ฅํ๋ค (์ ์ฝ์กฐ๊ฑด์ ์์ ๋ถ๊ฐ)
โ
์นผ๋ผ์์ : ์๋ฃํ, ํฌ๊ธฐ๋ณ๊ฒฝ
ALTER TABLE table_name MODIFY (column_name, data_type expr, …);
ALTER TABLE emp01
MODIFY(JOB VARCHAR2(30)); -- varvhar(9) -> (30)
DESC emp01;
โ
์นผ๋ผ๋ช ์์ : sal -> pay
ALTER TABLE emp01 RENAME COLUMN sal to pay;
SELECT * FROM emp01;
โ
3) ALTER TABLE DROP๋ฌธ
ALTER TABLE table_name DROP COLUMN column_name;
โ
์นผ๋ผ ์ญ์ :
ALTER TABLE emp01
DROP COLUMN job;
โ4) ALTER TABLE RENAME๋ฌธโ
ํ ์ด๋ธ ์ด๋ฆ ๋ณ๊ฒฝ :
ALTER TABLE emp01 RENAME TO emp01_copy;
โ* SCOTT์ฌ์ฉ์์ ์ ์ฒด ํ ์ด๋ธ ๋ชฉ๋ก ๋ณด๊ธฐ
SELECT * FROM tab; --tab์ ์์ฌํ ์ด๋ธ
โ
โ
โ
โ
โ
โ
โ
SQL DDL (๋ฐ์ดํฐ ์ ์์ด) ์ ์ฒด ๋ ์ฝ๋ ์ ๊ฑฐ
TRUNCATE
๊ธฐ์กด์ ์ฌ์ฉํ๋ ํ ์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋(row)๋ฅผ ์ ๊ฑฐ
TRUNCATE TABLE table_nameโ
SELECT * FROM emp01_copy;
TRUNCATE TABLE emp01_copy;
โ
SQL DDL (๋ฐ์ดํฐ ์ ์์ด) ์ ์ฒด ํ ์ด๋ธ ์ ๊ฑฐ, ๋ฐ์ดํฐ ๋ณต์
1) ์ ์ฒด ํ ์ด๋ธ ๋ชฉ๋ก ๋ณด๊ธฐ
SELECT * FROM tab;
SELECT tname FROM tab;
โ
-- ํ ์ด๋ธ ๊ฒ์ ๊ธฐ๋ฅ
SELECT tname FROM tab WHERE tname = 'EMP'; -- ํ
์ด๋ธ๋ช
: ๋๋ฌธ์
โ
โ2) ํ ์ด๋ธ + ์์ํ์ผ ์ ๊ฑฐโ
DROP TABLE emp01_copy PURGE; -- ๋ณต๊ตฌ ๋ถ๊ฐ๋ฅ
โโ
3) ํ ์ด๋ธ ์ ๊ฑฐ
CREATE TABLE emp01_copy
AS
SELECT*FROM emp;
DROP TABLE emp01_copy; -- ์์ํ์ผ ์กด์ฌ
โ
โ
โ
4) ์์ํ์ผ ์ ๊ฑฐ
PURGE RECYCLEBIN;
SELECT*FROM tab;
Data Dictionary, View (๋ฐ์ดํฐ ์ฌ์ ๊ณผ ๋ทฐ)
๋ฐ์ดํฐ ์ฌ์ (Data Dictionary) = ๋ฉํ ๋ฐ์ดํฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ค์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์์คํ ํ ์ด๋ธ
์ฌ์ฉ์๊ฐ ํ ์ด๋ธ์ ์์ฑํ๊ฑฐ๋ ์ฌ์ฉ์๋ฅผ ๋ณ๊ฒฝํ๋ ๋ฑ์ ์์ ์ ํ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ํด ์๋์ผ๋ก ๊ฐฑ์ ๋๋ ํ ์ด๋ธ
์ฌ์ฉ์๋ ๋ฐ์ดํฐ ๋์ ๋๋ฆฌ์ ๋ด์ฉ์ ์ง์ ์์ ํ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ค. (์กฐํ ๋ถ๊ฐ)
โ
๋ฐ์ดํฐ ์ฌ์ ๋ทฐ(DATA Dictionary View)
๋ฐ์ดํฐ ์ฌ์ ์์ ๋ง๋ค์ด์ง ์ ๋ณด ์กฐํ ๊ธฐ๋ฅ ์ ๊ณต
DBA_XXXX : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๋ง ์ ๊ทผ ๊ฐ๋ฅํ ๊ฐ์ฒด ๋ฑ์ ์ ๋ณด ์กฐํ (DBA๋ ๋ชจ๋ ์ ๊ทผ ๊ฐ๋ฅํ๋ฏ๋ก ๊ฒฐ๊ตญ ๋๋น์ ์๋ ๋ชจ๋ ๊ฐ์ฒด์ ๊ดํ ์กฐํ)
ALL_XXXX : ์์ ๊ณ์ ์์ ๋๋ ๊ถํ์ ๋ถ์ฌ ๋ฐ์ ๊ฐ์ฒด ๋ฑ์ ๊ดํ ์ ๋ณด ์กฐํ
USER_XXXX : ์์ ์ ๊ณ์ ์ด ์์ ํ ๊ฐ์ฒด ๋ฑ์ ๊ดํ ์ ๋ณด ์กฐํ
โ
SHOW USER; -- command line;
โ
1) ํ ์ด๋ฏ ๋ชฉ๋ก ์กฐํ : USER_TABLES
SELECT * FROM USER_TABLES;
SELECT TABLE_NAME FROM USER_TABLES;
โโ
2) ์์ํ์ผ ์กฐํ ๋ทฐ : USER_RECYCLEBIN
DESC dept01;
DROP TABLE dept01; -- ํ
์ด๋ธ ์ญ์
SELECT * FROM USER_RECYCLEBIN; -- ์ญ์ ๋ ์์ํ์ผ ์กฐํ
OBJECT_NAME : ์์ํ์ผ๋ช
ORIGINAL_NAME : ์๋ณธํ์ผ๋ช
โโ
3) ํ ์ด๋ธ ๋ณต์โ
FLASHBACK TABLE "์์ํ์ผ๋ช " TO BEFORE DROP;
FLASHBACK TABLE "BIN$KhiwkkL3Q9+7pzWAUWjg1A==$0" TO BEFORE