Database/MySQL

[MySQL] SQL 명령어 - DDL / DML / DCL / TCL

루루23 2024. 10. 11. 14:57
반응형

DDL, DML, DCL, TCL은 SQL에서 데이터베이스를 관리하는 주요 명령어들을 구분하는 카테고리입니다.
각 카테고리는 데이터베이스 내에서 서로 다른 작업을 수행하도록 도와줍니다.

 

1. DDL (Data Definition Language)

: 데이터 정의 언어, 데이터베이스의 구조(스키마)를 정의하고 수정하는 명령어. 대부분 자동으로 커밋(commit).

주요 DDL 명령어

  • CREATE: 테이블, 인덱스, 데이터베이스 등을 생성
  • ALTER: 기존의 테이블 구조를 수정
  • DROP: 테이블, 데이터베이스 등 삭제
  • TRUNCATE: 테이블은 남기고 테이블의 모든 데이터를 삭제,
 

[MySQL] MySQL 시작하기 - 데이터베이스, 테이블 생성 / 삭제 / 변경

자료형숫자형 : TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT, FLOAT, DECIMAL, DOUBLE문자형 : CHAR(n), VARCHAR(n), TINYTEXT(n), TEXT(n), MEDIUMTEXT(n), LONGTEXT(n)시간형 : DATE, TIME, DATETIME, TIMESTAMP, YEAR 데이터베이스 - 데이

newj23.tistory.com

 

2. DML (Data Manipulation Language)

: 데이터 조작 언어, 데이터베이스 내의 실제 데이터를 다루는 명령어. 변경사항이 바로 적용되지 않고 트랜잭션으로 관리됨.

주요 DML 명령어:

  • INSERT: 데이터 삽입
  • UPDATE: 데이터 수정
  • DELETE: 데이터 삭제
  • SELECT: 데이터 조회

 

 

[MySQL] 데이터 생성, 읽기, 수정, 삭제 - INSERT / SELECT / UPDATE / DELETE

먼저 사용할 테이블은 이러합니다.CREATE TABLE myhero ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(20), class INT NOT NULL, intelligence INT, strength INT, speed INT, durability INT, power INT, tier CHAR(5), PRIMARY KEY(id)); 데이

newj23.tistory.com

 

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];

 

반응형