DDL

DDL(Data Definition Language): 데이터베이스 정의 언어

  • 데이터베이스 구조를 정의하거나 변경하기 위한 SQL 명령어의 집합

create database
create table
create index
create view

alter database
alter table
alter idnex

drop database
drop table
drop index

truncate
truncate table

create database

CREATE DATABASE database_name
WITH
   [OWNER =  role_name]
   [TEMPLATE = template]
   [ENCODING = encoding]
   [LC_COLLATE = collate]
   [LC_CTYPE = ctype]
   [TABLESPACE = tablespace_name]
   [ALLOW_CONNECTIONS = true | false]
   [CONNECTION LIMIT = max_concurrent_connection]
   [IS_TEMPLATE = true | false ];
  • OWNER

    • 생성한 role 지정

  • TEMPLATE

    • 지정하지 않는다면 template1

  • LC_COLLATE

    • 데이터 정렬순서 지정

    • ORDER BY 절이 포함된 쿼리에서 문자열의 정렬 순서에 영향

    • 기본 값은 템플릿 데이터베이스의 LC_COLLATE

  • LC_CTYPE

    • 문자 분류를 지정

    • 소문자, 대문자, 숫자 등의 문자 분류에 영향

    • 기본값은 템플릿 데이터베이스의 LC_CTYPE

  • TABLESPACE

    • 테이블스페이스 이름을 지정

    • 기본값은 템플릿 데이터베이스의 테이블스페이스

  • CONNECTION LIMIT

    • 최대 동시 연결 수를 지정

    • 기본값은 -1로 무제한 의미

    • 특정 데이터베이스의 최대 동시 연결 수를 구성할 수 있는 공유 호스팅 환경에서 유용할 수 있음

  • ALLOW_CONNECTIONS

    • boolean value 이며 false 인 경우 데이터베이스에 연결할 수 없음

  • IS_TEMPLATE

    • true 인 경우 CREATEDB 권한이 있는 모든 사용자가 복제 가능

    • false 인 경우 수퍼유저 또는 데이터베이스 소유자만 복제 가능

CREATE DATABASE cookbook
  WITH
  ENCODING = 'UTF8'
  LC_COLLATE = 'en_US.UTF-8'
  LC_CTYPE = 'en_US.UTF-8'
  TEMPLATE = template0;
;

Last updated