Database

[DB] MySQL DDL, DML, DCL 등 명령어

pongic 2022. 10. 7. 16:39
반응형

SQL 문법 종류

  • Data Definition Language(DDL)
  • Data Manipulation Language(DML)
  • Data Control Language(DCL)
  • Data Query Language(DQL)
  • Transaction Control Language(TCL)

 

Data Definition Language(DDL)

DDL은 데이터를 정의할 때 사용하는 언어이다. 테이블을 만들 때 사용하는 CREATE, 테이블을 제거할 때 사용되는 DROP 등이 해당된다. 데이터베이스의 테이블과 같은 오브젝트를 정의할 때 사용한다.

 

CREATE : 테이블을 생성하거나 데이터베이스를 생성하는 명령어

// 데이터베이스 생성
CREATE DATABASE [데이터베이스명];

// 테이블 생성
CREATE TABLE [테이블명];

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  username varchar(50),
  password varchar(50)
);

 

DROP : 생성한 테이블이나 데이터베이스를 삭제하는 명령어

// 데이터베이스 삭제
DROP DATABASE [데이터베이스명];

// 테이블 삭제
DROP TABLE [테이블명];

 

TRUNCATE : 생성한 테이블에서 데이터를 삭제하는 명령어

TRUNCATE TABLE [테이블명];

 

ALTER : 생성한 테이블에서 구조를 변경하는 명령어

// COLUMN 추가
ALTER TABLE [테이블명] ADD [컬럼명] [데이터타입];

// COLUMN 삭제
ALTER TABLE [테이블명] DROP [삭제할컬럼명];

// COLUMN 타입 수정
ALTER TABLE [테이블명] MODIFY [변경할컬럼] [변경할타입];

// COLUMN 이름 변경
ALTER TABLE [테이블명] CHANGE [기존칼럼명] [변경할컬럼명];

// COLUMN 테이블명 변경
ALTER TABLE [기존테이블명] RENAME [변경할테이블명];

 

Data Manipulation Language(DML)

DML은 데이터베이스에 데이터를 저장할 때 사용하는 언어이다. INSERT 처럼 새로운 레코드를 추가할 때, 데이터를 삭제하는 DELETE, 변경하는 UPDATE가 포함된다.

 

SELECT : 데이터 조회하는 명령어

// 테이블 내 모든 데이터 조회
SELECT * FROM [테이블명];

// 특정 컬럼 지정 조회
SELECT [컬럼명] FROM [테이블명];

// 조건 조회
SELECT [컬럼명] FROM [테이블명] WHERE [조건];

 

INSERT : 데이터 삽입하는 명령어

//모든 컬럼에 데이터 입력하는 경우
INSERT INTO [테이블명] VALUES([값1], [값2], ...);

//특정 컬럼을 지정해서 데이터 입력하는 경우
INSERT INTO [테이블명]([컬럼명1], [컬럼명2], ...) VALUES([값1], [값2], ...);
INSERT INTO [테이블명] SET [컬럼명]=[값], ...;

 

UPDATE : 데이터를 수정하는 명령어

UPDATE [테이블명] SET [컬럼명] = [값] ... WHERE [조건];

 

Data Control Language(DCL)

DCL은 데이터베이스에 대한 접근 권한과 관련된 문법이다. 어느 유저가 데이터베이스에 접근할 수 있는지 권한을 설정한다. 권한을 주는 GRANT나 권한을 가져가는 REVOKE등이 포함된다.

 

GRANT : 권한 설정하는 명령어

// 사용자 권한 부여
GRANT [권한종류] ON [대상] TO [계정명] IDENTIFIED BY [암호] [WITH GRANT OPTION];

// EX. 모든 권한을 가진 계정 생성
GRANT ALL ON *.* TO test@localhost IDENTIFIED BY "test1";

// GRANT로 계정생성 후 아래의 명령어를 실행해야 적용된다.
FLUSH PRIVILEGES;

 

REVOKE : 권한 삭제하는 명령어

// 권한 해제 명령어
REVOKE INSERT, UPDATE, CREATE ON [DB명,테이블명] TO [user@host];

// 전체 권한 해제 명령어
REVOKE ALL ON [DB명,테이블명] TO [user@host];

 

COMMIT : 작업한 결과를 물리적 디스크로 저장하고, 조작 작업이 완료됨을 사용자에게 알려주는 명령어

COMMIT;

 

ROLLBACK : 작업했던 내용을 원래의 상태로 복구하기 위한 명령어,  COMMIT 하기 이전의 상태만 ROLLBACK 가능

ROLLBACK;
반응형