DB/SQL 20

PL_SQL(Procedural Language extension to SQL)

PL_SQL(Procedural Language extension to SQL) PL/SQL은 오라클에서 제공하는 절차적인 프로그래밍 언어이다. SQL 문의 반복적인 실행이나 조건에 따른 분기 등 다양한 기능을 제공한다. PL/SQL은 선언부(DECLARE SECTION), 실행부(EXECUTABLE SECTION), 예외 처리부(EXCEPTION SECTION)로 구성된다. 오라클에서 내장되어 있는 절차적 언어로 SQL 문장 내에서 변수를 정의, 조건 처리(IF), 반복 처리(LOOP, WHITE, FOR)등을 지원한다. -- 출력 기능 활성화 (환경 변수를 ON으로 바꿔준다.) SET SERVEROUTPUT ON; DECLARE -- 선언부 ... BEGIN -- 실행부 ... EXCEPTION --..

DB/SQL 2022.09.15

OBJECT - TRIGGER

TRIGGER TRIGGER는 오라클에서 제공하는 객체로 테이블이나 뷰가 DML(INSERT, UPDATE, DELETE)문에 의해 변경될 경우(테이블에 이벤트 발생 시) 자동으로 실행될 내용을 정의하여 저장한다.**** TRIGGER 생성 TRIGGER는 CREATE 구문을 사용해서 생성한다. CREATE [OR REPLACE] TRIGGER 트리거명 BEFORE|AFTER INSERT|UPDATE|DELETE ON 테이블명 [FOR EACH ROW] --> 행 트리거 [DECLARE 선언부] BEGIN 실행부 (해당 위에 지정된 이벤트 발생 시 자동으로 실행할 구문) [EXCEPTION 예외처리부] END; / 트리거 종류 STATEMENT TRIGGER 해당 SQL문에 대해 한 번만 트리거를 실행한..

DB/SQL 2022.09.14

OBJECT - CURSOR

CURSOR SQL문의 처리 결과(처리 결과가 여러 행)를 담고있는 객체이다. 커서 사용시 여러 행으로 나타난 처리 결과에 순차적으로 접근이 가능하다. 묵시적 커서 오라클에서 자동으로 생성되어 사용하는 커서이다. PL/SQL 블록에서 실행하는 SQL문 실행 시마다 자동으로 만들어져서 사용된다. -- 실습에 사용한 테이블 생성 CREATE TABLE EMP_COPY AS SELECT * FROM EMPLOYEE; SELECT * FROM EMP_COPY; -- PL/SQL을 사용해서 EMP_COPY에 BONUS가 NULL인 사원의 BONUS를 0으로 수정 BEGIN UPDATE EMP_COPY SET BONUS = 0 WHERE BONUS IS NULL; -- 묵시적 커서 사용 DBMS_OUTPUT.PUT..

DB/SQL 2022.09.13

OBJECT - FUNCTION

FUNCTION FUNCTION은 오라클에서 제공하는 객체로 PROCEDURE와 거의 유사한 용도로 사용하지만 PROCEDURE와 다르게 OUT 변수를 사용하지 않아도 실행 결과를 되돌려 받을 수 있다. (RETURN)**** FUNCTION 생성 FUNCTION은 CREATE 구문을 사용해서 생성한다. FUNCTION은 PROCEDURE와 다르게 RETURN 구문이 추가된다. CREATE OR REPLACE FUNCTION 함수명 ( 매개변수 1 타입, 매개변수 2 타입, ... ) RETURN 데이터 타입 IS [AS] 선언부 BEGIN 실행부 RETURN 반환값; [EXCEPTION 예외 처리부] END [함수명]; / -- 사번을 입력받아 해당 사원의 보너스를 포함하는 연봉을 계산하고 리턴하는 함..

DB/SQL 2022.09.12

OBJECT - PROCEDURE

PROCEDURE PROCEDURE는 오라클에서 제공하는 객체로 PL/SQL 문을 저장하여 필요할 때마다 복잡한 구문을 다시 입력할 필요 없이 간단하게 호출해서 실행 결과를 얻을 수 있다. 함수는 특정 연산을 수행한 뒤 결과 값을 반환하지만 프로시저는 특정한 로직을 처리하기만 하고 결과 값은 반환하지 않는 서브 프로그램입니다. PROCEDURE 생성 PROCEDURE는 CREATE 구문을 사용해서 생성한다. PROCEDURE를 실행할 때는 EXCUTE(EXEC) 명령을 사용합니다. CREATE [OR REPLACE] PROCEDURE 프로시저명 ( 매개변수 1 [IN|OUT] 데이터 타입 [:= DEFAULT 값], 매개변수 2 [IN|OUT] 데이터 타입 [:= DEFAULT 값], ... ) IS [..

DB/SQL 2022.09.11

OBJECT - SYNONYM

SYNONYM SYNONYM은 오라클에서 제공하는 객체로 데이터베이스 객체에 별칭을 생성한다. SYNONYM을 사용하면 다른 사용자가 제공하는 객체를 참조할 때 간단하게 사용할 수 있다. SYNONYM 생성 SYNONYM은 CREATE 구문을 사용해서 생성한다. 1) 비공개 SYNONYM 객체에 대한 접근 권한을 부여받은 사용자가 정의한 동의어로 해당 사용자만 사용이 가능하다. -- 사용자 계정에서 실행한다. CREATE SYNONYM EMP FOR EMPLOYEE; -- KH 계정으로 접속 CREATE SYNONYM EMP FOR EMPLOYEE; -- 권한이 없어서 오류 -- 관리자 계정으로 KH 계정에 SYNONYM 생성 권한을 준다. GRANT CREATE SYNONYM TO KH; -- 다시 K..

