SQL(Structured Query Language)
- SQL이란 DBMS에 저장된 데이터와 통신하기 위해 필요한 프로그래밍 언어이다.
- 데이터를 조회하거나 조작하기위해 사용하는 표준 검색언어로 데이터를 찾는 방법이나 절차를 기술하는게 아닌 조건을 기술하여 작성한다.
- SQL은 ANSI/ISO 표준을 준수하기 때문에 DBMS가 변경되어도 그대로 사용할 수 있다.
- SQL언어의 종류는 크게 DDL, DML, DCL로 나누어진다.

SQL 언어 종류
- DDL(Data Definition Langauge), 데이터 정의어
데이터를 어떻게 정의할 것인지 정의하는 언어로 데이터베이스 안의 데이터들을 생성, 변경, 수정, 입력하는 언어이다.
|
종류 |
역할 |
|
CREATE |
데이터베이스, 테이블 등을 생성하는 역할을 한다. |
|
ALTER |
테이블을 수정하는 역할을 한다. |
|
DROP |
데이터베이스, 테이블을 삭제하는 역할을 한다. |
|
TRUNCATE |
테이블을 초기화 시키는 역할을 한다. |
- DQL(Data Query Language), 데이터 질의어
데이터를 조회하기 위한 언어로 대부분 DML에 포함시킨다.
|
종류 |
역할 |
|
SELECT |
데이터를 조회하는 역할을 한다. |
- DML(Data Multipulation Language), 데이터 조작어
저장된 데이터를 실질적으로 처리하는데 사용하는 언어로 데이터를 조회하거나 수정, 삭제 등의 역할을 하는 언어이다.
|
종류 |
역할 |
|
INSERT |
데이터를 삽입하는 역할을 한다. |
|
UPDATE |
데이터를 수정하는 역할을 한다. |
|
DELETE |
데이터를 삭제하는 역할을 한다. |
- DCL(Data Control Language), 데이터 제어어
데이터베이스에 접근, 객체에 권한을 부여(GRANT)하거나 회수(REVOKE)하는 역할을 하는 언어이다.
|
종류 |
역할 |
|
GRANT |
특정 데이터베이스 사용자에게 특정 작업에 대한 수행권한을 부여한다. |
|
REVOKE |
특정 데이터베이스 사용자에게 특정 작업에 대한 수행권한을 회수한다. |
- TCL(Transaction Control Language)
하나의 작업 단위(트렌잭션)로 실행을 하는 명령어이다.
(예 3개의 명령어를 하나의 트렌잭션으로 정할 시 에러 발생하면 3개 명령어가 취소된다.)
|
종류 |
역할 |
|
COMMIT |
트렌젝션의 최종 결과가 성공이면 그 결과를 데이터베이스에 반영한다. |
|
ROLLBACK |
일부 작업이 수행되지 않아 트렌젝션 최종 결과가 실패인 경우 아무것도 실행되지 않았던 처음 상태로 되돌린다. |
- Transaction
CRUD(Create, Read, Update, Delete)는 DBMS가 제공하는 가장 기본적이면서 핵심적인 기능으로 데이터베이스에서 최소의 작업 단위라고 할 수 있다.
트렌젝션은 하나 이상의 CRUD 작업들을 마치 하나의 실행 단위인 것처럼 묶어주는 기능으로, ATM 기기나 데이터베이스 등의 시스템에서 강조되는 개념이다.
트렌젝션은 연관된 여러 개의 CRUD 작업을 묶어 단일 작업처럼 수행할 수 있도록 해 주는 기능이다.
- 트렌젝션 4대원칙
|
원자성(Atomicity) |
하나의 트렌젝션 내에 정의된 작업들은 모두 수행되거나 아무것도 수행되지 않아야 한다. |
|
일관성(Consistency) |
정당한 데이터만을 데이터베이스에 반영해서 무결성을 유지해야한다. |
|
격리성(Isolation) |
하나의 트렌젝션이 실행되는 동안 트렌젝션 내부에 다른 트렌젝션이 접근할 수 없어야 한다. |
|
지속성(Durability) |
하드웨어나 소프트웨어에 오류가 발생했더라도 트렌젝션의 결과가 데이터베이스에 계속 보존되어야 한다. |
'DB' 카테고리의 다른 글
| [SQL] SELECT문 명령어 - BETWEEN, IS NULL, IN (0) | 2021.02.27 |
|---|---|
| [SQL] SELECT문 명령어 - DISTINCT, WHERE, 연산자 (0) | 2021.02.27 |
| [SQL] SELECT문 - 정의, 산술 연산, 별칭, 리터럴 (0) | 2021.02.27 |
| [Database] DBMS의 개념 및 기능, 이점, 유형 (0) | 2021.02.27 |
| [Database] DB 기초 용어 정리 - 테이블(Table), 행(Row), 열(Column) 등 (0) | 2021.02.25 |