반응형
DDL, DML, DCL, TCL은 SQL에서 데이터베이스를 관리하는 주요 명령어들을 구분하는 카테고리입니다.
각 카테고리는 데이터베이스 내에서 서로 다른 작업을 수행하도록 도와줍니다.
1. DDL (Data Definition Language)
: 데이터 정의 언어, 데이터베이스의 구조(스키마)를 정의하고 수정하는 명령어. 대부분 자동으로 커밋(commit).
주요 DDL 명령어
- CREATE: 테이블, 인덱스, 데이터베이스 등을 생성
- ALTER: 기존의 테이블 구조를 수정
- DROP: 테이블, 데이터베이스 등 삭제
- TRUNCATE: 테이블은 남기고 테이블의 모든 데이터를 삭제,
2. DML (Data Manipulation Language)
: 데이터 조작 언어, 데이터베이스 내의 실제 데이터를 다루는 명령어. 변경사항이 바로 적용되지 않고 트랜잭션으로 관리됨.
주요 DML 명령어:
- INSERT: 데이터 삽입
- UPDATE: 데이터 수정
- DELETE: 데이터 삭제
- SELECT: 데이터 조회
3. DCL (Data Control Language)
: 데이터 제어 언어, 데이터베이스 사용자에게 특정 권한을 부여하거나 취소하는 데 사용
사용자 확인하기
USE mysql;
SELECT user, host FROM user;
사용자 생성하기
CREATE USER [user_name]@[ip_address]
CREATE USER [user_name]@[ip_address] IDENTIFIED BY '[password]' -- 비밀번호까지 설정
DROP USER [user_name] -- 삭제
주요 DCL 명령어:
- GRANT: 사용자가 특정 작업을 수행할 수 있는 권한 부여
- REVOKE: 사용자가 가지고 있던 권한 취소
사용자에게 권한 부여
GRANT ALL PRIVILEGES ON db.tb TO user1@%;
-- @%: 해당 아이디를 가지는 모든 ip에서 접근을 허용
-- ALL PRIVILEGES: 모든 권한 부여
GRANT SELECT, INSERT ON *.* TO user1@%;
-- 모든 데이터베이스와 테이블에 대해 SELECT, INSERT 권한 부여
권한 확인
SHOW GRANTS FOR user1;
사용자 권한 취소
REVOKE INSERT ON db.employees FROM 'username';
권한 적용하기
FLUSH PRIVILEGES;
4. TCL (Transaction Control Language)
: 트랜잭션 제어 언어, 데이터베이스에서 여러 DML 작업을 하나의 단위로 묶어 관리하는 명령어.
주요 TCL 명령어:
- COMMIT: 트랜잭션 내의 모든 작업 확정, 변경사항 영구 저장
- ROLLBACK: 트랜잭션 내의 작업 취소, 데이터베이스 상태를 이전으로 되돌림
- SAVEPOINT: 트랜잭션 내에서 중간 저장 지점 설정
- SET TRANSACTION: 트랜잭션의 격리 수준 설정
-- 트랜잭션 시작
START TRANSACTION;
-- 변경사항 확정
COMMIT;
-- 또는 롤백(취소)
ROLLBACK;
SAVEPOINT [savepoint_name];
ROLLBACK TO [savepoint_name];
반응형
'Database > MySQL' 카테고리의 다른 글
[MySQL] 인덱스(Index): 종류, 설정 방법 (0) | 2024.10.15 |
---|---|
[MySQL] 서브쿼리(Subquery) 이용하기 (0) | 2024.10.14 |
[MySQL] 제약조건(Constraints): 데이터 무결성 유지하기 (0) | 2024.10.11 |
[MySQL] 테이블 연결하기 (JOIN) - INNER / OUTER / LEFT / RIGHT / CROSS / SELF (0) | 2024.10.11 |
[MySQL] 외래 키(Foreign Key)란? (1) | 2024.10.10 |