SQL CREATE DATABASE 문은 데이터베이스를 생성할 때 사용한다.
SQL CREATE DATABASE Syntax
예를 들어
SQL CREATE DATABASE Example
"my_db"라는 데이터베이스를 생성하는 예:
SQL CREATE TABLE은 데이터 베이스에 테이블을 생성할 때 사용한다.
테이블을 생성할 때는 행과 열(raws and columns)이 있고, 각 테이블에는 테이블 명이 있다.
SQL CREATE TABLE Syntax
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
column_name1 : 컬럼의 이름을 나타낸다.
data_type(size) : 컬럼에 있는 데이터의 타입을 명시한다. (e.g. varchar, integer, decimal, date, etc.)
Persons이라는 테이블을 만들고 5개의 컬럼을 만든다.
CREATE TABLE Persons
(
PersonID int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
);
이렇게 되면 아래와 같은 테이블이 만들어 지는 것이다.
PersonID | LastName | FirstName | Address | City |
---|---|---|---|---|
이렇게 테이블을 생성할 때 각 컬럼에 역할을 넣어줄 수 있다.
SQL Constraints
SQL CREATE TABLE + CONSTRAINT Syntax
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);
constraints 옵션은 :
- NOT NULL - NULL값이 들어가지 않아야 한다.
- UNIQUE - 반드시 a unique value 하나가 있어야 한다.
- PRIMARY KEY - NOT NULL과 UNIQUE의 조합니다. 테이블에서 편하고 쉽게 찾기위한 특별한 키값이다.
- FOREIGN KEY - 다른테이블에서 매치되는 데이터를 찾을 수 있는 참조키 값이다.
- CHECK - 값이 정해진 조건에 충족하는지 체크
- DEFAULT - 아무것도 안쓰면 default 값을 갖는다.
NOT NULL의 예:
CREATE TABLE PersonsNotNull
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
P_Id컬럼과 LastName은 NOT NULL로 되어 있다. 곧 NULL 값이 올 수 없다.
SQL UNIQUE Constraint
UNIQUE constraint 데이터 베이스 테이블에서 각 레코드들을 유닉크하게 인식할 수 있다.
UNIQUE과 PRIMARY KEY constraints 둘다 컬럼에 유닉크 값을 주어서 값을 빠르게 찾을 수 있다.
UNIQUE constraints 를 각 테이블마다 여러개 줄 수 있지만 PRIMARY KEY constraint는 테이블에 각 하나씩 존재한다.
CREATE TABLE Persons
(
P_Id int NOT NULL UNIQUE,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
P_Id에 UNIQUE가 들어갔다.
SQL PRIMARY KEY Constraint
CREATE TABLE Persons
(
P_Id int NOT NULL PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
위에서는 PRIMARY KEY가 P_Id 컬럼에 적용되었다. 이 테이블의 기본키는 P_Id이다.
SQL FOREIGN KEY Constraint
A FOREIGN KEY, 외래키는 다른 테이블의 PRIMARY KEY 를 가리킨다.
예를 들어,
"Persons" 테이블:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
"Orders" 테이블:
O_Id | OrderNo | P_Id |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
두 테이블이 있을 때, "Orders"의 "P_Id" 컬럼은 "Persons"의 "P_Id"컬럼을 가리킨다.
"P_Id"는 Persons에 있을 때는 primary key 이고, Orders에 있을 때는 foreign key가 된다.
외래키로 제약을 거는 이유는 두 테이블 링크를 보호하기 위함이다. 그렇기 때문에 다른 값이 들어 오는 것을 방지한다.
SQL Server / Oracle / MS Access:
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
'IT > SQL' 카테고리의 다른 글
SQL DROP (0) | 2015.02.03 |
---|---|
SQL CREATE INDEX (0) | 2015.02.03 |
SQL INSERT INTO SELECT 문 (0) | 2015.02.03 |
SQL SELECT INTO 문 (0) | 2015.02.03 |
SQL UNION 연산문 (0) | 2015.02.03 |