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: 다른 개체가 참조중일 때는 제거 취소
'프로그래밍 언어 > SQL' 카테고리의 다른 글
프로시저(Procedure) (0) | 2023.09.15 |
---|---|
문자열 관련 함수, Case(조건문) (0) | 2023.09.15 |
Subquery, WITH (0) | 2023.09.15 |
DML(insert, delete, update, select, union, join) (0) | 2023.09.15 |
DCL(grant, revoke, commit, rollback, savepoint) (0) | 2023.09.15 |