ORACLE 실습문제 _PLSQL
2022. 11. 25. 20:48
ORACLE/ORACLE 실습문제
1) 레퍼런스 변수로 EID,ENAME,JCODE,SAL, DTITLE선언하고 자료형 EMPLOYEE(EMP_ID,EMP_NAME,JOB_CODE,SALARY) , DEPARTMENT(DEPT_TITLE) 참조 사용자가 입력한 사번에 해당하는 사원을 조회해서 각 변수에 대입한 후 출력 DECLARE EID EMPLOYEE.EMP_ID%TYPE; ENAME EMPLOYEE.EMP_NAME%TYPE; JCODE EMPLOYEE.JOB_CODE%TYPE; SALARY EMPLOYEE.SALARY%TYPE; DTITLE DEPARTMENT.DEPT_TITLE%TYPE; BEGIN SELECT EMP_ID,EMP_NAME,JOB_CODE,SALARY,DEPT_TITLE INTO EID,ENAME,JCODE,SAL..
ORACLE 13. PLSQL _예외처리
2022. 11. 25. 20:24
ORACLE
예외(EXCEPTION) : 실행 중 발생되는 오류 [표현법] EXCEPTION WHEN 예외명1 THEN 예외처리구문1; WHEN 예외명2 THEN 예외처리구문2; ... WHEN OTHERS THEN 예외처리구문; * 시스템 예외 (오라클에서 미리 정의해둔 예외) - NO_DATA_FOUND : SELECT한 결과가 한 행도 없을 경우 - TOO_MANY_ROWS : SELECT한 결과가 여러행일 경우 - ZERO_DIVIDE : 0으로 나누기 했을 경우 - DUP_VAL_ON_INDEX : UNIQUE 제약조건에 위배되었을 경우 ... 1) ZERO_DIVIDE 예외 : 0으로 나누기했을 경우 DECLARE RESULT NUMBER; BEGIN RESULT := ..
ORACLE 13. PLSQL _반복문
2022. 11. 25. 20:15
ORACLE
1) BASIC LOOP문 LOOP 반복적으로 수행할 구문 ; *반복문을 빠져나갈 수 있는 구문* END LOOP; * 반복문을 빠져나갈 수 있는 구문 (2가지) 1) IF 조건식 THEN EXIT; END IF; 2) EXIT WHEN 조건식; 예시) 1부터 5까지 증가되는 값 출력 DECLARE I NUMBER := 1; BEGIN LOOP DBMS_OUTPUT.PUT_LINE(I); I := I+1; EXIT WHEN I = 6; --IF I = 6 THEN EXIT; END IF; END LOOP; END; / 2) FOR LOOP문 FOR 변수 IN[REVERSE] 초기값.. 최종값 LOOP 반복적으로 실행할 구문; END LOOP; BEGIN FOR I IN REVERSE 1..5 LOOP D..
ORACLE 13. PLSQL _조건문
2022. 11. 25. 17:34
ORACLE
PROCEDURE LANGUAGE EXTENSION TO SQL 오라클에 내장되어있는 절차적 언어로 SQL문 내에서 변수 활용, 조건처리(IF), 반복처리(LOOP,FOR,WHILE)등을 지원하여 SQL의 단점을 보완 다수의 SQL문을 한번에 실행 가능 (BLOCK 구조) * PL/SQL 구조 - [선언부 (DECLARE SECTION)] : DECLARE로 시작, 변수나 상수를 선언 및 초기화하는 부분 - 실행부 (EXECUTABLE SECTION) : BEGIN으로 시작, SQL문 또는 제어문 (조건문, 반복문)등의 로직을 기술하는 부분 - [예외처리부 (EXCEPTION SECTION)] : EXCEPTION으로 시작, 예외발생시 해결하기 위한 구문을 미리 기술해 둘 수 있는..
ORACLE 12. OBJECT (SEQUENCE)
2022. 11. 25. 17:20
ORACLE
자동으로 숫자 발생시켜주는 역할을 하는 객체 정수값을 순차적으로 일정값씩 증가시키면서 생성해줌 EX) 회원번호, 사원번호, 게시글번호, ... 1. 시퀀스 객체 생성(CREATE) [표현법] CREATE SEQUENCE 시퀀스명 [START WITH 시작숫자] --> 처음발생시킬 시작값 지정 (기본값 1) [INCREMENT BY 숫자] --> 몇 씩 증가시킬건지 (기본값 1) [MAXVALUE 숫자] --> 최대값 지정 (기본값 겁나큼) [MINVALUE 숫자] --> 최소값 지정 (기본값 1) [CYCLE | NOCYCLE] --> 값 순환 여부 지정 (기본값 NOCYCLE) [NOCACHE | CACHE 바이트 크기] --> 캐시메모리 할당 (기본값 CACHE20) * 캐시메모리 : 미리 발생될 값..
ORACLE 11. OBJECT (VIEW) _ VIEW 옵션
2022. 11. 24. 17:30
ORACLE
[상세표현법] CREATE [OR REPLACE] [FORCE|"NOFORCE"] VIEW 뷰명 AS 서브쿼리 [WITH CHECK OPTION] [WITH READ ONLY] - FORCE /NOFORCE > FORCE : 서브쿼리에 기술된 테이블이 존재하지 않아도 뷰 생성가능 > NOFORCE : 서브쿼리에 기술된 테이블이 존재해야만 뷰 생성가능 (생략시 기본값) - WITH CHECK OPTION : DML시 서브쿼리에 기술된 조건에 부합하는 값으로만 DML(조작)가능하도록 - WITH READ ONLY : 뷰에대해 조회만 가능(DML문 수행 불가) 1) NOFORCE : 서브쿼리에 제시된 테이블이 없으면 뷰도 만들어지 지지 않음 (기본값) CREATE OR REPLACE /*..
ORACLE 11. OBJECT (VIEW) _ DML
2022. 11. 24. 17:22
ORACLE
뷰를 이용한 DML (INSERT, UPDATE, DELETE) 가능 뷰를 통해 조작했을 경우 실제 데이터에 담겨있는 "베이스테이블" 에 값이 반영됨 (예시) 1) JOB 테이블을 이용한 뷰 만들기 CREATE OR REPLACE VIEW VW_JOB AS SELECT JOB_CODE, JOB_NAME FROM JOB; - 논리적인 테이블 : VW_JOB - 실제 데이터가 담겨있는 "베이스 테이블" : JOB 2) 뷰를 통해 INSERT / UPDATE / DELETE INSERT INTO VW_JOB VALUES('J8','인턴'); UPDATE VW_JOB SET JOB_NAME = '알바' WHERE JOB_CODE = 'J8'; DELETE FROM VW_JOB WHERE JOB_CODE = 'J..
ORACLE 11. OBJECT (VIEW)
2022. 11. 24. 16:46
ORACLE
SELECT문 (쿼리문)을 저장해둘 수 있는 객체 (자주 쓰는 긴 SELEC문 저장해두면 매번 긴 SELECT문 다시 기술할 필요 없음) 임시테이블 같은 존재 (실제 데이터가 담겨있는건 아님! -> 논리적인 테이블 ✅ VIEW를 생성하기 위해서는 계정에 권한 부여 해야함 GRANT CREATE VIEW TO BR; --> 관리자계정 실행 1. VIEW 생성 [기본표현법] CREATE [OR REPLACE] VIEW 뷰명 AS 저장시키고자하는 쿼리문 [OR REPLACE] : 뷰 생성시 중복된 이름의 뷰가 없으면 새로이 뷰를 생성 중복된 이름의 뷰가 있다면 해당 뷰를 변경(갱신)하는 옵션 CREATE VIEW VW_EMPLOYEE AS SELECT EMP_ID,EMP_NAME,DEPT_..
ORACLE 10. TCL (COMMIT, ROLLBACK,SAVE POINT)
2022. 11. 24. 16:33
ORACLE
트랜잭션 제어 언어 * 트랜잭션 (TRANSACTION) - 데이터베이스의 논리적 연산단위 - 데이터의 변경사항(DML)들을 하나로 묶어서 처리할 때 필요한 개념 - DML(INSERT,UPDATE,DELETE)문을 한번 수행할 때 트랜잭션이 존재하면 해당 트랜잭션에 같이 묶어서 처리 트랜잭션이 존재하지 않으면 새로운 트랜잭션을 만들어서 묶음 - COMMIT : 트랜잭션에 담겨있는 변경사항들을 실제 DB에 반영 시키겠다는 의미 (후에 트랜잭션 사라짐) - ROLLBACK : 트랜잭션에 담겨있는 변경사항들을 삭제(취소) 한 후 마지막 COMMIT 시점으로 돌아감 - SAVE POINT 포인트명 : 현재 시점에 해당 포인트명으로 임시저장점을 정의해두는 것 ROLLBACK시 전체 취소가 아니 일부만 ROLLB..
ORACLE 09. DCL(GRANT, REVOKE)
2022. 11. 24. 16:23
ORACLE
데이터 제어 언어 >계정에게 시스템 권한 또는 객체 접근권한을 부여(GARNT)하거나 회수(REVOKE)하는 구문 >시스템 권한 : DB에 접근하는 권한, 객체들을 생성할 수 있는 권한 >객체접근권한 : 특정 객체들을 조작할 수 있는 권한 1. 시스템 권한 종류 - CREATE SESSION : 계정에 접근할 수 있는 권한 - CREATE TABLE : 테이블을 생성할 수 있는 권한 - CREATE VIEW : 뷰를 생성할 수 있는 권한 - CREATE SEQUENCE : 시퀀스를 생성할 수 있는 권한 ... CREATE USER SAMPLE IDENTIFIED BY SAMPLE; -- SAMPLE계정 생성 GRANT CREATE SESSION T..