GiantStepDEV
article thumbnail

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;
profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!