SQL
Ch19. 저장 서브프로그램
19-1. 저장 서브프로그램 저장 서브프로그램이란? 익명 블록 anonymous block : 이름이 정해져 있지 않은 PL/SQL블록 익명 블록은 오라클에 저장되지 않기 때문에 한 번 실행한 뒤에 다시 실행 하려면 다시 작성하여 실행해야 한다. 그런데, PL/SQL로 만든 프로그램을 주기적으로 또는 필요할 때마다 여러 번 사용해야 하는 상황이 빈번히 발생. 이럴 경우, 프로그램을 오라클에 저장해 두고 실행 가능하다. 저장 서브프로그램 stored subprogram : 여러 번 사용할 목적으로 이름을 지정하여 오라클에 저장해 두는 PL/SQL 프로그램 오라클에서의 저장 서브프로그램 구현 방식 프로시저, 함수, 패키지, 트리거 저장 프로시저 : 일반적으로 특정 처리 작업 수행을 위한 서브 프로그램으로 S..
Ch18. 커서와 예외 처리
18-1. 특정 열을 선택하여 처리하는 커서 커서란? 커서 cursor 는 SELECT문 또는 데이터 조작어 같은 SQL문을 실행했을 때 해당 SQL문을 처리하는 정보를 저장한 메모리 공간 커서를 사용하면 실행된 SQL문의 결과 값을 사용할 수 있다. SELECT문의 결과 값이 여러 행으로 나왔을 때 각 행별로 특정 작업을 수행하도록 기능을 구현하는 것이 가능하다. 오라클에 저장된 데이터 활용을 극대화할 수 있는 강력한 기능. 커서의 사용 방법에 따른 분류 명시적 explicit 커서 묵시적 inplicit 커서 SELECT INTO 방식 SELECT INTO문은 조회되는 데이터가 단 하나의 행일 때 사용 가능한 방식이다. 커서는 결과 행이 하나이든 여러 개이든 상관 없이 사용할 수 있다. SELECT ..
Ch17. 레코드와 컬렉션
17-1. 자료형이 다른 여러 데이터를 저장하는 레코드 레코드란? 레코드 record 는 자료형이 각기 다른 데이터를 하나의 변수에 저장하는 데 사용한다. TYPE 레코드 이름 IS RECORD( 변수 이름 자료형 NOT NULL := (또는 DEFAULT) 값 또는 값이 도출되는 여러 표현식 ) 정의한 레코드는 지금까지 다룬 변수와 마찬가지로 기존 자료형처럼 사용할 수 있다. 레코드에 포함된 변수는 레코드 이름과 마침표로 사용할 수 있다. 레코드 정의해서 사용하기 DECLARE TYPE REC_DEPT IS RECORD( deptno NUMBER(2) NOT NULL := 99, dname DEPT.DNAME%TYPE, loc DEPT.LOC%TYPE ); dept_rec REC_DEPT; BEGIN ..
Ch16. PL/SQL 기초
16-1. PL/SQL 구조 블록이란? PL/SQL은 데이터베이스 관련 특정 작업을 수행하는 명령어와 실행에 필요한 여러 요소를 정의하는 명령어 등으로 구성된다. 블록(block): 이러한 명령어를 모아 둔 PL/SQL 프로그램의 기본 단위 구성 키워드 필수 / 선택 설명 DECLARE(선언부) 선택 실행에 사용될 변수, 상수, 커서 등을 선언 BEGIN(실행부) 필수 조건문, 반복문, SELECT, DML, 함수 등을 정의 EXCEPTION(예외 처리부) 선택 PL/SQL 실행 도중 발생하는 오류(예외 상황)를 해결하는 문장 기술 ⇒ 작성을 끝낸 PL/SQL 은 END 키워드로 종료를 명시한다. PL/SQL 블록의 기본 형식 DECLARE [ 실행에 칠요한 여러 요소 선언]; BEGIN [작업을 위해 ..
Ch15. 사용자, 권한, 롤 관리
15-1. 사용자 관리 사용자란? 오라클 데이터 베이스에서는 데이터 베이스에 접속하여 데이터를 관리하는 계정을 사용자(USER)로 표현한다. 사용자 관리가 필요한 이유 데이터를 활용한 서비스 규모가 크거나 작은 규모의 여러 서비스를 통합한 방식 등 실무에서 사용하는 여러 종류에 서비스는 한 사용자가 관리하기에는 데이터 분량이 너무 방대하거나 구조가 복잡해지는 경우가 많다. ⇒ 따라서, 업무 분할과 효율, 보안을 고려하여 업무에 따라 여러 사용자들을 나눈다. 오라클 데이터베이스는 테이블, 인덱스, 뷰 등 여러 객체가 사용자별로 생성되므로 업무별 사용자를 생성한 후에 각 사용자 업무에 맞는 데이터 규조를 만들어 관리하는 방식을 사용할 수 있다. 반대로 대표 사용자를 통해 업무에 맞는 데이터 구조를 먼저 정의..
Ch14. 제약조건
14-1. 제약 조건 종류 제약 조건이란? 오라클에서 사용하는 제약 조건은 테이블의 특정 열에 지정한다. 제약 조건을 지정한 열에 제약 조건에 부합하지 않는 데이터를 저장할 수 없다. 제약 조건 지정 방식에 따라 기존 데이터의 수정이나 삭제 가능 여부도 영향을 받는다. 제약 조건 종류 NOT NULL 지정한 열에 NULL을 허용하지 않는다. NULL을 제외한 데이터의 중복은 허용. UNIQUE 열이 유일한 값을 가져야 하고 중복이 없다. 단 NULL은 값의 중복에서 제외. PRIMARY KEY 지정한 열이 유일한 값이면서 NULL을 허용하지 않는다. PRIMARY KEY는 테이블에 하나만 지정 가능. FOREIGN KEY 다른 테이블의 열을 참조하여 존재하는 값만 입력할 수 있다. CHECK 조건식을 만..
Ch13. 객체 종류
13-1. 데이터베이스를 위한 데이터를 저장한 데이터 사전 데이터 사전이란? 오라클 데이터베이스 테이블은 사용자 테이블 user table 과 데이터 사전 data dictionary 으로 나뉜다. 사용자 테이블 : 테이터베이스를 통해 관리할 데이터를 저장하는 테이블 데이터 사전 : 데이터베이스를 구성하고 운영하는 데 필요한 모든 정보를 저장하는 특수한 테이블로 데이터베이스가 생성되는 시점에 자동으로 만들어진다. 데이터 사전에는 데이터베이스 메모리, 성능, 사용자, 권한, 객체 등 오라클 데이터베이스 운영에 중요한 데이터가 보관되어있다. ⇒ 오라클 데이터 베이스는 사용자가 데이터 사전 정보에 직접 접군하거나 작업하는 것을 허용하지 않는다. 그 대신 데이터 사전 뷰 data dictionary view 를..
Ch12. 데이터 정의어
12-1. 객체를 생성, 변경, 삭제하는 데이터 정의어 데이터 정의어 DDL : Data Definition Language : 데이터베이스 데이터를 보관하고 관리하기 위해 제공되는 여러 객체 object 의 생성, 변경, 삭제 관련 기능을 수행한다 . 데이터 정의어를 사용할 때 유의점 데이터 조작어 DML 와 달리 명령어를 수행하자마자 데이터베이스에 수행한 내용이 바로 반영되는 특성이 있다. 데이터 저으이어를 실행하면 자동으로 COMMIT 되기 떄문에 이전에 사용한 데이터 조작어는 영구히 데이터베이스에 반영된다. ROLLBACK 을 통한 실행 취소가 불가하다. 12-2. 테이블을 생성하는 CREATE CREATE : 오라클 데이터베이스 객체를 생성하는 데 사용하는 명령어. CREATE TABLE 소유 ..