Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 독서
- spring
- github
- springboot
- 네트워크
- 인터페이스
- 티스토리챌린지
- 오블완
- 명령어
- 책
- 리눅스
- pandas
- Linux
- PostgreSQL
- java
- 넥사크로
- JAVA8
- oracle
- mysql
- IntelliJ
- SQL
- 책추천
- Python
- docker
- git
- Javascript
- 후기
- DBMS
- MariaDB
- mssql
Archives
- Today
- Total
hanker
[DATABASE] DDL, DML, DCL 에 대해 본문
반응형
이번 글에서는 DATABASE에서 사용되는 SQL 언어 DDL, DML, DCL에 대해서 알아보자.
1. DDL (Data Definition Language)
DDL(데이터 정의) : 뼈대 만들기
- 데이터베이스 객체(테이블, 뷰, 인덱스 등)의 구조를 생성, 수정, 삭제 하는 명령어 모음이다.
- CREATE TABLE : 새 테이블(혹은 뷰, 인덱스 등)을 만든다.
- ALTER TABLE : 이미 만든 테이블의 컬럼 추가, 변경, 삭제 등 구조를 바꾼다.
- DROP TABLE : 테이블(혹은 뷰, 인덱스 등)을 통째로 제거한다.
-- 고객 테이블 생성
CREATE TABLE Customer (
id INT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
-- 컬럼 추가
ALTER TABLE Customer
ADD signup_date DATE;
-- 테이블 삭제
DROP TABLE Customer;
2. DML (Data Manipulation Language)
DML(데이터 조작) : 데이터를 쓰고, 지우고, 수정하는 역할
- 테이블에 저장된 실제 데이터를 조회, 삽입, 수정 삭제하는 명령어 모음이다.
- SELECT : 데이터 조회
- INSERT : 새 레코드(행) 추가
- UPDATE : 기존 레코드 수정
- DELETE : 기존 레코드 삭제
-- 전체 고객 조회
SELECT * FROM Customer;
-- 새 고객 추가
INSERT INTO Customer (id, name, email, signup_date)
VALUES (1, '한커', 'hanker@example.com', '2025-04-28');
-- 이메일 주소 수정
UPDATE Customer
SET email = 'hanker2@example.com'
WHERE id = 1;
-- 특정 고객 삭제
DELETE FROM Customer
WHERE id = 1;
3. DCL (Data Control Language)
DCL(데이터 제어) : 권한 관리 역할
- 데이터베이스 사용 권한을 부여하거나 회수(취소)하는 명령어 모음이다.
- GRANT : 사용자에게 특정 작업(SELECT, INSERT 등) 권한을 준다.
- REVOKE : 이미 준 권한을 회수한다.
-- hanker에게 Customer 테이블 조회 권한 부여
GRANT SELECT ON Customer TO hanker;
-- hanker의 권한 회수
REVOKE SELECT ON Customer FROM hanker;
정리
구분 | 목적 | 주요 명령어 |
DDL | 테이블, 인덱스 등 구조 정의 | CREATE, ALTER, DROP |
DML | 실제 데이터 조작 | SELECT, INSERT, UPDATE, DELETE |
DCL | 사용자 권한 관리 | GRANT, REVOKE |
반응형
'DATABASE' 카테고리의 다른 글
[SQL] COALESCE (Null 값 처리 함수) (5) | 2025.06.18 |
---|---|
[DATABASE] ALTER 명령어 (테이블 컬럼 추가, 삭제) (3) | 2025.06.17 |
[DATABASE] LPAD, RPAD 함수 (문자열 양쪽에 특정 문자열 채우기) (4) | 2025.06.16 |
[DATABASE] B-Tree 인덱스란? (0) | 2025.05.23 |