Data Base_Oracle
-
SQL_SYNONYM 개요 & 테이블 접근 권한 설정Data Base_Oracle/SQL 2020. 1. 10. 16:23
SYNONYM 개요 SYNONYM(동의어) : 단어는 다르지만 의미가 같은 별칭 SYNONYM 사용 목적 일반적으로 오라클은 계정별로 다른 작업 테이블들을 가짐 계정 간의 테이블 공유를 위해 DCL로 권한을 부여해야 함 서로 다른 계정에서 특정 계정의 테이블을 사용하려고 할 때, 테이블명 앞에 소유자명을 작성해야하는데 그것이 불편하기 때문에 해당 테이블의 이름을 사용자가 쓰기 편한 이름으로 설정하기 위함 SYNONYM 특징 대상객체와 동일한 테이블에 접근 가능하도록 함 테이블은 하나이지만 이름이 2개가 됨 동의어를 사용해서 DML 작성 가능 Oracle 객체 SYNONYM 종류 Private Synonym : 개인용 동의어(전용 동의어), 각 계정별로 따로 만들어서 사용 ex) scott에서 생성한 개인..
-
SQL_SEQUENCEData Base_Oracle/SQL 2020. 1. 9. 23:17
SEQUENCE 특정 필드(주로 PK가 설정된 필드)에 연결해서 데이터를 입력할 때 지정한 번호를 자동으로 입력하는 오라클 객체 중복을 방지하기 위해 사용 시퀀스는 유일(UNIQUE)한 값을 생성해주는 오라클 객체 시퀀스를 생성하면 기본 키와 같이 순차적으로 증가하는 칼럼을 자동적으로 생성할 수 있음 ↔ rownum : 화면에 출력할 때 레코드를 구분하기 위해 사용 SEQUENCE 생성 § 형식 { SQL> CREATE SEQUENCE sequence명 START WITH n ① INCREMENT BY n ② MAXVALUE n | NOMAXVALUE ③ MINVALUE n | NOMINVALUE ④ CYCLE | NOCYCLE ⑤ CACHE n | NOCACHE}] ; ⑥ ① 시퀀스 시작 값 지정, d..
-
SQL_INDEXData Base_Oracle/SQL 2020. 1. 9. 22:54
INDEX 데이터에 빠르게 접근 가능하게 함으로써 데이터베이스의 성능 향상에 도움을 주는 객체 자주 검색되는 필드에 부여하며 책갈피와 같은 기능을 함 INDEX 종류 종류 설명 unique index primary key가 자동으로 부여 primary key = not null + unique + unique index ※ primary key가 부여된 필드 먼저 검색 non-unique index INDEX의 기본값, 중복을 허용하는 필드에 부여 INDEX 장점 검색 속도 향상 Oracle에서는 인덱스가 부여된 필드를 먼저 검색 시스템 부하를 줄여서 시스템 전체 성능 향상 INDEX 단점 INDEX를 위한 추가적인 공간이 필요 INDEX 생성에 시간이 소요됨 데이터 변경 작업(DML)이 자주 일어날 경..
-
SQL_ROLLBACK & SAVEPOINTData Base_Oracle/SQL 2020. 1. 9. 22:44
ROLLBACK 처리 과정에서 발생한 변경 사항 취소 COMMIT을 하지 않은 상태라면 원상태로 복구 ※ 자동 ROLLBACK 되는 경우 비정상적인 종료 ex) 정전, 컴퓨터 다운 SAVE POINT TRANSACTION 사이에 복구 범위를 지정하는 기능 별칭을 부여해서 사용하며, 책갈피라고 생각하면 이해하기 쉬움 § 형식 [ SQL> savepoint 별칭 ; ] § 사용 방법 ※ 실행순서 DML1 → DML2 → DML3 최근 COMMIT 지점 DML 1 savepoint 별칭 A DML 2 savepoint 별칭 B DML 3 rollback 지점 [ SQL> rollback; ] : DML 1,2,3 전부 취소 [ SQL> rollback to 별칭 A; ] : DML 2,3 취소 [ SQL> r..
-
SQL_TRANSACTION 개요 & COMMITData Base_Oracle/SQL 2020. 1. 9. 22:35
TRANSACTION DB에서 data를 관리할 때 여러 개의 SQL명령어를 하나의 논리적인 작업단위로 묶는 것 ex) 계좌이체 계좌이체 실패시 출금만 되면 안 되기 때문에 출금과 입금을 하나의 작업으로 다룸 TRANSACTION 특징 원자성 All or Nothing 일련의 SQL문장이 전부 실행되거나, 전부 실행되지 않는 경우로 나뉨 COMMIT 트랜잭션을 구분함 COMMIT ~ COMMIT 사이의 SQL구문들을 하나의 트랜잭션이라고 할 수 있음 모든 작업들을 정상적으로 처리 _ DML(insert, update, delete) 데이터베이스에 모두 반영됨 → 테이블에 저장 변경된 내용을 모두 영구 저장 → 중간에 값을 변경하지 않는 한 저장된 데이터를 계속해서 유지 중간에 되돌릴 수 없음 ※ COMM..
-
SQL_ROWNUM & TOP-N 방식Data Base_Oracle/SQL 2020. 1. 9. 22:27
ROWNUM 화면에 레코드가 출력될 때 가상으로 번호를 매겨서 같이 출력 Oracle에서 사용하는 예약어 § 형식 [ SQL> select rownum, 필드명1, 필드명2,,,, from 테이블명; ] # 예제 ▷ emp 테이블에서 사원번호, 이름에 번호를 매겨서 출력 ▶ [ SQL> select rownum, empno, ename from emp; ] ROWNUM EMPNO ENAME 1 7369 SMITH 2 7499 ALLEN ... ... ... ※ 실제 필드가 존재하는 것은 아니며, 보기 편하게 행을 구분해주는 가상 필드 ※ 별칭 부여 가능 ▶ [ SQL> select rownum empno, ename from emp ] EMPNO ENAME 1 SMITH 2 ALLEN ... ... TO..
-
SQL_VIEW OPTIONS [WITH READ ONLY]Data Base_Oracle/SQL 2020. 1. 9. 22:21
WITH READ ONLY 뷰를 읽기 전용으로 생성하는 옵션 DML 사용 불가 § 형식 [ SQL> ~ with read only ;] # 예제 ▷ dept테이블에서 부서번호가 30인 곳의 부서번호와 부서이름을 출력하는 VIEW를 with read only 옵션을 부여하여 생성 ▶ [ SQL> create view dept30 as select deptno, dname from dept where deptno=30 with read only; 뷰가 생성되었습니다 ] # 에러 ▷ dept30 뷰의 모든 정보를 삭제 ▶ [ SQL> delete from dept30; 1행에 오류: ORA-42399: 읽기 전용 뷰에서는 DML 작업을 수행할 수 없습니다. ] ※ with read only 옵션이 부여된 VI..
-
SQL_VIEW OPTIONS [WITH CHECK OPTION]Data Base_Oracle/SQL 2020. 1. 9. 22:17
WITH CHECK OPTION WITH 앞의 where 조건식이 VIEW의 제약조건으로 작용하도록 함 기본 테이블에는 적용되지 않음 § 형식 [ SQL> ~ with check option { constraint 제약조건이름 } ; ] ※ 제약조건이름을 설정하지 않으려면 중괄호 부분은 생략 가능 # 예제 ▷ b_emp5 테이블에서 with check option을 사용하여 emp30 VIEW 작성(deptno 30의 모든 정보를 갖는 뷰) ▶ [ SQL> create view emp30 as select * from b_emp5 where deptno=30 with check option constraint emp30_ck; 뷰가 생성되었습니다. ] # 에러 ▷ emp30 테이블의 부서번호를 20번으로..