TCL
트랜잭션 제어어 (COMMIT, ROLLBACK, , )
트랜잭션 : 데이터베이스의 상태를 변화시키기 위해서 수행하는 최소 수행 단위
*트랜잭션의 4가지 특성
1. 원자성(Automicity) : 모두 실행되거나 실행 안되거나
2. 일관성(Consistency)
3. 고립성(Isolation)
4. 지속성(Durability)
COMMIT
DB에 영구적으로 저장, 마지막 COMMIT 시점 이후의 트랜잭션 결과 저장
ROLLBACK
트랜잭션을 취소, 마지막 COMMIT 시점까지만 복구
DCL
데이터 제어어 (GRANT, REVOKE, ROLE)
GRANT
권한 부여
GRANT CREATE SESSION TO DCLTEST;
REVOKE
권한 회수
REVOKE CREATE SESSION FROM DCLTEST;
ROLE 권한묶음
----------
*에러문장
* insufficient privileges
불충분한 권한
* table or view does not exist
실제 테이블이 존재하는경우에도 나올수 있는 오류문장, '보안상'의 이유임
흔히 사이트에 로그인할때 ID와 PW 둘중 뭐가 잘못된건지 알려주지않음.
VIEW
가상의 테이블
테이블을 조회하는 SELLECT 문장을 저장하는 객체, 물리적 저장 X
CREATE VIEW 로그인정보 AS
SELECT 회원ID, 비밀번호 FROM 네이버회원;
-- VIEW 삭제
DROP VIEW 로그인정보;
VIEW 사용 목적
편리성 : 자주 사용하는 SELECT문장 저장하기 위해 사용
보안성 : 테이블의 특정 데이터들을 노출시키지 않기 위해 사용
SEQUENCE
특정 규칙에 맞는 숫자를 생성해주는 객체, ex)대기순번표, 직원ID
CREATE SEQUENCE 직원ID_NUM
START WITH 100 -- 시작숫자
INCREMENT BY 2 -- 증감숫자
MAXVALUE 120 -- 최대값
MINVALUE 100 -- 최소값
NOCYCLE -- 반복여부
;
ROWNUM
임시 행번호, 행의 개수 제한
SELECT ROWNUM, EMPLOYEE_ID, FIRST_NAME
FROM EMPLOYEES
WHERE ROWNUM <=10;
출력시 행 10개까지만 출력
* 급여가 높은 순서대로 상위 5명 출력
SELECT FIRST_NAME, SALARY
FROM EMPLOYEES
WHERE ROWNUM<=5
ORDER BY SALARY DESC;
-> 틀린 문장임
- 실행순서가 ORDER BY보다 WHERE이 먼저라서
ROWNUM 부터 한 후 ORDER이 들어가서 정확한 값 X
*올바른 문장
SELECT *
FROM (SELECT FIRST_NAME, SALARY
FROM EMPLOYEES
WHERE SALARY IS NOT NULL
ORDER BY SALARY DESC)
WHERE ROWNUM <= 5;
'학습 기록 > DataBase' 카테고리의 다른 글
DataBase 연습문제 (0) | 2023.05.29 |
---|---|
23.05.15 / DataBase / DML (0) | 2023.05.15 |
23.05.10 / DataBase / DML (0) | 2023.05.10 |
23.05.09 / DataBase / ORDER BY, JOIN (0) | 2023.05.09 |
23.05.08 / DataBase / GROUP BY, HAVING (0) | 2023.05.08 |