본문 바로가기

DB

[SQL] DCL 예제

1. 아래 주어진 데이터 모델과 같은 테이블 및 PK제약 조건을 생성하는 DDL 작성하기(DBMS는 Oracle 기준)

PRODUCT

ID: VARCHAR(10) NOT NULL
NAME: VARCHAR(100) NOT NULL
REG_DT: DATE NOT NULL
REGR_NO: NUMBER(10) NULL

 

방법1: 테이블 생성과 제약조건 한번에 작성하기

CREATE TABLE PRODUCT
(ID VARCHAR(10) NOT NULL
, NAME VARCHAR(100) NOT NULL
, REG_DT DATE NOT NULL
, REGR_NO NUMBER(10)
, CONSTRAINT PRODUCT_PK PRIMARY KEY (ID));

 

방법2: 테이블 생성 후, 수정(ALTER)을 이용하여 제약조건 추가하기

CREATE TABLE PRODUCT
(ID VARCHAR(10) NOT NULL
, NAME VARCHAR(100) NOT NULL
, REG_DT DATE NOT NULL
, REGR_NO NUMBER(10));

ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_PK PRIMARY KEY (ID);

 

 

2. 왼쪽 테이블을 오른쪽 테이블과 같이 변경하고자 할 때 SQL 문장 작성하기

테이블명: 기관분류

분류ID: VARCHAR(10) NOT NULL 분류ID: VARCHAR(10) NOT NULL
분류명:  VARCHAR(10) NOT NULL
등록일자:  VARCHAR(10) NULL
분류명:  VARCHAR(30) NOT NULL
등록일자: DATE NOT  NULL

 

// Oracle
ALTER TABLE 기관분류 MODIFY (분류명 VARCHAR(30) NOT NULL, 등록일자 DATE NOT NULL);


// SQL Server
ALTER TABLE 기관분류 ALTER 분류명 VARCHAR(30) NOT NULL;
ALTER TABLE 기관분류 ALTER 등록일자 DATE NOT NULL;

 

 

3. 아래와 같은 테이블 구조 정의하기. 이때 아직 부서가 정의되지 않은 사원은 DEPT_CODE(부서코드)를 '0000'으로 배치하고, JOIN_DATE(입사일자)에 Index를 생성할 것

테이블명: EMP

EMP_NO: VARCHAR(10) NOT NULL

EMP_NM: VARCHAR(30) NOT NULL
DEPT_CODE: VARCHAR(4) NOT NULL
JOIN_DATE: DATE NOT NULL
REGIST_DATE: DATE NULL

 

방법1: 테이블 생성과 제약조건 한번에 작성하기

CREATE TABLE EMP
(EMP_NO VARCHAR(10) PRIMARY KEY,
EMP_NM VARCHAR(30) NOT NULL,
DEPT_CODE VARCHAR(4) DEFAULT '0000' NOT NULL,
JOIN_DATE DATE NOT NULL,
REGIST_DATE DATE NULL);

CREATE INDEX IDX_EMP ON EMP (JOIN_DATE);

 

방법2: 테이블 생성 후, 수정(ALTER)을 이용하여 제약조건 추가하기

CREATE TABLE EMP
(EMP_NO VARCHAR(10) NOT NULL,
EMP_NM VARCHAR(30) NOT NULL,
DEPT_CODE VARCHAR(4) DEFAULT '0000' NOT NULL,
JOIN_DATE DATE NOT NULL,
REGIST_DATE DATE NULL);

ALTER TABLE EMP ADD CONSTRAINT EMP_PK PRIMARY KEY(EMP_NO);
CREATE INDEX IDX_EMP ON EMP (JOIN_DATE)

 

 

 

 

 

 

'DB' 카테고리의 다른 글

[SQL] NULL 관련 함수  (0) 2023.03.06
[SQL] 테이블 삭제, 테이블의 데이터 삭제 drop, truncate, delete비교  (0) 2023.03.05
📝 NoSQL이란?  (0) 2022.11.16
SQL 마무리 정리  (0) 2022.11.03
SQLD 자격증 문제 풀이 정리 7-8  (0) 2022.11.01