관계형 데이터베이스에 대해 데이터의 구조를 정의, 데이터 조작, 데이터 제어 등을 할 수 있는 절차형 언어
# CRUD[Create Read Update Delete]
대부분의 컴퓨터 소프트웨어가 가지고 있는 기본적인 데이터 처리 기능
Create[생성], Read[읽기], Update[갱신], Delete[삭제]를 의미
# 제품별로 SQL 사용법이 다른 이유
1970년대 후반에 RDBMS 상용 제품이 출시된 뒤, 다양한 제품들이 등장
하지만 1986년이 되어서야 ANSI[American National Standards Institute]에서 SQL 표준인 'SQL-87'을 제정
RDBMS 제조사들이 버전을 업데이트하면서 가급적 표준을 준수하는 방향으로 나아갔지만 아직 약간의 차이 존재
ANSI/ISO SQL 표준 | INNER JOIN NATURAL JOIN, USING 조건, ON 조건절을 사용 |
ANSI/ISO SQL3 표준 | DBMS 벤더별로 차이가 있던 SQL을 표준화하여 제정 |
DDL [Data Definition Language] |
테이블, 뷰, 인덱스, 시퀀스, 동의어 등의 데이터베이스 객체들을 생성*삭제*수정하는데 사용되는 SQL문[데이터를 저장할 구조를 정의하는 언어] |
* CREATE : 객체 생성 * DROP : 객체 삭제 * ALTER : 객체 변경 * RENAME : 객체 이름 변경 * TRUNCATE TABLE : 테이블 내의 데이터 전부 삭제[복구 불가] |
|
DML [Data Manipulation Language] |
데이터를 직접 조작하는 것이 가능해 가장 많이 사용하는 SQL문 |
* SELECT : 테이블이나 뷰에서 데이터 조회 * INSERT : 데이터 입력 * UPDATE : 기존에 저장된 데이터 수정 * DELETE : 테이블 내의 데이터 삭제[조건에 맞는 데이터만 삭제 가능, 복구 가능] * MERGE : 조건에 따라 INSERT와 UPDATE 수행 |
|
TCL [Transaction Control Language] |
트랜잭션을 처리하는 SQL문 |
* COMMIT : DML로 변경된 데이터를 DB에 적용 * ROLLBACK : DML로 변경된 데이터를 변경 이전 상태로 되돌림 * SAVEPOINT : 오류 복구 처리에 효과적인 방법 → 전체 트랜잭션을 ROLLBACK하지 않고도 오류 복귀 가능 |
|
DCL [Data Control Language] |
객체에 대한 권한을 할당하거나 회수하는 SQL문 |
* CRANT : 객체에 대한 권한을 할당 * REVOKE : 객체에 할당된 권한을 회수 * TRUNCATE : 개별 행 삭제를 로깅하지 않고 테이블 또는 테이블의 지정된 파티션에서 모든 행을 제거 |
※ DCL로 데이터 베이스의 사용자에게 권한 부여
→ 권한이 부여되면 DDL로 데이터 구조 정의
→ 데이터 구조가 정의되면 DML로 데이터 입력 및 조회
→ TCL로 변경된 데이터를 적용하거나 오류를 복구시킴
※ TRUNCATE는 테이블 자체가 삭제되는 것이 아니고 해당 테이블에 들어있던 모든 행이 제거되고 저장공간을 재사용 가능하도록 제거
※ TRUNCATE는 삭제 로그를 남기지 않음[삭제 로그가 필요할 경우 DELETE로 삭제]
# 트랜잭션[Transaction]
데이터베이스의 작업을 처리하는 단위
파싱[Parsing] → 실행[Execution] → 인출[Fetch]
1. 파싱[Parsing] | SQL문의 문법을 확인하고 구문분석 구분분석한 SQL문은 Library Cache에 저장 |
2. 실행 [Execution] | 옵티마이저[Optimizer]가 수립한 실행 계획에 따라 SQL을 실행 |
3. 인출[Fetch] | 데이터를 읽어서 전송 |
[개미의 걸음 SQLD 2과목] SQL기초 ② 데이터 유형 & 형변환 (0) | 2020.12.19 |
---|---|
[개미의 걸음 SQLD 2과목] SQL기초 ① 연산자 (0) | 2020.12.18 |
[개미의 걸음 SQLD 2과목] ROWID, ROWNUM (0) | 2020.12.16 |
[개미의 걸음 SQLD 2과목] 관계형 데이터베이스(Relation Database) (0) | 2020.12.15 |
[개미의 걸음 SQLD 1과목] 분산 데이터베이스 (0) | 2020.12.14 |
댓글 영역