SQL
DDL(Data Define Language, 데이터 정의어)
- DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다.
- DDL의 3가지 유형
- CREATE: 스키마, 도메인, 테이블, 뷰, 인덱스를 정의함
- ALTER: 테이블에 대한 정의를 변경하는 데 사용함
- DROP: 스키마, 도메인, 테이블, 뷰, 인덱스를 삭제함
CREATE SCHEMA 스키마명 AUTHORIZATION 사용자_id;
CREATE DOMAIN 도메인명 데이터_타입;
CREATE TABLE 테이블명;
CREATE VIEW 뷰명 AS SELECT문;
CREATE INDEX 인덱스명 ON 테이블명;
ALTER TABLE 테이블명 ADD 속성명 데이터_타입;
ALTER TABLE 테이블명 ALTER 속성명;
ALTER TABLE 테이블명 DROP COLUMN 속성명;
DROP SCHEMA 스키마명;
DROP DOMAIN 도메인명;
DROP TABLE 테이블명;
DROP VIEW 뷰명;
DROP INDEX 인덱스명;
DROP CONSTRAINT 제약조건명;
DCL(Data Control Lauguage, 데이터 제어어)
- 데이터의 보안, 무결성, 회복, 병행 제어 등을 정의하는 데 사용하는 언어이다.
- DCL의 종류
- COMMIT: 명령에 의해 수행된 결과를 실제 물리적 디스크로 저장하고 데이터베이스 조작 작업이 정상적으로 완료되었음을 관리자에게 알려줌
- ROLLBACK: 데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래의 상태로 복구함
- SAVEPOINT: 트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정하는 명령어
- GRANT: 데이터베이스 사용자에게 사용 권한을 부여함
- REVOKE: 데이터베이스 사용자에게 사용 권한을 취소함
COMMIT;
SAVEPOINT S1;
ROLLBACK S1;
GRANT 사용자등급 TO 사용자_id;
REVOKE 사용자등급 FROM 사용자_id;
GRANT 권한종류 ON 개체 TO 사용자_id;
REVOKE 권한종류 ON 개체 FROM 사용자_id;
DML(Data Manipulation Language, 데이터 조작어)
- 데이터베이스 사용자가 저장된 데이터를 실질적으로 관리하는데 사용되는 언어이다.
- DML의 유형
- SELECT: 테이블에서 튜플을 검색함
- INSERT: 테이블에 새로운 튜플을 삽입함
- DELETE: 테이블에서 튜플을 삭제함
- UPDATE: 테이블에서 튜플의 내용을 갱신함
SELECT 속성1, 속성2
FROM 테이블명
[WHERE 조건]
[GROUP BY 속성명1, 속성명2, ..]
[HAVING 조건]
[ORDER BY 속성명 [ASC | DESC]];
INSERT INTO 테이블명 VALUES (데이터1, 데이터2, ...);
DELETE FROM 테이블명 [WHERE 조건];
UPDATE 테이블명 SET 속성명 = 데이터 [WHERE 조건];
조건 연산자
- 비교 연산자
- =: 같다
- <>: 같지 않다
- >: 크다
- <: 작다
- >=: 크거나 같다
- <=: 작거나 같다
- 논리 연산자
- Like 연산자: 대표 문자를 이용해 지정된 속성의 값이 문자 패턴과 일치하는 튜플을 검색하기 위해 사용된다.
- %: 모든 문자를 대표
- _: 문자 하나를 대표
- #: 숫자 하나를 대표
그룹 함수
- GROUP BY절에 지정된 그룹별로 속성의 값을 집계할 때 사용된다.
- 그룹 함수 종류
- COUNT(속성명): 그룹별 튜플 수를 구하는 함수
- SUM(속성명): 그룹별 합계를 구하는 함수
- AVG(속성명): 그룹별 평균을 구하는 함수
JOIN
- 2개의 릴레이션에서 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션을 반환한다.
프로시저(Procedure)
- SQL을 사용하여 작성한 일련의 작업을 저장해두고 호출을 통해 원할 때마다 저장한 작업을 수행하도록 하는 절차형 SQL이다.
트리거(Trigger)
- 데이터베이스 시스템에서 데이터의 삽입, 갱신, 삭제 등의 이벤트가 발생할 때 관련 작업이 자동으로 수행되게 하는 절차형 SQL이다.