관리 메뉴

DevBlackCat

정보처리기사 : SQL 작성 (2) 완전정복!! 본문

정보처리기사/데이터베이스 구축

정보처리기사 : SQL 작성 (2) 완전정복!!

DevBlackCat 2024. 12. 9. 12:55
728x90

DML

UPDATE

  • 모든 직원의 나이를 1씩 증가
UPDATE 사원정보 
SET
 나이 = 나이 + 1
  • 개발팀 부서명을 개발지원팀으로 변경
UPDATE 사원정보
SET 
 부서 = '개발지원팀'
WHERE 부서 = '개발팀'
  • DROP: 테이블 삭제
-- 회원 테이블 삭제
DROP TABLE 회원;

② DELETE

  • 개발팀 직원만 삭제
DELETE FROM 사원정보
WHERE 부서 = '개발팀'
  • 디자인팀 이창훈만 삭제
DELETE FROM 사원정보
WHERE 부서 = '디자인팀'
AND 이름='이창훈'

 

 

DCL

  • 데이터베이스에 접근하거나 객체에 대한 권한을 주고 빼는 역활을 한다.

GRANT

  • 기본형태

:GRANT [권한] ON [객체명] TO [계정]

[WITH GRANT OPTION];

( WITH GRANT OPTION = 지정된 권한을 다른 유저에게 부여할수있도록함 )

 

  • HUNGJLK 사용자에게 사원정보 SELECT 권한 부여
GRANT SELECT ON 사원정보 TO HUNGJLK

 

  • HUNGJLK 사용자에게 사원정보 SELECT 권한 부여 하고 다른사용자에게 부여 할수있게함
GRANT SELECT ON 사원정보 TO HUNGJLK
WITH GRANT OPTION;

 REVOKE

  • 권한을 회수 하는 명령

:REVOKE [권한] ON [객체명] FROM [계정]

[CASCADE];

( CASCADE  = 사용자가 부여한 모든 사용자 권한을 같이 회수 )

 

  • HUNGJLK 사용자에게 사원정보 SELECT 권한 회수
REVOKE SELECT ON 사원정보 FROM HUNGJLK

 

  • HUNGJLK 사용자에게 사원정보 SELECT 권한 회수 [사용자가 부여한 모든 권한을 같이 회수]
REVOKE SELECT ON 사원정보 FROM HUNGJLK
CASCADE;

 

 

TCL

  • 트랜잭션을 제어하는데 사용하는 명령어로 COMMIT 과 ROLLBACK 이 있다.
COMMIT: 트랜잭션에서 수행된 변경 사항을 데이터베이스에 영구적으로 저장.
ROLLBACK: 트랜잭션 중 수행된 변경 사항을 취소하고 이전 상태로 복원.
ROLLBACK: 트랜잭션 중  저장점 지 

 

트랜잭션 ★★

  • 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하는 작업 단위이다.
  • 하나의 일처리 단위로 묶음
원자성★
(Atomicity)
- 트랜잭션 내의 모든 연산은  모두 반영되거나 전혀 반영되자않아야 한다.
- 오류 발생시 트랜잭션 전체가 취소되며 COMMIT 과 ROLLBACK 명령에 의해 이 성질이 보장 된다.

일관성
(Consistency) 
- 트랜잭션의 완료후에는 데이터베이스가 일관된 상태를 유지해야한다.
독립성, 격리성 (Isolation) - 동시에 실행되는 여러 트랜잭션들은 서로 간섭할 수 없으며, 각각 독립적으로 실행되어야 한다.
- 한 트랜잭션이 완료될 때까지 다른 트랜잭션은 그 결과를 볼 수 없다.
영속성
(Durability)
- 트랜잭션이 한번 COMMIT되면, 그 결과는 시스템에 고장이 발생해도 영구적으로 반영되어야 한다.

 

 

 

 

 

 

철회 (Aborted)

  • 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태

부분 완료 (Partially Committed)

  • 트랜잭션의 마지막 연산까지 실행했지만, Commit 연산이 실행되기 직전의 상태

 

728x90