테이블 만들기
▶ create table table_name (
column_name1 column_type1 [not null],
column_name2 column_type2 [not null],
primary key column_name
)
위의 table_name에 생성할 테이블명을
column_name에는 필드명, column_type에는 필드타입(예를 들어 int, char, vchar 등)을 적어주며
primary key는 테이블의 기본키를 지정하는 것으로 생략 가능하며 기본키로 지정된 항목은 같은 값을
가질 수 없고 다른 값과 구별되는 고유의 값을 가져야 한다.
not null은 그 필드의 레코드값에 null 값이 올 수가 없음을 뜻함
column 타입의 경우 아래와 같은 종류가 있음
tinyint : 부호있는 정수 -128 ~ 127
부호없는 정수 0 ~ 255
1 Byte
smallint : 부호있는 정수 -32768 ~ 32767
부호없는 정수 0 ~ 65536
2byte
mediumint : 부호있는 정수 -8,388,608 ~ 8,388,607
부호없는 정수 0 ~ 16.777,215
3byte
int 혹은 integer : 부호있는 정수 -2,147,483,684 ~ 2,147,483,647
부호없는 정수 0 ~ 4,294,967,295
4 byte
bigint : 부호있는 정수 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
부호없는 정수 0 ~18,446,744,073,709,551,615
8byte
float : 단일정밀도 가진 부동소수점
-3.402823466E +38 ~ 3.402823466E + 38
double : 2배 정밀도를 가지는 부동소수점
-1.79769313486231517E + 308 ~ 1.79769313486231517E + 308
date : 날짜 표현 유형 1000-01-01 ~ 9999-12-31
datetime : 날짜와 시간을 표현하는 유형
1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp : 1970-01-01 00:00:00 부터 2037년 까지 표현
4byte
time : 시간을 표현하는 유형 -839:59:59 ~ 838:59:59
year : 연도를 표현하는 유형 1901년 ~ 2155년
char(m) : 고정길이 문자열을 표현하는 유형
m = 1 ~ 255
vchar(m) : 가변길이 문자열을 표현하는 유형
m = 1 ~ 255
tinyblob : 255개 문자를 저장
tinytext : blob(binary large object의 약자)
blob text : 65535개의 문자를 저장
mediumblob : 16,777,215개의 문자를 저장
mediumtext : 위의 mediumblob과 같음
longblob : 4294967295(4Giga)개의 문자를 저장
longtext : 위의 longblob과 같음
char와 vchar의 차이점은
char은 고정길이이며,vchar은 가변길이로 char(20)과 vchar(20)일 경우 들어가는 데이터 값이 10글자 정도일
char의 필드 길이는 기존 값의 20이 되며, vchar은 데이터 값으로 10이 되는 것이다
즉, char은 고정된 길이로 데이터가 저장이 되며,
vchar은 지정된 범위를 최대로 하여 데이터 크기만큼만 저장이 되는 형태이다
flag값의 종류는 아래와 같다
not null : 해당 필드의 NULL값을 허용하지 않는다
primary key : 해당 필드값을 primary key로 설정
unique key : 해당 필드의 값들 중에서 중복 값을 허용하지 않는다
multiple key : 해당 필드의 값들 중 중복되는 값을 허용한다
blob : 어떤 형태의 데이터가 올지 알 수 없음을 설정한다
unsigned : 양수 값만 올 수 있음을 설정한다
binary : 해당 필드에 binary 데이터가 올 수 있음을 설정한다
enum : enum형의 데이터가 올 수 있다 (enum('a','b')와 같이 설정했을 경우 a 혹은 b의 값만이 올 수 있다)
auto_increment : 필드에 값이 추가될 때마다 자동으로 값이 증가됨을 설정한다
timestamp : 해당 필드의 자료형이 timestamp임을 설정한다
이제는 실질적으로 테이블을 생성해보자
-> create table member (
num int(4) default '0' not null auto_increment,
name char(8) not null,
id char(10) not null,
pwd char(30) not null,
email char(50) default '',
home char(80) default '',
phone char(15) default '',
birth char(15) default '' not null,
solar tinyint(1) default '0' not null,
primary key (num)
)
'컴퓨터 세상 > MySQL' 카테고리의 다른 글
실질적인 SQL 익히기 (0) | 2010.03.31 |
---|