[정처기 필기] 「3」 | SQL 응용 - (3.2) DCL, DML

728x90

[정처기 필기] 3」 | SQL 응용 - (3.2) DCL, DML

「1」 소프트웨어 설계

「2」 소프트웨어 개발

> 「3」 데이터베이스 구축

- 논리 데이터베이스 설계, 물리 데이터베이스 설계, > SQL 응용, SQL 활용, 데이터 전환

「4」  프로그래밍 언어 활용

「5」  정보시스템 구축 관리

 

1 SQL 개념

2 DDL

> 3 DCL

> 4 DML

5 DML - SELECT - 1

6 DML - SELECT - 2

7 DML - JOIN

3. DCL

DCL(Data Control Language, 데이터 제어어)의 개요

  

데이터의 보안, 무결성, 회복, 병행 제어 등 정의

 

- 데이터베이스 관리자가 데이터 관리를 목적으로 사용

 

GRANT / REVOKE

 

데이터베이스 관리자가 데이터베이스 사용자에게 권한을 부여 / 취소하기 위한 명령어

 

-- 사용자등급 지정 및 해제
GRANT 사용자등급 TO 사용자_ID_리스트 [IDENTIFIED BY 암호];
REVOKE 사용자등급 FROM 사용자_ID_리스트

 

- 사용자등급

  : DBA - 데이터베이스 관리자

  : RESOURCE - 데이터베이스 / 테이블 생성 가능자

  : CONNECT - 단순 사용자

 

ex)

GRANT CONNECT TO STAR;

// 사용자 ID가  'STAR'인 사람에게 단순히 정보를 검색할 수 있는 권한을 부여

 

-- 테이블 및 속성에 대한 권한 부여 및 취소
GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION];
REVOKE [GRANT OPTION FOR] 권한_리스트 ON 개체 FROM 사용자 [CASCADE];

 

- 권한 종류 : ALL, SELECT, INSERT, DELETE, UPDATE, ALTER 등

- WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한 부여

- GRANT OPTION FOR : 다른 사용자에게 권한을 부여할 수 있는 권한 취소

- CASCADE : 권한 취소 시 권한 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소

 

ex)

REVOKE GRANT OPTION FOR UPDATE ON 고객 FROM STAR;

// 사용자 ID가 'STAR'인 사람에게 부여한 <고객> 테이블에 대한 권한 중 UPDATE 권한을 다른 사람에게 부여하는 권한만 취소

 

COMMIT

 

트랜잭션이 성공적으로 끝나면, 변경된 모든 내용을 데이터베이스에 반영할 때 사용하는 명령어

 

- 명령을 실행하지 않아도 DML문이 성공적으로 완료되면 자동으로 COMMIT, 실패하면 ROLLBACK 되도록 Auto Commit 기능 설정 가능

 

ROLLBACK

 

아직 COMMIT 되지 않은 변경된 모든 내용들을 취소하고 데이터베이스를 이전 상태로 되돌리는 명령어

 

- 일부분만 완료된 트랜잭션은 ROLLBACK 되어야 함

 

SAVEPOINT

 

트랜잭션 내에 ROLLBACK 할 위치인 저장점 지정하는 명령어

 

- 저장점을 지정할 때 이름을 부여, ROLLBACK 시 지정된 저장점까지 트랜잭션 처리 내용이 취소

4. DML

DML(Data Manipulation Language, 데이터 조작어)의 개요

 

데이터베이스 사용자가 저장된 데이터를 실질적으로 관리

 

삽입문(INSERT INTO~)

 

새로운 튜플 삽입할 때 사용하는 명령

 

INSERT INTO 테이블명([속성명1, 속성명2, ...])
VALUES (데이터1, 데이터2, ...);

 

- 대응하는 속성데이터 개수데이터 유형이 일치해야 함

- 모든 속성을 사용할 때는 속성명 생략 가능

- SELECT 문을 사용하여 다른 테이블의 검색 결과 삽입 가능

- 날짜 데이터는 ' ' 또는 # #으로 묶어줌

 

ex)

INSERT INTO 사원 VALUES ('장보고', '기획', #05/03/73#, '홍제동', 90);

// <사원> 테이블에 (장보고, 기획, 05/03/73, 홍제동, 90)을 삽입

 

INSERT INTO 편집부원(이름, 생일, 주소, 기본급)

SELECT 이름, 생일, 주소, 기본급

FROM 사원

WHERE 부서 = '편집';

// <사원> 테이블에 있는 편집부의 모든 튜플을 편집부원(이름, 생일, 주소, 기본급) 테이블에 삽입

 

삭제문(DELETE FROM~)

 

특정 튜플을 삭제할 때 사용하는 명령문

 

DELETE
FROM 테이블명
[WHERE 조건];

 

- 모든 레코드를 삭제할 때 WHERE 절 생략

- 모든 레코드를 삭제하더라도 테이블 구조는 남아있기 때문에 DROP과 다름

 

ex)

DELETE

FROM 사원

WHERE 부서 = '인터넷';

// <사원> 테이블에서 '인터넷' 부서에 대한 모든 튜플 삭제

 

갱신문(UPDATE~ SET~)

 

특정 튜플의 내용을 변경할 때 사용하는 명령문

 

UPDATE 테이블명
SET 속성명 = 데이터[, 속성명=데이터, ...]
[WHERE 조건];

 

ex)

UPDATE 사원

SET 부서 = '기획', 기본급 = 기본급 + 5

WHERE 이름 = '황진이';

// <사원> 테이블에서 '황진이'의 '부서'를 '기획'부로 변경, '기본급'을 5만 원 인상

 

 

 

 

 

 

 

 

 

 

출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)

728x90