최보름달

[SQL] DDL (Data Definition Language) : DATATYPE, CREATE 본문

문송한 회사생활/SQL 공부

[SQL] DDL (Data Definition Language) : DATATYPE, CREATE

PieMoon 2020. 7. 22. 21:31

데이터 유형(타입)

테이터베이스의 테이블에 특정 자료를 입력할 때, 그 자료를 받아들일 공간을 유형별로 나누는 기준.

 

자주 쓰이는 데이터 유형

데이터 유형 설명
CHARACTER - 고정 길이 문자열(CHAR)
- 기본 길이 1바이트
- 고정된 길이를 갖고 있기 때문에, 할당된 변수 값의 길이가 작아도 공간은 채워진다
- 'AA' = 'AA       '
VARCHAR - CHARACTER VARYUNG. 
- 최소 길이 1바이트
- 가변 길이로 조정이 되기 때문에 할당된 변수 값의 바이트만 적용된다
- 'AA'  <> 'AA    ' (같지 않다)
- 공백도 하나의 문자로 취급된다
NUMERIC - 정수, 실수 등 숫자 정보
DATE - 날짜와 시각 정보 

 

CREATE TABLE

- 테이블을 생성하는 구문 

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

 

테이블 생성 시 주의할 점

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

- 한 테이블 내에서는 컬럼명이 중복되게 지정할 수 없다. 

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

- 각 컬럼들은 콤마, 로 구분되고, 생성문 끝은 항상 세미콜론; 으로 끝난다.

- 컬럼은 일관성 있게 사용하는게 좋다. 

- 컬럼 뒤에 데이터 유형(타입)은 꼭 지정되어야 한다. 

- 테이블과 컬럼명은 반드시 문자로 시작해야 한다. 길이 한계가 있다. 

- 벤더에서 사전에 정의한 예약어(명령어)는 사용할 수 없다.

- A-Z, a-z, 0-9, _, $, # 문자만 허용된다. 

 

테이블명 잘못된 사례

10_PLAYER : 숫자로 시작했기 때문에 틀렸음

T-PLAYER : 특수문자 - 는 허용하지 않기 때문에 틀렸음.

 

선수 테이블 생성하기 예제

CREATE TABLE PLAYER (
PLAYER_ID CHAR(7) NOT NULL,
PLAYER_NAME VARCHAR2(20) NOT NULL,
TEAM_ID CHAR(3) NOT NULL,
BIRTH_DATE DATE,
HEIGHT NUMBER(3),
CONSTRAINT PLAYER_PK PRIMARY KEY (PLAYER_ID),
CONSTRAINT PLAYER_FK FOREIGN KEY (TEAM_ID) REFERENCES TEAM(TEAM_ID)
);

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

- DATETIME 유형(타입)은 별도로 크기를 정하지 않는다. 

- 문자 데이터 유형(타입)은 반드시 최대 길이를 표시해야 한다. 

- 마지막 컬럼은 콤마를 찍지 않는다.

- 컬럼에 대한 제약조건이 있으면 CONSTRAINT를 이용하여 추가할 수 있다. 

 

 

 

* 한국데이터진흥원에서 출간한 SQL 전문가 가이드 2013 Edition을 요약했습니다