[DBMS] DDL / DML / DCL

형이·2023년 7월 25일
0

DBMS

목록 보기
14/17
post-thumbnail

📝 DDL

🖥️ 1. Data Definition Language

1-1. DDL이란

  • 데이터의 구조를 정의하기 위한 테이블 생성, 삭제 같은 명령어

1-2. DDL 종류

  • CREATE : 테이블 생성
EX1) 

    CREATE TABLE EMPLOYEES2(
	employee_id		number(10), 
	name 			varchar2(20),
	salary 			number(7,2)
	);
EX2)

    CREATE TABLE EMPLOYEES3
	AS
	SELECT * FROM EMPLOYEES2 e 
	;
  • DROP : 테이블(의 구조를) 삭제
EX)

	DROP TABLE EMPLOYEES3 ;
  • ALTER : 테이블 수정
EX1) 컬럼 추가

	ALTER TABLE EMPLOYEES2 add(
	manager_id varchar2(10)
	);
EX2) 컬럼 수정

	ALTER TABLE EMPLOYEES2 modify(
	manager_id	varchar2(20)
	);
EX3) 컬럼 삭제

	ALTER TABLE EMPLOYEES2 DROP COLUMN manager_id;
  • TRUNCATE : 테이블에 있는 모든 데이터 삭제 (데이터 비워내기)
EX)

	TRUNCATE TABLE EMPLOYEES2 ;

📝 DML

🖥️ 2. Data Manipulation Language

2-1. DML이란

  • 데이터 조작어
  • 데이터 조회 및 변형을 위한 명령어

2-2. DML 종류

  • INSERT

 📌 열 이름을 지정하지 않고 삽입하는 방법은 코딩을 짧게 해도 된다는 장점이 있지만 값의 순서가 변경될 경우 테이블이 망가질 수 있는 위험이 있다.

 📌 열 이름을 지정한 후 행 전체를 삽입하는 방법은 순서에 따라 값 매칭(matching)이 잘 되었는지 확인할 수 있고 오류가 적다.

 📌 열 이름을 지정하면 삽입하는 열의 순서가 바뀌어도 열 이름과 입력된 값이 대응하면 결과에 영향이 없다.

insert into 테이블명 values (값1, 값2, ...)

                         OR

insert into 테이블명 (컬럼1, 컬럼2, ...)
values (값1, 값2, ...)
EX)

	SELECT 	*
	FROM 	EMPLOYEES2 e ;
	INSERT INTO EMPLOYEES2 e VALUES(1, '테스트', 3000);
	INSERT INTO EMPLOYEES2 e VALUES(2, '홍길동', 5000);
  • UPDATE

    	update 테이블명 set 컬럼1 = 값1, 컬럼2 = 값2, ...
    	where 조건 
EX1)

    UPDATE 	SAMPLE SET DEPTNO = 50
	WHERE 	DEPTNO = 30
	;
EX2)

	UPDATE 	SAMPLE SET DEPTLOC = '인천'
	WHERE 	DEPTNAME = '영업부'
	;
  • DELETE

 📌 DELETE절을 사용할 때 WHERE 조건절을 사용하지 않으면 데이터 전체가 삭제될 수 있기때문에 주의해야 한다.

delete (from) 테이블명 where 조건;
EX)

	DELETE FROM SAMPLE s 
	WHERE 		DEPTNAME = '영업부'
	;

2-3. Drop vs Truncate vs Delete

📌 Drop : 테이블 존재 자체가 삭제

📌 Truncate : 데이터만 통으로 삭제

 ✔️ 테이블이 삭제되는 명령어 X, 테이블 안에 들어있던 모든 레코드들을 제거하는 명령어

 ✔️ 테이블을 Drop 했다가 Create

 ✔️ 모든 행을 삭제하는 가장빠르고 효율적인 방법

📌 Delete : 데이터 골라서 삭제

 ✔️ Delete는 truncate처럼 테이블 구조는 남기고 안의 데이터만 삭제

 ✔️ Delete는 부분삭제 가능

 ✔️ 내부 방식이 다르다 (한줄 한줄 삭제)

DropTruncateDelete
DDLDDLDML
Rollback 불가능Rollback 불가능Commit 이전에 가능
Auto CommitAuto CommitAuto Commit
테이블 자체를 완전히 삭제테이블을 최초 생성된 초기 상태로 만들기데이터만 삭제
로그 안 남음로그 안 남음로그 남음

📝 DCL

🖥️ 3. Data Control Language

3-1. DCL이란

  • 데이터 제어어
  • 사용자에게 권한 생성 혹은 권한 삭제 같은 명령어

3-2. DCL 종류

  • grant : 권한 생성
  • revoke : 권한 삭제

🔎 SQL에서는 수행한 내용을 취소할 수 있는 기능이 없다.

0개의 댓글

관련 채용 정보