[DDL] CREATE TABLE

2020. 6. 7. 11:39·데이터베이스/SQLD

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
'데이터베이스/SQLD' 카테고리의 다른 글
  • [DML] INSERT, UPDATE, SELECT
  • [DDL] ALTER TABLE
  • 데이터 유형 (CHAR, VARCHAR, NUMERIC, DATE)
  • 관계형 데이터베이스, SQL, TABLE
나는 유찌
나는 유찌
쩌리쨩
  • 나는 유찌
    유찌 개발 일기
    나는 유찌
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 사이드 프로젝트
        • 게시판
        • 블로그(Spring boot + React.js ..
      • 데이터베이스
        • SQLD
      • 이슈 해결
      • Front
        • Javascript
        • Vue.js
        • HTML+CSS
      • Backend
        • Spring
        • ORM
        • JAVA
      • 공부
        • HTTP
        • OOP
        • 이것저것
        • 코딩테스트 | 알고리즘
      • Computer Science
        • Computer architecture
        • 데이터베이스
        • 운영체제
      • 일상
        • 독서
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    spring
    refresh token
    Spring boot에서 JWT 구현
    AntPathMatcher
    Spring Security AccessDecisionManager
    mysql 격리수준
    추리소설
    access token
    Spring Boot
    한국소설
    redis 분산락
    Kotlin AccessDecisionManager
    jwt 로그인 구현
    DIRTY READ
    role scope
    Kotlin AntPathMatcher
    JWT이란?
    Access Token Refresh Token
    히가시노 게이고
    phantom read
    LeetCode
    웹 개발
    AccessDecisionVoter
    pessimisticlock
    Access token 재발급
    spring 격리수준
    jwt
    mssql
    권한 scope 처리
    독서
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
나는 유찌
[DDL] CREATE TABLE
상단으로

티스토리툴바