Database/PostgreSQL

Table 관련 기본 다루기

Tongchun 2017. 9. 26. 10:21

테이블을 다루는 쿼리를 확인해 보자


먼저 테이블 만들기. 

company란 테이블을 만들어 보자. id를 primary key로 잡았고 not null이다.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

그리고 department라는 테이블도 만들어 보자.

이 테이블도 id를 primary key로 잡았다.

CREATE TABLE DEPARTMENT(
   ID INT PRIMARY KEY      NOT NULL,
   DEPT           CHAR(50) NOT NULL,
   EMP_ID         INT      NOT NULL
);

테이블이 정상적으로 만들어 졌다면 테이블을 확인해 보자.

명령어는 \d로 확인할 수 있다.

\d
           List of relations
 Schema |    Name    | Type  |  Owner   
--------+------------+-------+----------
 public | company    | table | tongchun
 public | department | table | tongchun
(2 rows)

테이블 정보를 자세히 확인할 때는 \d <테이블 이름>으로 확인할 수 있다.

\d company
       Table "public.company"
 Column  |     Type      | Modifiers 
---------+---------------+-----------
 id      | integer       | not null
 name    | text          | not null
 age     | integer       | not null
 address | character(50) | 
 salary  | real          | 
Indexes:
    "company_pkey" PRIMARY KEY, btree (id)

primary key로 잡으면 index가 생성되는 것도 확인 할 수 있다.


이번엔 자동 증가하는 id를 만들어 보자. 자동 증가하는 column의 타입을 serial로 하면된다.

CREATE TABLE words (
	equipId	serial PRIMARY KEY,
	word	varchar (50)	NOT NULL,
	korean	varchar (250)	NOT NULL,
	example	text		NULL
);

다시 테이블 리스트를 보면 serial 타입에 대한 가상 테이블이 생성된 것을 확인할 수 있다.

\d
                List of relations
 Schema |       Name        |   Type   |  Owner   
--------+-------------------+----------+----------
 public | company           | table    | tongchun
 public | department        | table    | tongchun
 public | words             | table    | tongchun
 public | words_equipid_seq | sequence | tongchun
(4 rows)

테이블을 삭제하려면 drop table <테이블 이름>으로 할 수 있다.

department라는 테이블을 삭제해 보자.

drop table department;

테이블이 아니라 데이터만 모두 지우려면 delete 쿼리를 하거나 truncate를 하면 된다.

truncate 명령은 truncate table <테이블 이름>으로 할 수 있다.

truncate table words;

delete 쿼리는 데이터를 스켄하며 삭제하지만 truncate는 스켄하지 않으며 디스크에서 삭제해 빠르다.