DDL?
- Data Definition Language์ ์ค์๋ง๋ก ํ ์ด๋ธ์ ์์ฑ, ๋ณ๊ฒฝ, ์ญ์ ๊ด๋ จ ๊ธฐ๋ฅ์ ์ํ ํฉ๋๋ค.
- DDL ๋ช ๋ น์ด๋ ๋ฐ๋ก COMMIT ํ์ง ์์๋ ์ฆ์ ๋ฐ์๋ฉ๋๋ค.
TABLE?
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ์ฅ ๋จ์๋ก ๋ ์ฝ๋(ํ)๊ณผ ์ปฌ๋ผ(์ด)๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ ๋์๋ ์ธ๋ ํค(Foreign Key)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๐จ ์ฐธ๊ณ ๐จ
1. JPA๋ฅผ ํ๋ฉด DDL ์ปค๋งจ๋ ์๋ ๋ ค๋ ๋จ.
2. JAVA๋ก ๋น์ ํ๋ฉด DDL์ ํด๋์ค๋ฅผ ๋ง๋๋ ๊ฒ๊ณผ ์ ์ฌํจ.
- TABLE
: class
- COLUMN
: Instance Field
3. ํ ์ด๋ธ, ์ด ์ด๋ฆ ์์ฑ ๊ท์น์ JAVA์ ๋์ผํ๊ฒ ํ๋ ๊ฒ ๊ถ์ฅ
๐ธ ๋ฐ์ดํฐ ํ์
1. CHAR : ๊ณ ์ ๊ธธ์ด
์) ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ, ํธ๋ํฐ ๋ฒํธ ๋ฑ
2. VARCHAR2 : ๊ฐ๋ณ๊ธธ์ด
์) ์ฃผ์, ๋๊ธ ๋ฑ
๐ ํญ์ VARCHAR2๊ฐ ์ ๋ฆฌํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ณ ์ ๊ธธ์ด๋ฅผ ์ ํ ์ ์๋ ์ํฉ์ด๋ฉด CHAR๋ก ์ฐ๋๊ฒ ์ข์.
3. NUMBER : ์์, 0, ์์ / ๊ฐ๋ณ๊ธธ์ด
4. DATE
5. LONG, CLOB : ๊ธ์์๋ฅผ ๋ง์ด ๋ฐ์ ์ ์๊ธด ํ์ง๋ง JAVA๋ ์ฐ๊ฒฐํ ๋ ๊นจ์ง ์๋ ์์ด์ ์ ์ํด์ผ ํจ.
โญ ์ด๋ฏธ์ง, ํ์ผ์ D/B์ ์ฌ๋ฆฌ์ง ๋ง๊ณ , ๋ค๋ฅธ ๊ณณ์ ์ ์ฅ ํ ๋งํฌ ๋ฌธ์์ด๋ง ์ ์ฅํ ๊ฒ
CREATE TABLE(ํ ์ด๋ธ ์์ฑ)
1. ํ ์ด๋ธ์ ์๋ฃํ์ ์ ์ํ์ฌ ์๋กญ๊ฒ ์์ฑ
CREATE TABLE EMP_DDL(
EMPNO NUMBER(4),
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2)
);
2. ๊ธฐ์กด ํ ์ด๋ธ์ ์ด ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ์ฌ ์ ํ ์ด๋ธ ์์ฑ
CREATE TABLE DEPT_DDL
AS SELECT *
FROM DEPT;
3. ๊ธฐ์กด ํ ์ด๋ธ์ ์ด ๊ตฌ์กฐ๋ง ๋ณต์ฌํ์ฌ ์๋กญ๊ฒ ํ ์ด๋ธ ์์ฑ
CREATE TABLE DEPT_DDL_TEMP
AS SELECT *
FROM DEPT
WHERE 1 != 1;
4. ๋ ํ ์ด๋ธ ํฉ์ณ์ ์ด๋ง ๋ณต์ฌ
CREATE TABLE EMPDEPT_DDL
AS SELECT E.EMPNO, E.ENAME, E.JOB, E.MGR, E.HIREDATE, E.SAL,
E.COMM, E.DEPTNO, D.DNAME, D.LOC
FROM EMP E, DEPT D
WHERE 1 != 1;
ALTER(ํ ์ด๋ธ ๋ณ๊ฒฝ)
- ํ
์ด๋ธ์ ์ด ์ถ๊ฐ, ์ญ์ , ์ด์ ์๋ฃํ์ ๊ธธ์ด ๋ณ๊ฒฝ ๋ฑ ์ํ
๐ ๋ง์น JAVA ํด๋์ค์ ์ธ์คํด์ค ํ๋ ์ถ๊ฐํ๋ ๊ฒ๊ณผ ๋น์ทํจ.
*EMP ํ ์ด๋ธ ๋ณต์ฌ
CREATE TABLE EMP_ALT
AS SELECT * FROM EMP;
ADD (ํ ์ด๋ธ ์๋ก์ด ์ด ์ถ๊ฐ)
- ์ถ๊ฐ๋ ์ด์ ๋ํ ํ์๋ NULL ๊ฐ์ผ๋ก ์ ๋ ฅ ๋จ
ALTER TABLE EMP_ALT
ADD ISWORK CHAR(2);
RENAME (ํ ์ด๋ธ ์ด ์ด๋ฆ ๋ณ๊ฒฝ)
ALTER TABLE EMP_ALT
RENAME COLUMN ISWORK TO TEL;
MODIFY (ํ ์ด๋ธ ์ด ์๋ฃํ ๋ณ๊ฒฝ)
- ์๋ฃํ ๋ณ๊ฒฝ์ ์ด๋ฏธ ํด๋น ์ปฌ๋ผ์ ํ์ด ์กด์ฌํ๋ค๋ฉด ๋ณ๊ฒฝ ์๋ ์๋ ์์ต๋๋ค.
- ๊ธฐ์กด์ ์๋ฃํ์ ํฌ๊ธฐ๋ณด๋ค ํฌ๊ฒ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ฌธ์ ์ ๋จ
- ๊ธฐ์กด์ ์๋ฃํ์ ํฌ๊ธฐ๋ณด๋ค ์๊ฒ ๋ณ๊ฒฝ์ ํฌํจ๋ ๋ฐ์ดํฐ์ ์ํฅ์ ๋ฐ์ต๋๋ค.(์์ ์ค๋ฅ๋ ์๋)
ALTER TABLE EMP_ALT
MODIFY EMPNO NUMBER(2); -- ๊ธฐ์กด ์๋ฃํ ํฌ๊ธฐ๋ณด๋ค ์๊ฒ ๋ณ๊ฒฝํ๋ฉด ์ ์ฉ ์ ๋จ.
ALTER TABLE EMP_ALT
MODIFY EMPNO NUMBER(5); -- ๊ธฐ์กด ์๋ฃํ ํฌ๊ธฐ๋ณด๋ค ํฌ๋ฉด ๋ณ๊ฒฝ๋จ.
DROP (ํ ์ด๋ธ ํน์ ์ด ์ญ์ )
- ๊ฐ์ด ์์ด๋ ์ญ์
ALTER TABLE EMP_ALT
DROP COLUMN TEL;
RENAME(ํ ์ด๋ธ ์ด๋ฆ ๋ณ๊ฒฝ)
RENAME EMP_ALT TO EMP_RENAME;
TRUNCATE(ํ ์ด๋ธ ๋ฐ์ดํฐ ์ญ์ )
- ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ช ๋ น, ํ ์ด๋ธ ๊ตฌ์กฐ์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉฐ ROLLBACK ๋ถ๊ฐ
TRUNCATE TABLE EMP_RENAME;
DROP(ํ ์ด๋ธ ์ญ์ )
DROP TABLE EMP_RENAME;
'๐๏ธ Backend > Oracle' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ค๋ผํด(Oracle) - VIEW (๊ฐ์ ํ ์ด๋ธ) (0) | 2023.02.26 |
---|---|
์ค๋ผํด(Oracle) - ์ ์ฝ ์กฐ๊ฑด (0) | 2023.02.23 |
์ค๋ผํด(Oracle) - TCL (ํธ๋์ญ์ ) COMMIT, ROLLBACK (1) | 2023.02.23 |
์ค๋ผํด(Oracle) - DML(Data Manipulation Language) (0) | 2023.02.21 |
์ค๋ผํด(Oracle) - ์ข ํฉ ์ค์ต ๋ฌธ์ (HR ๊ณ์ ) (0) | 2023.02.21 |