본문 바로가기
프로그래밍 언어/SQL

SQL 개념, DDL(create, alter, drop)

by 진진리 2023. 9. 14.
728x90

SQL

  • 관계형 데이터베이스를 지원하는 언어
  • 관계대수와 관계해석을 기초로 한 혼합 데이터 언어

 

SQL 종류

  • DDL(Data Define Language, 데이터 정의어): CREATE, ALTER, DROP
  • DML(Data Manipulation Language, 데이터 조작어): SELECT, INSERT, DELETE, UPDATE
  • DCL(Data Control Language, 데이터 제어어): COMMIT, ROLLBACK, GRANT, REVOKE

 

SQL에서 지원하는 기본 데이터 타입

  • 정수: INTEGER(4Byte 정수), SMALLINT(2Byte 정수)
  • 실수: FLOAT, REAL, DOUBLE PRECISION
  • 형식화된 숫자: DEC(i, j)   // i: 전체 자릿수, j: 소수부 자릿수
  • 고정길이 문자: CHAR(n), CHARACTER(n)   // n: 문자수
  • 가변길이 문자: VARCHAR(n), CHARACTER VARYING(n)   // n: 최대 문자수
  • 고정길이 비트열: BIT(n)
  • 가변길이 비트열: VARBIT(n)
  • 날짜: DATE
  • 시간: TIME

DDL: 번역한 결과가 데이터 사전에 여러 개의 테이블로 저장됨

 

  • CREATE SCHEMA: 스키마의 허가권자 정의

CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;

 

 

  • CREATE DOMAIN: 도메인 정의, 정의한 도메인명은 데이터 타입처럼 사용

CREATE DOMAIN 도메인명 [AS] 데이터_타입

               [DEFAULT 기본값]

               [CONSTRAINT 제약조건명 CHECK (범위값)];

 

 

  • CREATE TABLE: 테이블 정의

CREATE TABLE 테이블명

               (속성명 데이터_타입 [DEFAULT 기본값] [NOT NULL], ....

               [, PRIMARY KEY(기본키_속성명, ...)]

               [, UNIQUE(대체키_속성명, ...)]

               [, FOREIGN KEY(외래키_속성명, ...)]

                             [REFERENCES 참조테이블(기본키_속성명, ...)]

                             [ON DELETE 옵션]

                             [ON UPDATE 옵션]

               [, CONSTRAINT 제약조건명] [CHECK (조건식)];

 

// 옵션: NO ACTION, CASCADE, SET NULL, SET DEFAULT

 

  • CREATE VIEW: 뷰 정의

CREATE VIEW 뷰명[(속성명,[ 속성명, ...])]

               AS SELECT문;

 

  • CREATE INDEX: 인덱스 정의

CREATE [UNIQUE] INDEX 인덱스명

ON 테이블명(속성명 [ASC | DESC] [, 속성명 [ASC | DESC]])

[CLUSTER];

 

  • ALTER TABLE: 테이블 정의 변경

ALTER TABLE 테이블명 ADD 속성명 데이터_타입 [DEFAULT '기본값'];

ALTER TABLE 테이블명 ALTER 속성명 [데이터_타입] [NOT NULL] [SET DEFAULT '기본값'];

ALTER TABLE 테이블명 DROP COLUMN 속성명 [CASCADE];

 

  • DROP: 제거

DROP SCHEMA/DOMAIN/TABLE/VIEW/INDEX 각이름 [CASCADE | RESTRICT];

DROP CONSTRAINT 제약조건명;

 

// RESTRICT: 다른 개체가 참조중일 때는 제거 취소