DataBase/Oracle

    18. Oracle PL/SQL 반복문

    Basic Loop 무조건 1번은 실행 한 후 조건에 맞지 않으면 실행하지 않습니다. Basic Loop 문의 구조 Loop PL/SQL 문장; EXIT 조건 ; END LOOP; SET SERVEROUTPUT ON; DECLARE num number := 0; BEGIN LOOP dbms_output.put_line(num); num := num+1; EXIT WHEN num >10; END LOOP; END; / --------------------------------------------------- DECLARE num number := 10; BEGIN LOOP dbms_output.put_line(num); num := num-1; EXIT WHEN num = -1; END LOOP; END..

    17. Oracle PL/SQL 조건문

    IF문 의 구조 IF ( 조건 ) THEN 실행명령 END IF; SET SERVEROUTPUT ON; DECLARE emp_id employees.employee_id%TYPE; emp_name employees.last_name%TYPE; emp_dept employees.department_id%TYPE; dept_name varchar2(20):= null; BEGIN SELECT employee_id, last_name, department_id INTO emp_id, emp_name, emp_dept FROM employees WHERE employee_id = 124; IF(emp_dept = 50) THEN dept_name := 'Shipping'; END IF; IF(emp_dept =..

    16. Oracle 콜렉션,바인드 함수

    콜렉션 함수란? 일반 프로그래밍 언어에서 사용하는 배열 타입을 PL/SQL 에서는 콜렉션이라고 합니다. 연관 배열(Associative Array) 정의 Java의 Hash-Map 과 같이 키와 값으로 구성되어있는 콜렉션입니다. 키값을 Index라고 하기 때문에 Index-By Table 이라고 합니다. 키값으로는 숫자가 들어가며 , Binary_Integer , Pls_Integer 가 들어 갑니다. 위 값은 Number 보다 작은 저장영역을 사용하여 산술 연산 시 보다 빠릅니다. DECLARE tname varchar2(20); TYPE t_emp_name IS TABLE OF employees.last_name%type INDEX BY BINARY_INTEGER; v_name t_emp_name; ..

    15. Oracle PL/SQL

    PL/SQL(Procedural Language/SQL)이란? 오라클에서 제공하는 프로그래밍 언어 일반 프로그래밍 언어적 요소를 가지고 있고, 데이터베이스 업무를 처리하기 위한 최적화 언어 입니다. 기본구조 선언부(Declare) : 모든 변수나 상수를 선언하는 부분입니다. 실행부(Executable) : 제어문 반복문 함수정의 등을 작성합니다. (BEGIN ~ END) 사이에 담기게 됩니다. 예외처리부(Exception) : 실행 중 에러 발생 시 해결을 위한 명령을 작성합니다. PL/SQL 의 특성 PL은 블록 단위로 작업을 처리하며 익명 블록 (일회성) , 저장 블록(서버에 저장 후 주기적으로 호출이 있습니다. ) DECLARE , BEGIN , EXCEPTION 은 세미콜론을 붙이지 않습니다. P..

    14. Oracle 계층형쿼리

    계층형 쿼리란? Oracle 8i버전부터 제공하였습니다 . 일반적인 DBMS에서 제공하지 않고 Oracle 만의 특별한 기능이며 평등한 관계가 아닌 수직적인 구조를 가집니다. 수직적 구조로 보았을때, 최상위(부모 노드) - 중위(자식 노드) - 하위(리프) 형태로 이뤄져있습니다 그렇다면 테이블에서는 아래와 같이 표현됩니다. Item-Id Parent-Id Child-Id Comment 100 null Phone 핸드폰의 최상위입니다. 최상위 노드는 부모 키를 가지지 않습니다. 101 100 Main Board 중위 노드에 속하며, 핸드폰의 구성요소 중 하나입니다. 102 100 Battery 중위 노드에 속하며, 핸드폰의 구성요소 중 하나입니다. 103 101 CPU 중위 노드에 속하며, 메인보드 구성요..

    13. Oracle Sequence

    시퀀스란 ? 연속적인 번호를 만들어주는 기능을 담당합니다. 시퀀스의 구문 형식 CREATE SEQUENCE 시퀀스 명 INCREMENT BY N -- N만큼 증가하게 됩니다. 기본값은 1로 설정되어있습니다. START WITH N -- N부터 시작하게 됩니다. 기본값은 1로 설정 되어있습ㄴ디ㅏ. MAXVALUE N | NONMAXVALUE -- 시퀀스의 최대값을 설정합니다. MINVALUE N | NOMINVALUE -- 시퀀스의 최소값을 설정합니다. CYCLE 옵션일 경우 시작값이 됩니다. CYCLE | NOCYCLE -- 시퀀스가 최대값에 도달했을때 순환해서 사용할지 설정 합니다. CACHE N | NOCHCHE -- 시퀀스의 속도를 개선하기 위해 캐시 여부를 선택합니다. 캐시는 즐겨찾기로 생각하면 ..

    12. Oracle View

    View의 정의 테이블과 유사하지만 저장하기 위한 물리적인 공간이 필요없는 가상의 테이블입니다. 데이터가 물리적인 공간을 차지않고 논리적 집합을 가집니다. View의 사용은 는 크게 두가지 측면으로 나뉩니다. 보안 관리를 위하여 민감한 데이터를 보안등급에 맞춰 조회 할 수 있게 합니다. 테이블 명 , 혹은 컬럼 명을 숨김으로 결과만 제공하여 어떤 방식으로 출력되었는지 숨길 수 있습니다. 사용 편의성을 위하여 검색 조건을 단순화 하여 사용할 수 있습니다. VIEW 의 기본 예제 VIEW 테이블 생성 CREATE VIEW V_EMP(EMP_ID,FIRST_NAME,JOB_ID,HIRE_dATE,DEPT_ID) AS SELECT EMPLOYEE_ID, FIRST_NAME, JOB_ID, HIRE_DATE, D..

    11. Oracle 무결성 제약조건

    NOT NULL : NULL 값이 입력되지 못하게 하는 조건 CREATE TABLE NULL_TABLE( FIELD1 VARCHAR2(20) NOT NULL, FIELD2 VARCHAR2(20) NULL, FIELD3 VARCHAR2(20) ); INSERT INTO NULL_TABLE (FIELD1,FIELD2) VALUES ('AA','BB'); -- 정상적으로 삽입됩니다. INSERT INTO NULL_TABLE (FIELD2,FIELD3) VALUES ('CC','DD'); -- 에러가 발생합니다.(FIELD1은 값이 반드시 들어가야합니다.) UNIQUE : 중복된 값이 입력되지 못하게 하는 조건 ( NULL 값을 허용합니다. ) CREATE TABLE UNIQUE_TABLE( FIELD1 VAR..

    10. Oracle DML(Insert, Update, Delete)

    DML(Data Manipulation Language) 데이터 조작어 데이터를 조회하거나 변형을 하는 명령어를 의미 합니다. 대표적으로 SELECT,INSERT,UPDATE,DELETE 구문이 있습니다. SELECT 컬럼1,컬럼2 FROM 테이블1,테이블2 WHERE 조건 ; INSERT INTO 테이블명 (컬럼1,컬럼2,컬럼3.. ) VALUES(값1, 값2, 값3 ... ); INSERT INTO MEMBER_EX(MEMBER_ID,MEMBER_NAME,MEMBER_SALARY,MEMBER_LOC,MEMBER_MANAGER) VALUES(10,'홍길동',1000,'서울','관리자'); INSERT INTO MEMBER_EX VALUES(20,'고길동',2000,'부산','관리자'); INSERT I..

    9. Oracle DDL(Table 정의)

    DDL(Data Definition Language : Create, Drop, Alter, Truncate 구문이 있습니다. 테이블과 같은 데이터 구조를 정의하는데 사용하는 명령어 입니다. 문자형 데이터 타입( 참고 ) CHAR 고정 길이형입니다. VARCHAR 가변 길이형입니다. NCHAR 고정 길이형입니다. ( UNICODE 를 받을 수 있습니다.) NVARCHAR 가변 길이형입니다. ( UNICODE 를 받을 수 있습니다.) LONG(2GB) 가변 길이형입니다. ( 큰 데이터를 받을 수 있습니다.) CREATE TABLE 테이블명 테이블을 생성 할 수 있습니다. CREATE TABLE MEMBER( MEMBER_ID NUMBER(10), MEMBER_NAME VARCHAR2(20), MEMBER_..