본문 바로가기
IT/SQL

SQL CREATE 문

by Jang HyunWoong 2015. 2. 3.

SQL CREATE DATABASE 문은 데이터베이스를 생성할 때 사용한다. 


SQL CREATE DATABASE Syntax

CREATE DATABASE dbname;

예를 들어


SQL CREATE DATABASE Example

"my_db"라는 데이터베이스를 생성하는 예:

CREATE DATABASE my_db;


SQL CREATE TABLE은 데이터 베이스에 테이블을 생성할 때 사용한다. 

테이블을 생성할 때는 행과 열(raws and columns)이 있고, 각 테이블에는 테이블 명이 있다. 

SQL CREATE TABLE Syntax

CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
table_name 테이블 명을 나타낸다. 

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)
);


이렇게 되면 아래와 같은 테이블이 만들어 지는 것이다. 

PersonIDLastNameFirstNameAddressCity
     

이렇게 테이블을 생성할 때 각 컬럼에 역할을 넣어줄 수 있다. 



SQL Constraints 

SQL CREATE TABLE + CONSTRAINT Syntax

CREATE TABLE table_name
(
column_name1 data_type(sizeconstraint_name,
column_name2 data_type(sizeconstraint_name,
column_name3 data_type(sizeconstraint_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_IdLastNameFirstNameAddressCity
1HansenOlaTimoteivn 10Sandnes
2SvendsonToveBorgvn 23Sandnes
3PettersenKariStorgt 20Stavanger

"Orders" 테이블:

O_IdOrderNoP_Id
1778953
2446783
3224562
4245621

두 테이블이 있을 때, "Orders"의 "P_Id" 컬럼은 "Persons"의 "P_Id"컬럼을 가리킨다. 

"P_Id"는 Persons에 있을 때는 primary key 이고, Orders에 있을 때는 foreign key가 된다. 

외래키로 제약을 거는 이유는 두 테이블 링크를 보호하기 위함이다. 그렇기 때문에 다른 값이 들어 오는 것을 방지한다. 


SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
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