프로그래밍 노트

PostgreSQL에서 테이블 만들기 기초 본문

데이터베이스/PostgreSQL

PostgreSQL에서 테이블 만들기 기초

떡잎 2015. 1. 15. 14:32


● 데이터 베이스 사용자 만들기


create user wwwi with password 'wwwi';


● 데이터베이스  만들기


create database wwwi;


● 테이블 만들기


create table testa (

  key          char(16) primary key,

  val1        integer,

  val2        integer,

);


  *테이블 만들 때에  NOT NULL 제약(NULL Data 입력 금지), 

  UNIQUE 제약, (동일한 Data 입력 금지)

  DEFAULT 초기값 설정가능


create table testa (

  key          char(16) primary key,

  val1        integer not null,

  val2        integer unique,

  val3        integer default 0 not null

);


  *constraint으로 Primary Key를 설정하거나 복수의 Primary Key는

  아래와 같은 방법으로 설정


create table testa (

  key          char(16),

  val1        integer,

  val2        integer,

  constraint PK_NAME primary key (

    key,

    val1

  )

);


● 테이블 지우기


drop table testa;


● 기본적인 필드 타입


    smailint                           2 바이트 정수

    integer                            4 바이트 정수

    bigint                             8 바이트 정수

    decimal(a, a)/numeric(a, s)        10진수형

    real                               6자리 단정도 부동소수점

    double precision                   15 자리 배정도 부동소수점

    serial                             4 바이트 일련번호

    bigserial                          8 바이트 일련번호

    date                               일자

    time                               시간

    timestamp                          일자시간

    char(문자수)/character             고정길이 문자열  (최대 4096 문자)

    varchar(문자수)/charcter varying   가변길이 문자열  (최대 4096 문자)

    text                               무제한 텍스트

    Large Object                       oid형

    boolean/bool                       true/false


● 키 만들기


  *단일 키 설정은 테이블 만들 때에 create table에서 하는 편이 좋다.

    단일 키를 설정할 필드에 primary key를 지정하면 된다.


  key          char(16)     primary key,


  *복수 키는 아래와 같이 추가할 수 이싿.


create table testa (

  key          char(16),

  val1        integer,

  val2        integer,

  constraint PK_NAME primary key (

    key,

    val1

  )

);


  * 인덱스를 추가하면 검색 속도를 빠르게 할 수 있지만 너무 많이 만들면

    갱신할 때에 부하가 걸릴 수 있다.

    

create unique index PK_NAME on testa (

  key,

  val1

);


create index PK_NAME on testa (

  key,

  val1

);


● 키 지우기


drop index PK_NAME;


● 일련번호  만들기


  *일변번호는 serial로 정의해서 사용할 수 있음


create table testa (

  key          char(16),

  val1        serial,

  val2        integer,

);


insert into testa values('key00A');

insert into testa values('key00B');


   key      | val1 | val2 

--------+----+------

 key00A   |    1 |      

 key00B   |    2 |      



create sequence seq;


  *다음과 같이 만들면 10 ~ 1000000, 100씩 증가하며 최대값이 되면 다시 최소값으로 돌아간다.


create sequence seq

  increment    10

  minvalue     10

  maxvalue     1000000

  start        10

  cache        100

  cycle

;


  *일련번호는 다음과 같이 사용한다.

    nextval이 일련번호를 만들어 내고

    currval은 일변번호의 현재값을 가져온다.


insert into testa values ('k001', nextval('seq'), 10);

insert into testa values ('k002', nextval('seq'), 10);

insert into testa values ('k003', currval('seq'), 10);


   key    | val1 | val2 

------+-----+------

 k001     | 10   |   10 

 k002     | 20   |   10 

 k003     | 20   |   10 


● 일련번호  지우기


drop sequence seq;


Comments