DCL (Data Control Language)
: 데이터베이스 사용자에게 권한을 부여/회수하는 언어
GRANT 권한부여
REVOKE 권한회수
- 문제
데이터베이스 상에서 많은 사용자들에게 개별적으로 권한을 부여하고 관리하는 어려움을 해소하고자 다양한 권한을 하나의 그룹으로 묶어서 관리할 수 있도록 하는 논리적인 권한의 그룹(명령어)을 칭하는 말은?
정답 --> ROLE
ROLE
- 다양한 권한을 다양한 유저를 대상으로 관리하기 위한 명령어
- 여러사용자에게 동일한 ROLE 부여 가능
- ROLE 생성은[CREATE ROLE] 권한을 가진 유저가 할수있음
ex) GRANT 관리자권한 TO hoho;
DDL (Data Definition Language)
: 데이터를 보관하고 관리하기 위한 객체의 구조를 정의하기 위한 언어
1. CREATE: 데이터베이스 상 테이블 구조 생성
- 문제
김호호씨가 아래와 같이 테이블 menu를 생성한 후, 유효한 튜플 값 4개를 삽입 했다. SQL-a와 SQL-b의 실행결과는?
정답 --> 둘다 4로 같다.
2. ALTER: 테이블과 컬럼에 대해 이름 및 속성 변경, 추가/삭제 등 구조 수정을 위해 사용
3. DROP: 테이블 및 컬럼 삭제
DML (Data Manipulation Language)
: 정의된 데이터베이스에 레코드를 입력하거나, 수정, 삭제 및 조회하기 위한 명령어
- 메뉴명이 not null이라 오류발생
- 컬럼명 지정이 이루어지지 않은 상태에서는 전체값이 들어가야함
--> 컴마(,)만이라도 찍었으면 됨
- TRUNCATE와 DROP은 로그를 남기지 않음
- 특정행 지울 수 있음 ( WHERE문 사용 )
- 되돌릴 수 있음 ( DB에 반영되기 전까지는 )
: DDL인 TRUNCATE와 DROP은 불가능
TCL (Transaction Control Language)
: 트랜잭션을 제어하기 위한 언어
트랜잭션
데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
정답 --> 10, 50, 30
- 논리적 연관성 있는 작업을 그룹화하여 처리할 수 있다.
참고