반응형
SQL은 관계형 데이터베이스를 다루는 데 있어 필수적인 도구이다. 본 글을 통해 SQL 명령어의 전체적인 구조를 이해할 수 있도록, SQL의 기본적인 명령어들을 알기 쉽게 정리해봤다.
SQL 명령어의 4 가지 종류
SQL 명령어는 용도에 따라 크게 네 가지로 분류된다. 각각의 특징과 주요 명령어들을 살펴보자.
1. 데이터 조작어(DML)
DML(Data Manipulation Language)은 데이터의 조회/입력/수정/삭제와 같이 실제 데이터를 다루는 데 사용되는 명령어들이다. 개발자들이 가장 자주 사용하는 명령어들이 여기에 속한다.
- SELECT: 데이터 조회
- INSERT: 새로운 데이터 삽입
- UPDATE: 기존 데이터 수정
- DELETE: 데이터 삭제
SELECT * FROM users; -- 데이터 조회
INSERT INTO users VALUES ('Kim', 30); -- 데이터 삽입
UPDATE users SET age = 31 WHERE name = 'Kim'; -- 데이터 수정
DELETE FROM users WHERE name = 'Kim'; -- 데이터 삭제
2. 데이터 정의어(DDL)
DDL(Data Definition Language)은 데이터베이스의 구조를 정의하는 명령어들이다. 테이블을 생성하거나 수정할 때 사용된다.
- CREATE: 새로운 데이터베이스 객체 생성
- ALTER: 기존 데이터베이스 객체 구조 수정
- DROP: 데이터베이스 객체 삭제
- TRUNCATE: 테이블의 모든 데이터 삭제
- RENAME: 객체 이름 변경
CREATE TABLE users (
id INT PRIMARY KEY,
name VARCHAR(50),
age INT
);
ALTER TABLE users ADD COLUMN email VARCHAR(100);
DROP TABLE users;
TRUNCATE TABLE users;
3. 데이터 제어어(DCL)
DCL(Data Control Language)은 데이터베이스의 접근 권한을 관리한다. 주로 데이터베이스 관리자가 사용하는 명령어들이다.
- GRANT: 사용자에게 권한 부여
- REVOKE: 사용자의 권한 회수
GRANT SELECT ON users TO employee;
REVOKE SELECT ON users FROM employee;
4. 트랜잭션 제어어(TCL)
TCL(Transaction Control Language)은 데이터베이스의 트랜잭션을 관리한다. 데이터의 일관성을 유지하는 데 중요한 역할을 한다.
- COMMIT: 트랜잭션의 작업 내용을 영구적으로 저장
- ROLLBACK: 트랜잭션의 작업을 취소하고 이전 상태로 복구
- SAVEPOINT: 트랜잭션 내에 저장점 설정
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 1000 WHERE id = 1;
UPDATE accounts SET balance = balance + 1000 WHERE id = 2;
COMMIT;
실무에서 자주 사용되는 조합
실제 개발 환경에서는 여러 명령어를 조합해서 사용하는 경우가 많다. 다음은 자주 사용되는 패턴의 예시이다:
-- 새로운 테이블 생성
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50),
department VARCHAR(50)
);
-- 데이터 삽입
INSERT INTO employees (id, name, department)
VALUES (1, 'Kim', 'IT'), (2, 'Lee', 'HR');
-- 데이터 조회 및 수정
SELECT * FROM employees WHERE department = 'IT';
UPDATE employees SET department = 'Development' WHERE department = 'IT';
마치며
SQL은 데이터베이스를 다루는 데 있어 가장 기본이 되는 도구이다. 위의 네 가지 유형의 명령어들을 잘 이해하고 있다면, 대부분의 데이터베이스 작업을 수행할 수 있다. 특히 처음에는 DML 명령어들을 중점적으로 학습하시는 것이 추천된다.
반응형
'Database > SQL' 카테고리의 다른 글
[SQL] SQL 데이터 타입 (0) | 2025.01.27 |
---|