자격증들/23) SQLD, SQLP
SQLD 3.1 - DDL(DATA DEFINITION LANGUAGE)
tonyhan18
2023. 5. 31. 21:40
728x90
DDL 강의
CHAR(13) 했는데 12자리만 채우면 나머지는 공백으로 채워짐
VARCHAR(50) 하면 정확한 공간 맞추어줌
DROP TABLE SQLD.TB_DEPT_TEMP PURGE;
CREATE TABLE SQLD.TB_DEPT_TEMP
(
DEPT_CD CHAR(6) NOT NULL,
DEPT_NM VARCHAR2(150) NOT NULL,
UPPER_DEPT_CD CHAR(6)
);
ALTER TABLE SQLD.TB_DEPT_TEMP ADD CONSTRAINT PK_TB_DEPT_TEMP PRIMARY KEY (DEPT_CD);
테이블을 만들어보자
ADD CONSTRAINT로 PK값은 DEPT_CD로 설정
DROP TABLE SQLD.TB_EMP_TEMP PURGE;
CREATE TABLE SQLD.TB_EMP_TEMP
(
EMP_NO CHAR(10) NOT NULL
, EMP_NM VARCHAR2(150) NOT NULL
, BIRTH_DE CHAR(8) NOT NULL
, LUNAR_YN CHAR(1) NOT NULL
, SEX_CD CHAR(3) NOT NULL
, ADDR VARCHAR2(1000) NOT NULL
, TEL_NO VARCHAR2(150) NOT NULL
, FINAL_EDU_SE_CD CHAR(3) NOT NULL
, SAL_TRANS_BANK_CD CHAR(3) NOT NULL
, SAL_TRANS_ACCNT_NO VARCHAR2(20) NOT NULL
, DIRECT_MANAGER_EMP_NO CHAR(10)
, DEPT_CD CHAR(6) NOT NULL
);
ALTER TABLE SQLD.TB_EMP_TEMP ADD CONSTRAINT PK_TB_EMP_TEMP PRIMARY KEY(EMP_NO);
ALTER TABLE SQLD.TB_EMP_TEMP ADD CONSTRAINT FK_TB_EMP_TEMP_01 FOREIGN KEY (DEPT_CD) REFERENCES SQLD.TB_DEPT_TEMP (DEPT_CD);
---
fk 는 보면 알겠지만 다수를 참조하는 쪽이 소수가 참조되는 쪽의 키 값을 FK 로 받아온다.
--- ADD 시 반드시 (괄호) 쳐 주어야 함
ALTER TABLE SQLD.TB_EMP_TEMP ADD (MARRIED_YN CHAR(1));
ALTER TABLE SQLD.TB_EMP_TEMP DROP COLUMN MARRIED_YN;
---
ALTER TABLE SQLD.TB_EMP_TEMP ADD (MARRIED_YN CHAR(1));
ALTER TABLE SQLD.TB_EMP_TEMP MODIFY(MARRIED_YN CHAR(1) DEFAULT 'N' NOT NULL NOVALIDATE);
--- DEFAULT 는 N, NOT NULL, 과거 데이터 상관없이 이제부터 N으로 데이터 저장
ALTER TABLE SQLD.TB_EMP_TEMP DROP COLUMN MARRIED_YN;
--- COLUMN 명 생성과 변경
CREATE TABLE SQLD.TB_EMP_TEMP_2
AS SELECT * FROM SQLD.TB_EMP_TEMP;
ALTER TABLE SQLD.TB_EMP_TEMP_2
RENAME COLUMN TEL_NO TO PHONE_NO;
ALTER TABLE SQLD.TB_EMP_TEMP_2
RENAME COLUMN PHONE_NO TO TEL_NO;
-- FK 드랍
ALTER TABLE SQLD.TB_EMP_TEMP DROP CONSTRAINT FK_TB_EMP_TEMP_01;
ALTER TABLE SQLD.TB_EMP_TEMP ADD CONSTRAINT FK_TB_EMP_TEMP_01 FOREIGN KEY(DEPT_CD) REFERENCES SQLD.TB_DEPT_TEMP (DEPT_CD);
RENAME TB_EMP_TEMP_2 TO TB_EMP_TEMP_3;
TRUNCATE TABLE TB_EMP_TEMP_2;
https://yurimac.tistory.com/34
DML(Data Manipulation Language)
728x90