본문 바로가기

정규화 표현식 ---------------------------------------------------- CREATE TABLE test ( num NUMBER(5) NOT NULL CONSTRAINT pk_test_num PRIMARY KEY ,name VARCHAR2(20) ,email VARCHAR2(50) ); INSERT INTO test (num, name, email) VALUES (1, '한라산', 'hanlasan@abc.co.kr'); INSERT INTO test (num, name, email) VALUES (2, '백두산', 'backdusan@abc.co.kr'); INSERT INTO test (num, name, email) VALUES (3, '금강산', 'gumgangsan@abc... 더보기
오라클 CLOB ■ LOB ο 개요 - LOB은 TEXT, 그래픽, 이미지, 비디오, 사운드 등 구조화되지 않은 대형 데이터를 저장하는데 사용한다. - 일반적으로 테이블에 저장되는 구조화된 데이터들은 크기가 작지만, 멀티미디어 데이터는 크기가 크다. - 크기가 큰 데이터는 DB에 저장하기 힘들기 때문에 OS상 존재하는 파일을 데이터베이스가 접근하게 된다. - LONG, LONG RAW 데이터 유형은 예전에 사용던 것이고, 현재는 대부분 LOB 데이터 유형을 사용한다. - TO_LOB 함수를 이용하여 LONG 및 LONG RAW 를 LOB 로 변경할 수 있다. ο 종류 - CLOB : 문자 대형 객체(Character). Oracle Server는 CLOB과 VARCHAR2 사이에 암시적 변환을 수행한다. - BLOB :.. 더보기
오라클 인덱스 //***************************************** // 인덱스 -- 개요 index란 ROWID와 특정 컬럼의 정렬된 값을 set으로 하여 목록화한 것이다. 정렬해 놓은 컬럼의 각각의 값과 그에 해당하는 ROWID를 이용하여 곧 바로 data block에 접근하여 빠르게 해당 데이터를 찾아낸다. index는 자동으로 oracle에 의해 생성되기도 하고, 사용자가 직접 생성할 수 도 있다. index는 데이터를 보다 빠르게 검색할 수 있도록 도와주는 객체이다. DB의 성능을 향상시키고, 행(row)의 유일성을 보장하기 위해 사용된다. 잘못된 인덱스는 DB의 성능을 오히려 저하시킨다. -- 특징 빠른 검색을 위해 B*Tree를 사용하여 디스크의 입출력 횟수를 감소 Oracle s.. 더보기
오라클 데이터링크(수정중) //***************************************** -- 데이터 링크 데이터베이스 링크를 이용하여 원격 데이터베이스를 액세스할 수 있다. ---------------------------------------------------------- -- 데이터 링크 권한 설정 -- SYS 계정 GRANT CREATE DATABASE LINK TO 사용자명; ---------------------------------------------------------- -- 데이터 링크 설정 -- 사용자 계정 CREATE DATABASE LINK 데이터링크명 CONNECT TO 사용자명 IDENTIFIED BY "암호" USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=T.. 더보기
오라클 사용자관리 //***************************************** -- 테이블 스페이스 -- 시스템 테이블 스페이스 종류 -- SYSTEM : 오라클 서버가 사용하는 공간으로 자료사전 테이블, 뷰가 저장 -- UNDOTBS1 : 트랜잭션의 ROLLBACK문을 실행할 때 변경이전의 데이터로 복구하기 위한 데이터 저장 공간 -- SYSAUX : 기본적으로 만들어지는 시스템 관리용 테이블스페이스 -- TEMP : GROUP BY, ORDER BY, HAVING, START WITH와 같은 SQL 문에서 SORT 작업이 발생되는데, 이 때 사용되는 데이터베이스 내부의 임시 저장 공간 -- USERS : 사용자가 테스트 할 수 있는 기본적으로 만들어지는 공간 -- 참고 -- 1 block : 8KB .. 더보기
오라클 테이블스페이스(수정중) //***************************************** -- 테이블 스페이스 -- 시스템 테이블 스페이스 종류 -- SYSTEM : 오라클 서버가 사용하는 공간으로 자료사전 테이블, 뷰가 저장 -- UNDOTBS1 : 트랜잭션의 ROLLBACK문을 실행할 때 변경이전의 데이터로 복구하기 위한 데이터 저장 공간 -- SYSAUX : 기본적으로 만들어지는 시스템 관리용 테이블스페이스 -- TEMP : GROUP BY, ORDER BY, HAVING, START WITH와 같은 SQL 문에서 SORT 작업이 발생되는데, 이 때 사용되는 데이터베이스 내부의 임시 저장 공간 -- USERS : 사용자가 테스트 할 수 있는 기본적으로 만들어지는 공간 -- 참고 -- 1 block : 8KB .. 더보기
오라클 패키지 //***************************************** -- 패키지 -- 타입, 프로그램객체, 프로시져, 함수등을 논리적으로 묶어 놓은것 -- 작성 방법 1. 패키지 명세 CREATE OR REPLACE PACKAGE 패키지명 IS FUNCTION 함수명([인수]) RETURN 리턴타입; PROCEDURE 프로시져명([인수]); : END 패키지명; / 2. 패키지 몸체 구현 CREATE OR REPLACE PACKAGE BODY 패키지명 IS FUNCTION 함수명([인수]) RETURN 리턴타입 IS [변수선언] BEGIN 함수몸체구현 RETURN 리턴값; END; PROCEDURE list_insa([인수]) IS [변수선언] BEGIN 프로시져몸체구현 END; : END 패.. 더보기
오라클 예외처리 //***************************************** -- 예외처리 - PL/SQL 을 실행 하는 동안에 발생하는 에러 처리 - 예외 트랩(trap) 만일 예외가 블록의 실행 가능한 섹션에서 발생한다면, 처리는 블록의 예외 섹션에서 해당 예외 처리기로 제어가 넘어 간다. PL/SQL 블록이 성공적으로 예외를 처리 한다면 이때 예외는 둘러싸는 블록이나 환경으로 전달 되지 않는다. -- 예외 전달 예외를 처리하는 다른 방법은 실행 환경으로 예외를 전달하도록 하는 것이다. 예외가 블록의 실행부에서 발생하여 해당 예외 처리기가 없다면, PL/SQL 블록의 나머지 부분은 수행되지 못하고 종료된다. - 예외 검출 예외가 블록의 실행부에서 발생하면 블록의 예외부에 있는 해당 예외 처리부로 제.. 더보기
오라클 트리거(TRIGGER) //***************************************** // 트리거(TRIGGER) TRIGGER란 DML 작업 즉, INSERT, DELETE, UPDATE 작업이 일어날 때 자동으로 실행되는 객체로 특히 이런 TRIGGER를 DML TRIGGER라 한다. TRIGGER는 데이터의 무결성 뿐만 아니라 다음과 같은 작업에도 사용된다. 트리거 내에서는 COMMIT, ROLLBACK 문을 사용할 수 없다. -- 문장 트리거(문장당 한번만 실행) 트리거가 설정된 테이블에 트리거 이벤트가 발생하면 많은 행에 대해 변경 작업이 발생하더라도 오직 한번만 트리거를 발생시키는 방법 -- 행 트리거 조건을 만족하는 여러 개의 행에 대해 트리거를 반복적으로 여러 번 수행하는 방법으로 [FOR EAC.. 더보기
오라클 커서와 동적SQL //***************************************** -- 커서(Cursor) -- 하나의 레코드가 아닌 여러 레코드로 구성된 작업영역에서 SQL문을 실행하고 그 과정에 생긴 정보를 저장하기 위해서 CURSOR를 사용 1. 암시적인 커서 암시적인 커서는 오라클이나 PL/SQL실행 메커니즘에 의해 처리되는 SQL문장이 처리되는 곳에 대한 익명의 address로 오라클 데이터베이스에서 실행되는 모든 SQL문장은 암시적인 커서이며, 암시적인 커서 속성이 사용될 수 있다. -- 암시적 커서의 속성 SQL%ROWCOUNT : 해당 SQL 문에 영향을 받는 행의 수 SQL%FOUND : 해당 SQL 영향을 받는 행의 수가 1개 이상일 경우 TRUE SQL%NOTFOUND : 해당 SQL 문.. 더보기