본문 바로가기

PostgreSQL

PostgreSQL DDL, DML, DCL 문법

 

DDL

 

 

 

Database

CREATE DATABASE 데이터베이스_이름 [OWNER 소유자명];

ALTER DATABASE 데이터베이스_이름 OWNER TO 소유자명;

ALTER DATABASE 데이터베이스_이름 RENAME TO 데이터베이스_이름2;

ALTER DATABASE 데이터베이스_이름 SET [바꿀_설정값] TO [값];

DROP DATABASE 데이터베이스_이름;

 

 

Schema

CREATE SCHEMA 스키마명 [AUTHORIZATION 소유자명];

ALTER SCHEMA 스키마명 RENAME TO 이름;

ALTER SCHEMA 스키마명 OWNER TO 소유자;

DROP SCHEMA 스키마명;

 

 

Tablespace

CREATE TABLESPACE 테이블스페이스명 [OWNER 소유자명] [LOCATION 위치];

ALTER TABLESPACE 테이블스페이스명 RENAME TO 테이블스페이스명;

ALTER TABLESPACE 테이블스페이스명 OWNER TO 소유자명;

DROP TABLESPACE 테이블스페이스명;

 

 

Table

CREATE TABLE 테이블명(

컬럼이름 데이터타입 [NOT NULL | NULL] [DEFAULT default_value] [UNIQUE [KEY]] [[PRIMARY] KEY] [타테이블명 (컬럼명) ] ,

[CONSTRAINT] PRIMARY KEY 칼럼이름) ,

[CONSTRAINT] UNIQUE [INDEX | KEY] [인덱스이름] (칼럼이름) ,

[CONSTRAINT] FOREIGN KEY [인덱스이름] (칼럼이름) (타테이블명 (컬럼명) ) ,

CHECK (expr)

)

 

 

ALTER TABLE 테이블명 ADD CHECK (제약조건);

ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 UNIQUE (컬럼명);

ALTER TABLE 테이블명 ADD FOREIGN KEY (FK이름) REFERENCES 타테이블명(칼럼명);

ALTER TABLE 테이블명 RENAME TO 새_테이블명;

 

 

COLUMN

ALTER TABLE 테이블_이름 ADD COLUMN 컬럼_이름 TYPE;

ALTER TABLE 테이블_이름 DROP COLUMN 컬럼_이름;

ALTER TABLE 테이블_이름 CHANGE 컬럼_이름1 컬럼_이름2 [TYPE];

ALTER TABLE 테이블_이름 ALTER COLUMN 컬럼_이름 TYPE NOT NULL;

ALTER TABLE 테이블_이름 RENAME COLUMN 컬럼_이름 TO 새_컬럼_이름;

 

 

 

 

DML

 

 

SELECT [DISTINCT] 컬럼명..

FROM 테이블명

[ WHERE condition ]

[ GROUP BY expression [, ...] ]

[ HAVING condition [, ...] ]

[ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ]

[ LIMIT { count | ALL } ]

[ OFFSET start [ ROW | ROWS ] ]

 

INSERT INTO 테이블명 (컬럼1, 컬럼2 …) VALUES (값1, 값2 …);

INSERT INTO 테이블명 (컬럼1, 컬럼2 …) SELECT ~ ;

 

UPDATE 테이블명 SET 칼럼명 = 값 [WHERE 조건];

 

DELETE FROM 테이블명 [WHERE 조건];

 

 

DCL

 

 

CREATE USER 유저_이룸 [PASSWORD '패스워드'] [권한];

ALTER USER [유저_이름1] RENAME TO [유저_이름2];

ALTER USER 유저_이름 WITH PASSWORD '패스워드';

ALTER USER 유저_이름 WITH [권한];

GRANT [권한] [ ON object [,...] ] TO { PUBLIC | GROUP group | username};

REVOKE [권한] [ON object [,...] ] FROM { PUBLIC | GROUP gname | username };

Begin Transaction;

Commit / rollback ;

 

'PostgreSQL' 카테고리의 다른 글

HOT (Heap Only Tuple)  (0) 2021.04.23
Vacuum, Auto Vacuum  (0) 2021.04.23
MVCC (다중 버전 읽기 일관성)  (0) 2021.04.23
Shared Buffer Tuning  (0) 2021.04.23
PostgreSQL 아키텍처  (0) 2021.04.23