본문 바로가기
데이터베이스/SQLD

[DDL] CREATE TABLE

by 나는 유찌 2020. 6. 7.

SQL 전문가 가이드 책을 보며 공부하고 포스팅 하였습니다.

 

 

 

 

 

구문 형식


CREATE TABLE 테이블이름 (
    칼럼명1	DATATYPE	[DEFAULT 형식],
    칼럼명2	DATATYPE	[DEFAULT 형식],
    칼럼명3	DATATYPE	[DEFAULT 형식]
);

 

 

 

 

제약조건


제약조건 종류

구분

설명

PRIMARY KEY

(기본키)

- 행 데이터를 고유하게 식별하기 위한 기본키를 정의

- 하나의 테이블에 하나의 기본키 제약만 정의

- 기본키 제약 = 고유키 제약 & NOT NULL 제약

UNIQUE KEY

(고유키)

행 데이터를 고유하게 식별하기 위한 고유키를 정의

NOT NULL

NULL 값의 입력을 금지

CHECK

- 입력할 수 있는 값의 범위 등을 제한

- TRUE OR FALSE로 평가할 수 있는 논리식을 지정

FOREIGN KEY

테이블 간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키로 복사하는 경우 외래키가 생성

 

 

 

CREATE TABLE 쿼리 예제


* oracle을 기준으로 작성하였습니다.

CREATE TABLE PLAYER (
    PLAYER_ID       CHAR(7)      NOT NULL,
    PLAYER_NAME     VARCHAR(20)  NOT NULL,
    TEAM_ID         CHAR(3)      NOT NULL,
    E_PLAYER_NAME   VARCHAR2(40),
    NICKNAME        VARCHAR2(30),
    JOIN_YYYY       CHAR(4),
    POSITION        VARCHAR2(10),
    BACK_NO         NUMBER(2),
    NATION          VARCHAR2(20),
    BIRTH_DATE      DATE,
    SOLAR           CHAR(1),
    HEIGHT          NUMBER(3),
    WEIGHT          NUMBER(3),
    CONSTRAINT PLAYER_PK PRIMARY KEY(PLAYER_ID),
    CONSTRAINT PLAYER_FK FOREIGN KEY(TEAM_ID) REFERENCES TEAM(TEAM_ID)
);
CREATE TABLE TEAM(
    TEAM_ID     CHAR(3)         NOT NULL,
    REGION_NAME VARCHAR2(8)     NOT NULL,
    TEAM_NAME   VARCHAR2(40)    NOT NULL,
    E_TEAM_NAME VARCHAR2(50),
    ORIG_YYYY   CHAR(4),
    STADIUM_ID  CHAR(3)         NOT NULL,
    ZIP_CODE1   CHAR(3),
    ZIP_CODE2   CHAR(3),
    ADDRESS     VARCHAR2(80),
    DDD         VARCHAR2(3),
    TEL         VARCHAR2(10),
    FAX         VARCHAR2(10),
    HOMEPAGE    VARCHAR2(50),
    OWNER       VARCHAR2(10),
    CONSTRAINT TEAM_PK PRIMARY KEY (TEAM_ID)
);

 

* 테이블 생성 시 주의 사항

- 대/소문자 구분은 하지 않는다. 하지만 기본적으로 테이블이나 칼럼명은 대문자로 만들어진다.

- 제약조건이 있으면 CONSTRANINT를 이용하여 추가합니다.

 

 

 

* 설명

PLAYER과 TEAM이라는 이름의 테이블을 생성하는 쿼리입니다.

PLAYER에서는 'PLAYER_ID', 'PLAYER_NAME', 'TEAM_ID'라는 칼럼에 NOT NULL 제약 조건을 통해 NULL 입력을 허용하지 않도록 합니다.

 

또한, 각 테이블 에 'PLAYER_ID', 'TEAM_ID' 칼럼을 기본키로 설정합니다.

 

PLAYER 테이블에는 TEAM 테이블의 'TEAM_ID' 칼럼을 외래키로 설정하여 두 개의 테이블의 관계를 정의합니다.

'데이터베이스 > SQLD' 카테고리의 다른 글

[TCL] 트랜잭션  (0) 2020.06.07
[DML] INSERT, UPDATE, SELECT  (0) 2020.06.07
[DDL] ALTER TABLE  (0) 2020.06.07
데이터 유형 (CHAR, VARCHAR, NUMERIC, DATE)  (0) 2020.06.07
관계형 데이터베이스, SQL, TABLE  (0) 2020.06.07