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 |