본문 바로가기
데이터베이스

MySQL 문법 정리 3. 명령어 종류(DCL, DML, DCL), INSERT, UPDATE, DELETE문 정리

by 호놀롤루 2022. 4. 17.

1. 개요

SQL에서 명령어 종류는 3가지다.

  • DDL(Data Definition Language, 데이터 정의어) : DB(데이터베이스)를 만들거나 조작하는 언어
  • DML(Data Manifulation Language, 데이터 조작어) : DB안에 있는 테이블을 만들거나 조작하는 언어
  • DCL(Data Control Language, 데이터 제어어) : DB를 사용하는 사용자의 권한을 제어하는 언어

그리고 SELECT, INSERT, UPDATE, DELETE문은 DML에 속한다. 정리하면

  • INSERT : 테이블에 행(데이터) 삽입
  • UPDATE : 테이블에 있는 행 수정
  • DELETE : 테이블에 있는 행 삭제

 

2. 사용법

2-1. 명령어 상세 설명

2-1-1. DDL

DDL은 DB, 뷰, 인덱스 등 DB개체를 생성, 삭제, 변경하는 명령어다. 정리하면

  • CREATE, DROP, ALTER 등 명령어
  • DDL은 실행시, 즉시 SQL에 적용된다. (트랜잭션을 발생시키지 않는다. 즉, 롤백, 커밋(적용) 등을 사용할 수
    없다. 조심해서 써야됨)

 

2-1-2. DML

우리가 실질적으로 사용하는 테이블은 DB안에 있다. 그 테이블을 조작하는 언어가 DML이다. 정리하면

  • DML은 테이블이 있어야 사용할 수 있다.
  • DML은 트랜잭션이 발생하기에, 사용하면 바로 완전 적용되는 것이 아닌, 임시 적용이다. (취소할 수 있음)

 

2-1-3. DCL

사용자에게 권한을 부여하거나 박탈할 수 있다.

GRANT, REVOKE, DENY 등의 구문이 있다.

 

 

2-2. INSERT

INSERT문의 사용법은

INSERT INTO 테이블명(열1, 열2, ...) VALUES (값1, 값2, ...);

이런 식으로 사용할 수 있다.

테이블을 보면 데이터가 추가된 걸 확인할 수 있다.

그리고 모든 열을 꼭 채울 필요는 없다. 넣을 열만 입력하면 된다.

 

 

2-3. UPDATE

이미 들어간 값을 수정하는 구문이다.

UPDATE 테이블명 SET 열 = 값, 열 = 값, ... WHERE 조건;

이름이 '박아무개' 인 행의 학과를 '이탈리어과'로 바꾼 구문이다.

 

where절을 생략해도 되긴 한데, 어디까지 수정될지 모르니 조심해서 써야한다.

update문을 잘못쓰면 복구하는 게 꽤 까다로워서 조심하는 게 좋다.

 

 

2-4. DELETE

행 단위로 데이터를 삭제하는 구문이다.

DELETE FROM 테이블명 WHERE 조건;

student 테이블에서 이름이 '김아무개'인 행을 삭제하는 구문이다.

 

WHERE절이 없으면 테이블 안에 있는 모든 행을 삭제한다.

그리고 테이블을 삭제하는 것과 속도를 비교하면

DML인 DELETE는 트랜잭션 로그(복원할 수 있게)를 남기니 삭제 속도가 비교적 느리다.

DDL인 DROP문으로 삭제하면 로그를 남기지 않고 삭제하니 빠르게 삭제할 수 있다.

 

DDL인 TRUNCATE의 경우, 테이블을 삭제하지 않고, 데이터만 삭제하니 TRUNCATE로

삭제하는 것이 효율적이다.

댓글