SQL(Structured Query Language)

재현·2024년 6월 5일
post-thumbnail

🔍 SQL(Structured Query Language)

✍ 관계형 데이터베이스에서 데이터 조회 및 조작, DBMS 시스템 관리 기능을 명령하는 언어
✍ SQL 문법은 대,소문자를 구분하지 X

🔍 SQL 실행 순서

✍ FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
✍ 작성은 SELECT부터 하지만 실행은 위 순서와 같다.

🔍 SQL 종류

👉 데이터 정의 언어(DDL: Data Definition Language)
👉 데이터 조작 언어(DML:Data Manipulation Language)
👉 데이터 제어 언어(DCL:Date Control Language)
👉 트랜잭션 제어 언어(TCL: Transaction Control Language)

🔍 DML (Data Manipulation Language): 데이터 조작 언어

✍ 데이터베이스의 내부 데이터를 관리하기 위한 언어이다. 데이터를 조회, 추가, 변경, 삭제 등의 작업을 수행하기 위해 사용된다.
✍ SELECT는 DML이 아니라 DQL(Data Query Language)이라고도 한다.

용어설명
SELECT데이터베이스에서 데이터를 검색
INSERT테이블에 데이터를 추가
UPDATE테이블 내에 존재하는 데이터를 수정
DELETE테이블에서 데이터를 삭제

🔍 DDL (Data Definition Language): 데이터 정의 언어

✍ 테이블과 컬럼을 정의하는 명령어로 생성, 수정, 삭제 등의 데이터 전체 골격을 결정하는 역할을 담당한다.

용어설명
CREATE테이블을 생성
ALTER 테이블의 구조를 수정
DROP테이블을 삭제
RENAME테이블의 이름을 변경
TRUNCATE테이블을 초기화

🔍 DCL (Data Control Language): 데이터 제어 언어

✍ 데이터를 관리 목적으로 보안, 무결성, 회복, 병행 제어 등을 정의하는데 사용한다. 데이터베이스에 접근하여 읽거나 쓰는 것을 제한할 수 있는 권한을 부여하거나 박탈할 수 있고 트랜잭션을 명시하거나 조작할 수 있다.

용어설명
GRANT권한 부여
REVOKE권한 삭제

🔍 TCL (Transaction Control Language): 트랜잭션 제어 언어

✍ DCL과 비슷하지만 데이터가 아닌 트랜잭션을 제어할때 사용한다. 논리적인 작업 단위를 묶어 DML에 의해 조작된 결과를 트랜잭션 별로 제어한다.

✍트랜잭션은 데이터베이스의 논리적 연산 단위(하나의 연속적인 업무 단위) - 하나의 트랜잭션에는 하나 이상의 SQL 문장이 포함
✍ 분할 할 수 없는 최소의 단위
✍ ALL OR NOTHING 개념(모두 COMMIT 하거나 ROLLBACK 처리 해야 함)

🔍 트랜잭션 특성

✍ 원자성(atomicity) : 트랜잭션 정의된 연산들 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 함
✍일관성(consistency) : 트랜잭션 실행 전 데이터베이스 내용이 잘못되어 있지 않다면 트랜잭션 실행 이후에도 데이터베이스 내용의 잘못이 있으면 안됨
✍고립성(isolation) : 트랜잭션 실행도중 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안됨
✍지속성(durability) : 트랜잭션이 성공적으로 수행되면 갱신한 데이터베이스 내용이 영구적으로 저장

용어설명
COMMIT입력, 수정, 삭제한 데이터에 이상이 없을 경우 데이터를 저장하는 명령어
ROLLBACK테이블 내 입력한 데이터나 수정한 데이터, 삭제한 데이터에 대해 변경을 취소하는 명령어
SAVEPOINT트랜잭션 내에서 롤백을 부분적으로 수행하기 위해 사용되는 지점을 지정하는 데 사용

📌 오라클 데이터베이스를 공부하기 전 간단하게 sql 문법을 정리해봤다. 실제 쿼리문을 짜면서 각각의 문법을 자세하게 명시할 계획이다.

📖 reference

https://velog.io/@alicesykim95/DB-DDL-DML-DCL-TCL%EC%9D%B4%EB%9E%80
인프런 오라클 SQL 데이터베이스 강의

profile
운동과 코딩

0개의 댓글