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로
삭제하는 것이 효율적이다.
'데이터베이스' 카테고리의 다른 글
MySQL 문법정리 5. 내장 함수(수학, 시간 함수) (0) | 2022.04.19 |
---|---|
MySQL 문법정리 4. 변수, 내장 함수(조건문, 문자열 함수) (0) | 2022.04.18 |
MySQL 문법 정리 2. SELECT문 (GROUP BY, HAVING, 집계함수) (0) | 2022.04.16 |
MySQL 문법 정리 1. SELECT문 (where, 서브쿼리, order by, distinct 등) (0) | 2022.04.16 |
4주차 3, 몽고DB 사용법 (0) | 2022.01.15 |
댓글