0. SQL 개념

- 구조적 쿼리 언어 ( Structured Query Language )
- 관계형 데이터베이스에서 원하는 데이터를 추출, 분석하는 데에 도움을 주는 쿼리 언어
- 실행 순서가 없는 비절차적인 언어
- 데이터의 흐름이나 특정 조건에 따른 데이터 분석도 가능
- 데이터베이스 성능을 유지, 관리하고 최적화하는 데에 SQL 사용 가능
1. SQL 특징

- 관계형 데이터베이스를 처리하는 가장 좋은 방법
- 스프레드 시트와 같이 데이터를 테이블로 구성
- 작은 데이터 세트부터 큰 스택까지 모든 데이터를 분석하고 조작할 수 있음
- 대소문자를 구분하지 않음
- 빠르고 이식 가능한 쿼리 언어
→ 아주 짧은 시간 안에 방대한 양의 데이터를 처리할 수 있음
→ 높은 효율성
- 표준화된 언어
→ 대규모 커뮤니티가 존재하는 오픈 소스 개발 언어 - 빅데이터 처리
→ 정보의 무결성을 보호하기 위해 최대의 정밀도로 대규모의 데이터 세트를 처리할 수 있음
2. SQL 분류

SQL을 기능에 따라 분류하자면 DML, DDL, DCL, TCL로 나눌 수 있다.
각각 사용되는 명령어가 다르다는 특징이 있으니 아래에서 쭉 정리해보려 한다.
( 정처기 필기 공부할 때 조작어 셀인업데..정의어 크알드트..이러면서 외운 기억이 새록새록 난다. 오랜만이고만 (੭˙ ˘ ˙)੭ )
2.1 DML
- 데이터 조작어 ( Data Manipulation )
- 데이터베이스 수정을 가능하게 하는 것
- 데이터베이스의 내부 데이터를 관리하기 위한 언어
[ 특징 ]
- 명령어를 입력한 뒤 작업이 즉시 반영 (Auto Commit)이 되지 않음
- DML에 의한 데이터 변동은 영구적인 변경이 아니기 때문에 ROLLBACK 명령어로 되돌릴 수 있음
- TARGET 테이블을 메모리 버퍼 위에 올려두고 변경을 수행
▶ 실시간으로 테이블에 반영되지 않음
▶ COMMIT 명령어를 통해 트랜잭션을 종료한 뒤 해당 변경 사항 반영
[ 종류 ]
명령어 종류 | 명령어 | 설명 |
DML | SELECT | DB에 들어있는 데이터를 조회하거나 검색하기 위한 명령어 ( RETRIVE 라고도 함 ) |
INSERT | DB의 테이블에 들어 있는 데이터를 조작하는 명령어 ( INSERT : 데이터 삽입 / UPDATE : 데이터 수정 / DELETE : 데이터 삭제 ) |
|
UPDATE | ||
DELETE |
2.2 DDL
- 데이터 정의어 ( Data Definition )
- 데이터 세트를 업데이트하거나 조작할 때 사용
[ 특징 ]
- 명령어를 입력하는 순간 작업이 즉시 반영 (Auto Commit)이 되기 때문에 사용 시 주의가 필요
[ 종류 ]
명령어 종류 | 명령어 | 설명 |
DDL | CREATE | - 테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어 - 데이터 구조와 관련된 명령어 - 명령어 차례로 생성, 변경, 삭제, 이름 변경, 초기화를 의미 |
ALTER | ||
DROP | ||
RENAME | ||
TRUNCATE |
[ 주의 ]
DROP | TRUNCATE |
테이블 삭제 | 테이블 초기화 |
테이블을 잘못 생성했거나 더 이상 필요 없는 경우 | 테이블의 모든 행 일괄 삭제 |
![]() |
2.3 DCL
- 데이터 제어어 ( Data Control )
- 관계형 데이터베이스에서 권한 매개변수를 설정하는 데 사용
[ 특징 ]
- 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안의 역할
- 데이터의 정확성을 위한 무결성 유지
- 시스템 장애에 대비한 회복과 병행수행 제어
[ 종류 ]
명령어 종류 | 명령어 | 설명 |
DML | GRANT | DB에 접근하고 객체들을 사용하도록 권한을 주거나 회수하는 명령어 |
REVOKE |
2.4 TCL
- 트랜잭션 제어어 ( Transaction Control Language )
- DCL과 비슷한 맥락이나 데이터를 제어하는 언어가 아닌 트랜잭션을 제어
- 논리적인 작업 단위를 묶어 DML에 의해 조작된 결과를 트랜잭션별로 제어
[ 종류 ]
명령어 종류 | 명령어 | 설명 |
TCL | COMMIT | 모든 작업을 정상적으로 처리 |
ROLLBACK | 모든 작업을 다시 돌려 놓음 | |
SAVEPOINT | COMMIT 전 특정 시점까지만 반영하거나 ROLLBACK 하겠다 |
728x90