🎇 SQL이란?
- Structed Query Language로 구조적 쿼리 언어이다.
- RDBMS에 정보를 저장하고 처리하기 위한 프로그래밍 언어
- RDBMS는 정보를 테이블 형식으로 저장
- SQL문을 사용해 DB에서 정보를 저장, 업데이트, 제거, 검색할 수 있음
🎇 SQL 실행 과정
- Parse: 구문 분석
- Bind
- Execute
- Fetch
🎇 SQL 명령어
1. DDL (Data Definition Language)
- 데이터 정의 언어
- DB 구조를 설계하는 SQL 명령어
- 테이블과 칼럼의 생성, 수정, 삭제 등을 결정
- 즉시 반영되서 사용할 때 주의해야함
- CREATE, ALTER, DROP, RENAME, COMMENT, TRUNCATE ....
2. DML (Data Manipulation Language)
- 데이터 조작 언어
- DB 내부의 데이터 관리를 위한 언어
- 데이터 조회, 추가, 변경, 삭제 등의 작업
- 즉시 반영이 아니라 ROLLBACK으로 되돌 릴 수 있음
- SELECT, INSERT, UPDATE, DELETE, MERGE, CALL, EXPLAIN PLAN, LOCK TABLE
3. DCL (Data Control Language)
- 데이터 제어 언어
- 보안, 무결성, 회복, 병행 제어 등을 정의하는데 사용
- GRANT, REVOKE ...
4. TCL (Transaction Control Language)
- 트랜잭션 제어 언어
- DCL과 비슷하나, 데이터 제어가 아닌 트랜잭션 제어시 사용
- COMMIT, ROLLBACK, SAVEPOINT, TRANSACTION ...
🧨 트랜잭션이란?
DB 상태를 변화시키기 위해 수행하는 작업 단위
예를 들어 MySQL의 입력하는 모든 명령어가 각각 하나의 트랜잭션
🎇 View란?
- 하나 이상의 테이블로부터 유도된, 가상의 테이블
- 물리적으로 존재 x, 사용자에게 있는 것 처럼 간주
- 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용
🧨 Why View?
데이터의 추상화
: 사용자가 특정 테이블에 직접 접근하지 않고, 필요한 정보만을 담은 뷰를 통해 데이터에 접근
보안 및 권한 제어
: 특정 사용자나 역할에게 특정 열이나 행에 대한 접근 권한을 제한하기 위해 뷰를 사용
복잡한 쿼리 단순화
: 복잡한 조인이나 계산을 포함하는 쿼리를 하나의 뷰로 정의하여 사용자가 간편하게 접근
독립성 제공
: 뷰를 사용하면 뷰의 정의가 변경되더라도 해당 뷰를 사용하는 응용 프로그램은 영향을 받지 않음, 데이터의 논리적 구조를 응용 프로그램과 분리