SQL(Structured Query Language) 이란?
관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어이다. 원하는 데이터를 찾는 방법이나 조건을 기술하여 작성한다.
DQL (Data Query Language)
DQL은 데이터를 검색하는 용도로 사용되고 SELECT문이 DQL에 해당된다. 흔히 DML로 같이 묶여서 얘기하지만 정확히 따지자면 DQL로 분류된다.
데이터를 검색하는 SELECT
SELECT를 통해서 한 테이블의 특정 컬럼, 행, 또는 여러 테이블의 특정 행, 컬럼을 조회할 수 있다. 그리고 SELECT를 통해 반환된 결과를 의미하는 것을 Result Set이라고 한다. Result Set은 0개 이상의 행이 포함될 수 있고 특정한 기준에 의해 정렬이 가능하다.
SELECT 조회하고자 하는 정보
FROM 테이블명
WHERE 조건식;
DML (Data Manipulation Language)
DML은 데이터를 조작하는 언어로 데이터 추가, 수정, 삭제하는 용도로 사용된다.
데이터를 추가하는 INSERT
INSERT INTO 테이블명 VALUES (값1, 값2, ...);
INSERT INTO 테이블명 (컬럼명1, 컬럼명2, 컬럼명3) VALUES (값1, 값2, 값3);
INSERT INTO 테이블명 (서브쿼리);
추가된 데이터를 수정하는 UPDATE
UPDATE 테이블명
SET 컬럼명 = 변경할 값,
컬럼명 = 변경할 값,
...
[WHERE 조건식];
UPDATE를 하기 전에는 항상 UPDATE를 할 데이터를 SELECT를 통해 조회하자!
데이터를 삭제하는 DELETE
DELETE FROM 테이블명
[WHERE 조건식];
DDL (DATA Definition Language)
DDL은 데이터 정의 언어로 객체를 생성, 변경, 삭제하는 용도로 사용된다. 실제 데이터가 아닌 규칙 / 구조를 정의한다. 객체의 종류는 테이블, 시퀀스, 트리거 등등 있다.
객체를 새로 생성하는 CREATE
-- [테이블을 생성]
-- 테이블 : 행과 열로 구성되는 가장 기본적인 객체. 모든 데이터들은 테이블을 통해 저장됨
CREATE TABLE 테이블명 (
컬럼명 데이터타입(크기),
컬럼명 데이터타입,
컬럼명 데이터타입(크기),
);
객체를 변경하는 ALTER
ALTER문을 사용하여 객체를 변경할 수 있다. 예시로 테이블에 정의된 내용을 변경할 경우 컬럼을 추가 / 수정 / 삭제를 할 수 있고 제약조건을 추가 / 삭제할 수 있다. 하지만 제약조건은 수정이 불가하다. 제약조건을 변경해야 할 경우 삭제하고 다시 추가해야 한다.
ALTER TABLE 테이블명 변경할내용
객체를 삭제하는 DROP
DROP문을 사용하여 객체를 삭제할 수 있다. 예시로 테이블을 삭제할 경우 해당 테이블명을 작성해 주면 된다. 이때 테이블 구조 자체가 삭제되고 해당 테이블이 참조하고 있는 부모테이블이 있을 경우 부모테이블은 삭제되지 않는다.
DROP TABLE 테이블명;
DCL (Data Control Language)
데이터 제어 언어로서 계정에 시스템 권한 / 객체 접근 권한을 부여하거나 회수하는 언어이다.
권한을 부여하는 GRANT
GRANT 권한종류 ON 특정객체 TO 계정명;
시스템 권한 종류
- CREATE SESSION : 접속 권한
- CREATE TABLE : 테이블 생성 권한
- CREATE VIEW : 뷰 생성 권한
- CREATE SEQUENCE : 시퀀스 생성 권한
- ...
권한을 회수하는 REVOKE
REVOKE 회수할권한 FROM 계정명;
TCL (Transaction Control Language)
트랜잭션
- 데이터베이스의 논리적인 연산 단위
- 데이터의 변경사항들(DML 사용 시)을 하나의 묶음처럼 트랜잭션에 모아둠
- DML문 한 개를 수행할 때 트랜잭션이 존재하면 해당 트랜잭션에 모아서 같이 처리
- 트랜잭션이 존재하지 않으면 트랜잭션을 만들어서 묶음
- COMMIT 사용하기 전까지의 변경사항들을 하나의 트랜잭션으로 담게 됨
- 트랜잭션의 대상이 되는 SQL : INSERT, UPDATE, DELETE (DML)
트랜잭션 종류
- COMMIT : 트랜잭션에 담겨 있는 변경사항들을 실제 DB에 적용하겠다는 의미
- ROLLBACK : 트랜잭션에 담겨져 있는 변경사항들을 삭제(취소)하고, 마지막 COMMIT 시점으로 돌아감
- SAVEPOINT 포인트명 (☞시점명) : 현재 시점에 변경사항들을 임시로 저장해 두는 것을 의미
- ROLLBACK 시 전체 변경사항들을 모두 삭제하지 않고, 해당 위치까지만 취소가 가능!
'데이터베이스' 카테고리의 다른 글
[ORACLE] 함수 - 단일행 함수와 그룹 함수 (0) | 2025.03.12 |
---|---|
[ORACLE] SQL - ORDER BY (ASC/DESC) (0) | 2025.03.12 |
[ORACLE] SELECT - 연산자, 연산자 우선순위 (0) | 2025.03.12 |
[ORACLE] SQL - SELECT문 (0) | 2025.03.12 |
[ORACLE] 관계형 데이터베이스(RDB) (0) | 2025.02.28 |