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 |