▶ PL/SQL(PROCEDURE LANGUAGE EXTENSION TO SQL) - 오라클 자체에 내장되어 있는 절차적 언어이다. - SQL문장 내에서 변수의 정의, 조건처리(IF), 반복처리(LOOP, FOR, WHILE), 예외처리 등을 지원하여 SQL의 단점을 보완 - 다수의 SQL문을 한 번에 실행 가능(BLOCK구조) ■ PL/SQL 구조 - [선언부 (DECLARE SECTION)] : DECLARE로 시작, 변수나 상수를 선언 및 초기화하는 부분 - 실행부 (EXECUTABLE SECTION) : BEGIN으로 시작해서 END로 끝, SQL문(SELECT, UPDATE, DELETE, ..) 또는 제어문(조건문, 반복문) 등의 로직을 기술하는 부분 - [예외처리부 (EXCEPTION SEC..
▶ INDEX - 데이터를 빠르게 검색하기 위한 구조, 데이터의 정렬과 탐색같은 DBMS의 성능향상을 목적으로 사용한다. ■ 인덱스의 특징 - 인덱스로 설정한 컬럼의 데이터들을 별도로 "오름차순으로 정렬"하여 특정 메모리 공간에 물리적인 주소(ROWID) 실제 컬럼의 값을 함께 저장시킨다. - 인덱스를 만들었다고 해서 조건절에 인덱스를 활용한 컬럼을 제시했을 때 바로 사용하지는 않는다. - 인덱스를 활용하여 조회할지 안할지는 옵티마이저가 판단한다. ● 현재 계정에 생성된 인덱스들 확인 SELECT * FROM USER_INDEXES; -- PK설정시 자동으로 인덱스 생성됨. ● 현재 계정에 생성된 인덱스와 + 인덱스가 적용된 컬럼을 확인 SELECT * FROM USER_IND_COLUMNS; ■ 인덱스..
▶ SEQUENCE(시퀀스) - 자동으로 번호를 발생시켜주는 역할을 하는 객체이다. - 정수값을 자동으로 순차적으로 발생시켜준다. - 시퀀스가 가장 많이 사용되는 위치는 INSERT문의 PK값에 넣을 때이다. ■ 시퀀스객체 생성 구문 [표현법] CREATE SEQUENCE 시퀀스명 START WITH 시작 숫자 => 생략 가능하다. 처음 발생시킬 시작값 기본값은 1 INCREMENT BY 증가값 => 생략 가능하다. 기본값은 1씩 증가, 한번 시퀀스 증가할때마다 몇 씩 증가할 것인지 결정 MAXVALUE 최대값 => 생략 가능하다. 최대값 지정 MINVALUE 최소값 => 생략 가능하다. 최소값 지정 CYCLE/NOCYCLE => 생략 가능하다. 값의 순환여부를 결정한다. 기본값은 NOCYCLE CACH..
▶ OBJECT - 데이터베이스를 이루는 논리적인 구조물들 ■ OBJECT의 종류 - TABLE, USER, VIEW, SEQUENCE, INDEX, PACKAGE, TRIGGER, FUNCTION, ... ▶ 뷰(VIEW) - SELECT문을 저장해 둘 수 있는 객체 - 자주쓰일 긴 SELECT문을 VIEW에 저장해두면 매번 긴 SELECT문을 다시 기술할 필요가 없다. - 조회용 임시테이블 같은 존재(실제 데이터가 담겨있는 것은 아니다.) - 해당 계정이 가지고 있는 VIEW들에 대한 내용을 조회하고자 한다면 USER_VIEWS 데이터 딕셔너리를 이용하면 된다. - 생성된 뷰를 이용해서 DML(INSERT, UPDATE, DELETE)사용 가능하다. ※ 주의사항 : 뷰를 통해서 조작하게 된다면 실제 ..
▶ TCL(TRANSACTION CONTROL LANGUAGE) - 트랜잭션을 제어하는 언어 ■ 트랜잭션(TRANSACTION) - 데이터베이스의 논리적 작업 단위 - 데이터의 변경사항(DML)들을 하나의 트랜잭션으로 묶어서 처리하겠다. => COMMIT(확정)하기 전까지의 변경사항들을 하나의 트랜잭션으로 담겠다. - 트랜잭션의 대상이 되는 SQL : INSERT, UPDATE, DELETE(DML) ● 트랜잭션의 종류 COMMIT; : 하나의 트랜잭션에 담겨있는 변경사항들을 실제 DB에 반영하겠다는 것을 의미한다. (실제 DB에 반영시킨 후 트랜잭션은 비워짐 => 확정의 개념) ROLLBACK; : 하나의 트랜잭션에 담겨있는 변경사항들을 실제 DB에 반영하지 않겠다는 것을 의미한다.(트랜잭션에 담겨있는..
▶ DCL(DATA CONTROLLER LANGUAGE) - 데이터 제어 언어 - 계정에게 시스템 권한 또는 객체접근 권한을 부여(GRANT)하거나 회수(REVOKE)하는 언어 ▶ 권한 부여(GRANT) - 시스템 권한 : 특정 DB에 접근하는 권한, 객체들을 생성할 수 있는 권한 - 객체접근 권한 : 특정 객체들에 접근해서 조작할 수 있는 권한 ■ 시스템 권한 [표현법] GRANT 권한1, 권한2, ... TO 계정명; ● 시스템 권한의 종류 CREATE SESSION : 계정에 접속할 수 있는 권한 CREATE TABLE : 테이블을 생성할 수있는 권한 CREATE VIEW : 뷰를 생성할 수 있는 권한 CREATE SEQUENCE : 시퀀스를 생성할 수 있는 권한 ex) -- 1. SAMPLE 계정..