DB/SQL 2022.09.10

OBJECT - INDEX

INDEX INDEX는 오라클에서 제공하는 객체로 SQL 명령문의 처리 속도를 향상시키기 위해서 행들의 위치 정보를 가지고 있다. (내부 구조는 B-트리 형식으로 구성) 검색 속도가 빨라지고 시스템에 걸리는 부하를 줄여 시스템 전체 성능을 향상시킨다. 인덱스 구조 ROWID는 데이터베이스에 저장되어 있는 데이터의 주소이다. 인덱스는 KEY와 ROWID를 가지고 있는데 KEY는 인덱스를 생성할 때 지정한 컬럼의 값이고 ROWID는 KEY에 해당하는 데이터의 주소 이다. SELECT ROWID, EMP_ID, EMP_NAME FROM EMPLOYEE; 인덱스 종류 -- 춘 대학교 계정(STUDY)으로 이동 SELECT * FROM TB_STUDENT WHERE STUDENT_NAME = '황효종'; --WH..

DB/SQL 2022.09.09

OBJECT - SEQUENCE

SEQUENCE SEQUENCE는 오라클에서 제공하는 객체로 순차적으로 정수 값을 자동으로 생성한다. SEQUENCE 생성 SEQUENCE는 CREATE 구문을 사용해서 생성한다. CREATE SEQUENCE 시퀀스명 [START WITH 숫자] [INCREMENT BY 숫자] [MAXVALUE 숫자] [MINVALUE 숫자] [CYCLE | NOCYCLE] [CACHE | NOCACHE] VIEW 옵션 -- EMPLOYEE 테이블의 PK 값을 생성할 시퀀스 생성 CREATE SEQUENCE SEQ_EMPNO START WITH 300 -- 300부터 시작 INCREMENT BY 5 MAXVALUE 310 NOCYCLE NOCACHE; * 현재 계정이 가지고 있는 시퀀스들에 대한 정보를 조회하는 데이터 ..

DB/SQL 2022.09.08

OBJECT - VIEW

VIEW VIEW는 오라클에서 제공하는 SELECT문을 저장할 수 있는 객체로 가상의 테이블이다. 테이블과는 다르게 데이터를 저장하고 있진 않지만 사용자는 테이블을 사용하는 것과 동일하게 사용이 가능하다. 테이블에 대한 SQL만 저장되어 있어 VIEW에 접근할 때 SQL을 수행하고 결과값을 가져온다. 뷰는 데이터를 저장하고 있지 않은 가상 테이블이지만 DML(INSERT, UPDATE, DELETE) 작업이 가능하다. VIEW 생성 VIEW는 CREATE 구문을 사용해서 생성한다. 서브 쿼리의 SELECT 절에 함수가 사용된 경우 반드시 별칭을 지정해야 한다. CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW 뷰명 AS 서브 쿼리 [WITH CHECK OPTION] [WITH ..

DB/SQL 2022.09.07

DCL(Data Control Language)

DCL(Data Control Language) 데이터를 제어하는 구문으로 계정에게 시스템 권한 또는 객체에 대한 접근 권한을 부여(GRANT)하거나 회수(REVOKE)하는 구문이다. 시스템 권한 데이터베이스에 접근하는 권한, 오라클에서 제공하는 객체를 생성할 수 있는 권한 CREATE SESSION : 데이터베이스에 접속할 수 있는 권한 CREATE TABLE : 테이블을 생성할 수 있는 권한 CREATE VIEW : 뷰를 생성할 수 있는 권한 CREATE USER : 계정을 생성할 수 있는 권한 DROP USER : 계정을 삭제할 수 있는 권한 [표현법] GRANT 권한1, 권한2, ... TO 사용자계정; : 권한 부여 REVOKE 권한1, 권한2, ... FROM 사용자계정; : 권한 회수 ① S..

DB/SQL 2022.09.06