테이블을 생성할 때 CREATE를 이용해서 만든다. 문법은 다음과 같다.

 

 CREATE TABLE 테이블명 (컬럼이름 컬럼타입)

 

EX) CREATE TABLE DEPARTMENT

(DEPTNO NUMBER(2),

DNAME VARCHAR2(15),

LOC VARCHAR2(15));

 

위와 같이 입력하면 테이블 안에 컬럼들이 생성된다.

컬럼 안에 레코드를 넣기 위해서는 다음과 같이 입력한다.

 

EX) INSERT INTO DEPARTMENT (DEPTNO, DNAME, LOC) 

VALUES(10, '인사', '서울'); --NULL 값은 입력불가.

 

 

서브쿼리를 이용해서 테이블를 생성할 수 있다. 아래와 같은 방법을 앞글자만 따서 CTAS(씨탁스)라고도 부른다.

 

  CREATE TALBE 테이블명 [컬럼이름N] AS SUBQUERY

 

EX)

CREATE TABLE DEPTA (NO, NAME) 
AS
SELECT DEPTNO, DNAME FROM DEPT;

SELECT * FROM DEPTA

 


DEFAULT 

해당 테이블에 행을 입력할 때, 해당 컬럼에 값을 지정하지 않은 경우 자동으로 디폴트 값이 입력됨.

이는 NULL값이 입력되는 것을 방지하기 위한 것이다.

 

EX) CREATE TABLE DEF_TABLE
(NUM NUMBER(2), WRITEDAY DATE DEFAULT SYSDATE);

 

INSERT INTO DEF_TABLE VALUES (1, DEFAULT);

 

제한조건 (CONSTRAINTS)

부적절한 자료가 입력되는 것을 방지하기 위하여 CONSTRAINT을 사용한다.

제약 조건은 테이블 레벨 과 컬럼 레벨에서 규칙을 적용한다.

제약 조건은 종속성이 존재할 경우 테이블 삭제를 방지한다.

테이블에서 행이 삽입, 갱신 삭제 될 때마다 테이블에서 규칙을 적용한다.

일시적으로 DISABLE과 ENABLE 할 수 있다.

 

*컬럼 레벨 : 한 개의 컬럼에 한 개의 제약조건만 가능함

*테이블 레벨: 한 개 이상의 컬럼에 한 개의 제약 조건을 정의할 수 있다.

 참고로, NOT NULL은 테이블 레벨이 불가능하다.

 

ㅁPRIAMRY KEY

- 중복불가,

- NULL 값 입력불가.

 

ㅁUNIQUE

-중복불가

-NULL 값 허용

 

ㅁCHECK

-조건에 맞는 데이터 값만 입력가능하도록 만들어줌.

 

EX)

CREATE TABLE DEPARTMENT8

(DEPTNO NUMBER(2),

DNAME VARCHAR2(15),

LOC VARCHAR2(15),

CONSTRAINT DEPARTMENT8_DNAME_CK CHECK(DNAME IN ('개발','인사')));

 

ㅁFOREIGN

참조키라고 부르며 해당 테이블에서 다른 테이블을 참조할 때 올바른 데이터값만 참조 가능하도록 제약하는 방법이다.

 

EX)

 

A. 컬럼 레벨

CREATE TABLE EMP03
(EMPNO NUMBER(4) CONSTRAINT EMP03_EMPNO_PK PRIMARY KEY,
ENAME VARCHAR2(15),
DEPTNO NUMBER(2) CONSTRAINT EMP03_DEPTNO_FK 
REFERENCES DEPT02(DEPTNO));

 

B. 테이블 레벨

CREATE TABLE EMP03 
(EMPNO NUMBER(4) CONSTRAINT EMP03_EMPNO_PK PRIMARY KEY, 
ENAME VARCHAR2(15), 
DEPTNO NUMBER(2) CONSTRAINT EMP03_DEPTNO_FK  FOREIGN KEY(DEPTNO)
REFERENCES DEPT02(DEPTNO));

 

*테이블 레벨 사용 시 꼭 FOREIGN KEY 입력하기

 

 

'DataBase > DDL' 카테고리의 다른 글

#Java break 문  (0) 2021.07.13
7/5 SQL 테이블 제거 및 변경  (0) 2021.07.06
7/2 테이블 생성  (0) 2021.07.02
7/2 DDL  (0) 2021.07.02

+ Recent posts