본문 바로가기

SQL14

(30)[ORACLE] 13일차 : 인덱스(INDEX) 인덱스란? 인덱스는 일반 테이블이나 클러스터에서 쓰여지는 선택적인 객체로서, 오라클 데이터베이스 테이블내의 원하는 레코드를 빠르게 찾아갈 수 있도록 만들어진 데이터 구조이다. SQL 명령문의 처리 속도를 향상시키기 위해서 컬럼에 대해서 생성하는 오라클 객체 인덱스는 디스크 I/O를 줄이는 많은 방법 중 하나. 옵티마이저가 최적의 경로를 결정하기 위해 사용하는 요소 옵티마이저는 SQL을 가장 빠르고 효율적으로 수행할 최적(최저비용)의 처리경로를 생성해주는 DBMS 내부의 핵심엔진이다. 인덱스 특성 인덱스는 연관된 객체의 데이터와 논리적 및 물리적으로 독립적인 스키마 객체 테이블에 물리적으로 영향을 주지 않고 인덱스를 삭제하거나 만들 수 있다. 클러스터링 인덱스는 하나만 생성할 수 있다. 클러스터는 디스크로.. 2024. 3. 27.
(29)[ORACLE] 12일차 : PL/SQL - 5 (트리거 및 패키지) 트리거란? 스키마 객체의 일종으로, 데이터베이스가 미리 정해 놓은 특정 조건이 만족되거나 어떤 동작이 수행되면 자동으로 실행되도록 정의한 동작. ex. 테이블에 DML 문장이 실행 되거나, 사용자가 설정한 DDL 문장이 수행될 때 트리거가 실행될 수 있다. 트리거(TRIGGER)유형 DML 트리거 INSERT, DELETE, UPDATE 작업이 일어날 때 자동으로 실행되는 객체로 이런 TRIGGER를 DML TRIGGER라 한다. INSTEAD OF 트리거 테이블이 아닌 뷰에 정의된 트리거 시스템 트리거 스키마 또는 데이터베이스에 정의된 트리거 트리거 기본 구문 트리거를 생성하거나 삭제하기 위해서는 사용자는 CREATE TRIGGER 권한을 가져야 한다. -- 관리자 계정 : sky 계정에 트리거를 만들.. 2024. 3. 27.
(29)[ORACLE] 12일차 : PL/SQL - 4 (예외처리) 예외란? PL/SQL 블록이 실행되는 동안 발생되는 에러를 예외라 한다. 컴파일 에러 : PL/SQL 블록이 파싱될때 사용자 오타,구문 오류 등으로 인해 발생되는 에러 런타임 에러 : PL/SQL 블록이 실행되는 동안 발생하는 에러로 일반적으로 런타임 에러를 Exception이라 부른다. 오라클 예외 미리 정의된 오라클 예외, PL/SQL 코드에서 자주 발생하는 ERROR을 미리 정의 미리 정의되지 않은 예외,기타 표준(사용자가 선언하고 오라클 서버가 암시적으로 발생) 사용자 정의 예외 프로그래머가 정한 조건이 만족되지 않을 경우(사용자가 선언하고 명시적으로 발생한다.) DECLARE vNAME VARCHAR2(30); vSal NUMBER; BEGIN --SELECT name,sal INTO vName.. 2024. 3. 27.
(29)[ORACLE] 12일차 : PL/SQL - 3 (커서와 동적쿼리) 커서(Cursor)란? 하나의 레코드가 아닌 여러 레코드로 구성된 작업영역에서 SQL문을 실행하고 그 과정에 생긴 정보를 저장하기 위해서 CURSOR를 사용한다. 오라클 서버에 의해 실행되는 모든 SQL문은 연관된 각각의 커서를 소유하고 있다. 커서의 종류 암시적 커서 : 모든 DML과 PL/SQL SELECT문에 대해 선언된다. 명시적 커서 : 프로그래머에 의해 선언되며 이름이 있는 커서. 암시적 커서 암시적인 커서는 오라클이나 PL/SQL실행 메커니즘에 의해 처리되는 SQL문장이 처리되는 곳에 대한 익명의 주소. 오라클 데이터베이스에서 실행되는 모든 문장은 암시적인 커서가 생성되며, 커서 속성을 사용할 수 있다. 암시적 커서는 SQL 문이 실행되는 순간 자동으로 OPEN과 CLOSE를 실행한다. --.. 2024. 3. 26.
(28)[ORACLE] 11일차 : PL/SQL - 2 프로시저란? PL/SQL에서 가장 대표적인 구조인 프로시저는 개발자가 자주 실행해야 하는 업무 흐름(SQL)을 미리 작성하여 데이터베이스 내에 저장해 두었다가 필요할 때마다 호출하여 실행 할 수 있다. 프로시저는 특정한 로직을 처리하고 결과를 반환하지 않는다. 프로시저 특징 패키지 내에서 프로시저는 중복 정의 가능 테이블이 삭제되어도 연관된 프로시저가 삭제 되는 것은 아니다 테이블이 삭제된 상태에서 연관된 프로시저를 실행하면 오류가 발생한다. 프로시저 안에서 INSERT,UPDATE,DELETE문을 사용하는 경우 자동 COMMIT 되지 않으므로 COMMIT; 구문을 추가 해야된다. 프로시저 정보 확인 --프로시저 목록확인 SELECT * FROM user_procedures; --의존성 확인 SELECT.. 2024. 3. 25.
(28)[ORACLE] 11일차 : PL/SQL PL/SQL이란? 프로그래밍 언어의 특성을 가지는 SQL의 확장이며, 데이터 조작과 질의 문장은 PL/SQL의 절차적 코드 안에 포함된다. 주로 자료 내부에서 SQL명령문만으로 처리하기에는 복잡한 자료의 저장이나 프로시저와 트리거 등을 작성하는데 사용된다. PL/SQL은 프로그램을 논리적인 블록으로 나누는 구조화 된 블록언어이다 PL/SQL 블록은 선언부(선택적),실행부(필수적),예외 처리부(선택적)로 구성되어 있고, BEGIN과 END 키워드는 반드시 기술해 주어야 한다. PL/SQL 프로그래밍 단위 PL/SQL 익명 블록 함수 프로시저 패기지 : 패키지 명세, 패키지 바디 트리거 기본문법 --PL/SQL SELECT SELECT 컬럼, 컬럼 INTO 변수, 변수, FROM 테이블 WHERE 조건; %.. 2024. 3. 25.