반응형
목차
트랜잭션
- 논리적인 하나의 작업 단위
- 더 이상 분할할 수 없는 최소 수행 단위
- 커밋을 하는 순간까지 알 수 없다.
- 커밋을 하는 순간
- DDL
- COMMIT
- ROLLBACK
- 커밋을 하는 순간
- 트랜잭션 과정
select * from emp_temp
9999 홍길동 PRESIDENT 01/01/01 5000 1000 10
1111 성춘향 MANAGER 9999 01/01/05 4000 20
2111 이순신 MANAGER 9999 01/10/07 4000 20
3111 심청이 MANAGER 9999 25/04/24 4000 30
7369 SMITH CLERK 7902 80/12/17 800 20
7876 ADAMS CLERK 7788 87/05/23 1100 20
7900 JAMES CLERK 7698 81/12/03 950 30
delete from emp_temp
7개 행 이(가) 삭제되었습니다.
select * from emp_temp
출력 결과 없음
rollback;
7개 행 이(가) 삭제되었습니다.
select * from emp_temp
9999 홍길동 PRESIDENT 01/01/01 5000 1000 10
1111 성춘향 MANAGER 9999 01/01/05 4000 20
2111 이순신 MANAGER 9999 01/10/07 4000 20
3111 심청이 MANAGER 9999 25/04/24 4000 30
7369 SMITH CLERK 7902 80/12/17 800 20
7876 ADAMS CLERK 7788 87/05/23 1100 20
7900 JAMES CLERK 7698 81/12/03 950 30
SESSION
- 어떤 활동을 위한 시간이나 기간
- 접속
- 접속의 단위
- 브라우저 마다 다름
LOCK
- 특정 세션에서 조작중인 데이터는 트랜잭션이 완료되기 전까지 다른 세션에서 조작할 수 없는 상태가 됨
SELECT * FROM EMP_TEMP WHERE EMPNO = '1111'
-- 다른 세션에서 성춘향의 부서를 30으로 변경
-- 여기 세션에서 트랜잭션 종료
CONMMIT;
-- 지정한 위치 롤백
UPDATE EMP_TEMP SET SAL=SAL + 1000 WHERE ENPNO = 9999;
SAVEPOINT SP1
UPDATE EMP_TEMP SET SAL=SAL + 1000 WHERE ENPNO = 9999;
SAVEPOINT SP1
UPDATE EMP_TEMP SET SAL=SAL + 1000 WHERE ENPNO = 9999;
SAVEPOINT SP1
COMMIT
데이터 정의어 (DDL)
- 데이터베이스 데이터를 보관하고 관리하기 위해 제공되는 여러 객체의 생성, 변경, 삭제 관련 기능을 수행
- 종류
- CREATE
- ALTER
- DROP
- RENAME
- TRUNCATE
CREATE
- 오라클 데이터베이스 객체를 생성하는데 사용하는 명령어
CREATE TABLE 소유 계정.테이블 이름(
열1 이름 열1 자료형,
열2 이름 열2 자료형
...
)
- 규칙
- 테이블 이름 생성 규칙
- 테이블 이름은 문자로 시작
- 테이블 이름은 30byte 이하, (한글은 15byte)
- 같은 사용자 소유의 테이블 이름은 중복될 수 없다.
- 테이블 이름은 영문자, 숫자. 특수 문자 $,#,_ 사용 가능
- 예약어 사용 불가능
- 열 이름 생성 규칙
- 열 이름은 문자로 시작
- 열 이름은 30byte 이하
- 한 테이블의 열 이름은 중복될 수 없다.
- 열 이름은 영문자, 숫자. 특수 문자 $,#,_ 사용 가능
- 예약어 사용 불가능
- 테이블 이름 생성 규칙
- 자료형을 각각 정의하여 새 테이블을 생성할 수 있다.
- CREATE TABLE EMP_DDL( EMPNO NUMBER(4), ENAME VARCHAR2(10) ... ); DESC EMP_DDL;
- 다른 테이블 복사
- CREATE TABLE DEPT_DDL AS SELECT * FROM DEPT;
- 기존 테이블 열 구조와 일부 데이터만 복사
- CREATE TABLE EMP_DDL_30 AS SELECT * FROM EMP WHERE DEPTNO = 30;
- 기존 테이블의 열 구조만 복사
- CREATE TABLE EMPDEPT_DDL AS SELECT E.EMPNO, E.NAME, E.JOB ... FROM EMP E, DEPT D WHERE 1 <> 1;
ALTER
- 이미 생성된 오라클 데이터베이스 객체를 변경할 때 사용
- 새 열을 추가하거나 삭제할 때 사용
- 새 열 추가
ALTER TABLE EMP_ALTER
ADD HP VARCHARS(20);
- 열 이름 변경하는 RENAME
ALTER TABLE EMP_ALTER
RENAME COLUMN HP TO TEL;
- ALTER 명령어로 EMPNO 열 길이 변경
ALTER TABLE EMP_ALTER
MODIFY EMPNO NUMBER(5);
- 특정 열을 삭제할 때 사용
ALTER TABLE EMP_ALTER
DROP COLUMN TEL
테이블 이름을 변경
RENAME EMP_ALTER TO EMP_RENAME
테이블의 데이터 삭제
- TRUNCATE
- 데이터 전부 삭제
- 데이터 삭제 및 초기화
- DELETE와의 차이
- 데이터 삭제
- TRUNCATE - DDL (커밋), 초기화
- DELETE - DML (커밋X)
TRUNCATE TABLE EMP_RENAME;
테이블을 삭제
- DROP
DROP TABLE EMP_RENAME;
객체 종류
데이터 사전
- 오라클 데이터베이스 테이블은 사용자 테이블과 데이터 사전으로 나뉨
- 데이터베이스를 구성하고 운영하는 데 필요한 모든 정보를 저장하는 특수한 테이블로 데이터베이스가 생성되는 시점에 자동으로 만들어짐
- 메모리, 성능, 사용자, 권한, 객체 등 데이터베이스 운영에 중요한 데이터가 보관
- 사용자가 직접 접근하거나 작업하는 것을 허용하지 않아, 사전 데이터 베이스 뷰 제공
- 용도에 따라 접두어를 지정하여 분류
- USER_XXXX
- 현재 데이터베이스에 접속한 사용자가 소유한 객체 정보
- ALL_XXXX
- 현재 데이터베이스에 접속한 사용자가 소유한 객체 또는 다른 사용자가 소유한 객체 중 사용 허가를 받은 객체, 즉 사용 가능한 모든 객체 정보
- DBA_XXXX
- 데이터베이스 관리를 위한 정보 (SYSTEM, SYS 사용자만 열람 가능)
- V$_XXXX
- 데이터베이스 성능 관련 정보
- USER_XXXX
더 빠른 검색을 위한 인덱스
- 데이터베이스에서 검색 성능 향상을 위해 테이블 열에 사용하는 객체
- 검색 방식
- Table Full Scan
- Index Scan
SELECT * FROM USER_INDEXES;
PK_DEPT NORMAL TESTUSER DEPT TABLE UNIQUE DISABLED TEST 2 255 65536 1048576 1 2147483645 10 YES VALID 1 1 NO N N N DEFAULT DEFAULT DEFAULT NO NO NO NO NO VISIBLE YES
PK_EMP NORMAL TESTUSER EMP TABLE UNIQUE DISABLED TEST 2 255 65536 1048576 1 2147483645 10 YES VALID 1 1 NO N N N DEFAULT DEFAULT DEFAULT NO NO NO NO NO VISIBLE YES
뷰
- 테이블처럼 사용
- 하나 이상의 SELECT문을 저장한 객체
- SELECT문을 저장하므로 물리적 데이터를 따로 저장하지는 않음
- 용도
- 한 번만 사용 - 서브 쿼리
- 두고 계속 사용 - 뷰
- 사용 목적
- 가상의 테이블이므로 보안 목적으로도 쓰인다.
- 보여주길 원하는 테이블만 뷰로 만들어 보여주는 방식
- 속도적인 측면에서도 쓰인다.
- 조인을 해놓은 뷰를 사용하면 이후에 조인 없이 SELECT만으로 조회 가능
- 가상의 테이블이므로 보안 목적으로도 쓰인다.
- 취약점
- 실제 테이블이 업데이트 되었을 때 다시 뷰를 만들지 않으면 업데이트가 반영되지 않음
시퀀스
- 특정 규칙에 맞는 연속 숫자를 생성하는 객체
CREATE SEQUENCE 시퀀스 이름
INCREMENT BY N
START WITH N
MAXVALUE N | NOMAXVALUE
MINVALUE N | NOMINVALUE
CYCLE | NOCYCLE
CACHE N | NACACHE
728x90
반응형
'Database' 카테고리의 다른 글
오라클로 배우는 데이터베이스 입문, 둘째 마당 05 - 1 ~ 3번 (0) | 2025.04.27 |
---|---|
오라클로 배우는 데이터베이스 입문, 둘째 마당 04 - 3번 (0) | 2025.04.27 |
4/24 - DDL (0) | 2025.04.27 |
4/23 - 조인, 서브 쿼리 (0) | 2025.04.27 |
4/22 - 데이터베이스, 데이터 처리와 가공을 위한 오라클 함수, 다중행 함수와 데이터 그룹화 (0) | 2025.04.27 |