컴퓨터 세상/MySQL

SQL 익히기

Jimin Daddy 2010. 3. 31. 12:55

테이블 만들기
 ▶ 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