SQL

AnHyunDong·2022년 9월 2일
0

Database

목록 보기
2/6

Create

구문 형식

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

규칙 사항

  • 테이블명은 객체를 의미할 수 있는 적절한 이름을 사용한다. 가능한 단수형을 권고한다.

  • 테이블 명은 다른 테이블의 이름과 중복되지 않아야 한다.

  • 한 테이블 내에서는 칼럼명이 중복되게 지정될 수 없다.

  • 테이블 이름을 지정하고 각 칼럼들은 괄호 "( )" 로 묶어 지정한다.

  • 각 칼럼들은 콤마 ","로 구분되고, 테이블 생성문의 끝은 항상 세미콜론 ";"으로 끝난다.

  • 칼럼에 대해서는 다른 테이블까지 고려하여 데이터베이스 내에서는 일관성 있게 사용하는 것이 좋다.(데이터 표준화 관점 : 공통성 칼럼을 도메인으로 관리)

  • 칼럼 뒤에 데이터 유형은 꼭 지정되어야 한다.

  • 테이블명과 칼럼명은 반드시 문자로 시작해야 하고, 벤더별로 길이에 대한 한계가 있다.

  • 벤더에서 사전에 정의한 예약어(Reserved word)는 쓸 수 없다. - A-Z, a-z, 0-9, _, $, # 문자만 허용된다.

  • 잘못된 사례

테이블 명이유
10_PLAYER반드시 숫자가 아닌 문자로 시작해야 함
T-PLAYER특수 문자 '-'는 허용되지 않음

예제

  • 다음 조건의 테이블의 생성해보시오
테이블명 : PLAYER 
테이블 설명 : K-리그 선수들의 정보를 가지고 있는 테이블 
칼럼명 :    PLAYER_ID (선수ID) 문자 고정 자릿수 7자리,
            PLAYER_NAME (선수명) 문자 가변 자릿수 20자리,
            TEAM_ID (팀ID) 문자 고정 자릿수 3자리,
            E_PLAYER_NAME (영문선수명) 문자 가변 자릿수 40자리,
            NICKNAME (선수별명) 문자 가변 자릿수 30자리,
            JOIN_YYYY (입단년도) 문자 고정 자릿수 4자리,
            POSITION (포지션) 문자 가변 자릿수 10자리,
            BACK_NO (등번호) 숫자 2자리,
            NATION (국적) 문자 가변 자릿수 20자리,
            BIRTH_DATE (생년월일) 날짜,
            SOLAR (양/음) 문자 고정 자릿수 1자리,
            HEIGHT (신장) 숫자 3자리,
            WEIGHT (몸무게) 숫자 3자리, 
제약조건 : 기본키(PRIMARY KEY) → PLAYER_ID 
            (제약조건명은 PLAYER_ID_PK) 
            값이 반드시 존재 (NOT NULL) → PLAYER_NAME, TEAM_ID 
  • 답1
CREATE TABLE PLAYER (
PLAYER_ID CHAR(7) NOT NULL,
PLAYER NAME VARCHAR2(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) REFERMENCES TEAM(TEAM_ID)
);
  • 답2
CREATE TABLE PLAYER ( 
PLAYER_ID CHAR(7) NOT NULL,
PLAYER_NAME VARCHAR(20) NOT NULL,
TEAM_ID CHAR(3) NOT NULL,
E_PLAYER_NAME VARCHAR(40),
NICKNAME VARCHAR(30),
JOIN_YYYY CHAR(4),
POSITION VARCHAR(10),
BACK_NO TINYINT,
NATION VARCHAR(20),
BIRTH_DATE DATE,
SOLAR CHAR(1),
HEIGHT SMALLINT,
WEIGHT SMALLINT,
CONSTRAINT PLAYER_PK PRIMARY KEY (PLAYER_ID),
CONSTRAINT PLAYER_FK FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID) 
); 
profile
사진은 남아 추억이 메모는 남아 스펙이 된다

0개의 댓글