[정처기 필기] 「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 기본서 (길벗알앤디)
'💠기타 > 자격증' 카테고리의 다른 글
[정처기 필기] 「3」 | SQL 응용 - (3.4) DML - JOIN (1) | 2024.02.10 |
---|---|
[정처기 필기] 「3」 | SQL 응용 - (3.3) DML - SELECT 1, 2 (0) | 2024.02.10 |
[정처기 필기] 「3」 | SQL 응용 - (3.1) SQL 개념, DDL (1) | 2024.02.10 |
[정처기 필기] 「3」 | 물리 데이터베이스 설계 - (2.5) 데이터베이스 백업, 스토리지 (0) | 2024.02.09 |
[정처기 필기] 「3」 | 물리 데이터베이스 설계 - (2.4) 데이터베이스 보안 (접근통제) (1) | 2024.02.09 |