[SQL] DCL, DDL, DML, TCL

김아름·2022년 8월 9일
0

SQLD

목록 보기
1/11
post-thumbnail


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)

: 정의된 데이터베이스에 레코드를 입력하거나, 수정, 삭제 및 조회하기 위한 명령어


    1. 메뉴명이 not null이라 오류발생
    1. 컬럼명 지정이 이루어지지 않은 상태에서는 전체값이 들어가야함
      --> 컴마(,)만이라도 찍었으면 됨

    1. TRUNCATE와 DROP은 로그를 남기지 않음
    1. 특정행 지울 수 있음 ( WHERE문 사용 )
    1. 되돌릴 수 있음 ( DB에 반영되기 전까지는 )
      : DDL인 TRUNCATE와 DROP은 불가능



TCL (Transaction Control Language)

: 트랜잭션을 제어하기 위한 언어

트랜잭션

데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위


정답 --> 10, 50, 30

  • 논리적 연관성 있는 작업을 그룹화하여 처리할 수 있다.



참고

profile
쿄쿄쿄

0개의 댓글