ORACLE 실습문제 _ 종합실습문제 _오답노트
2022. 11. 29. 18:37
ORACLE/ORACLE 실습문제
*도서관련 실습문제 1. 저작 형태가 옮김 에 해당하는 작가들이 총 몇 명인지 계산하는 SQL 구 문을 작성하시오 결과 헤더는 작가 (명) 으로 표시되도록 할 것 SELECT COUNT(DISTINCT WRITER_NM)"작가(명)" FORM TB_BOOK_AUTHOR JOIN TB_WRITER USING (WRITER_N0) WHERE COMPOSE_TYPE = '옮김'; 2. 가장 많은 책을 쓴 작가 3 명의 이름과 수 량을 표시하되 , 많이 쓴 순서대로 표시하는 SQL 구 문을 작성하시오 단 , 동명이인( 同名異人 ) 작가는 없다고 가정한다 .( 결과 헤더는 작가 이름 ”, 권 수 로 표시 되도록 할것) SELECT * FROM ( SELECT WRITER_NM"작가이름", COUNT(*)"권 수"..
ORACLE 14. OBJECT(TRIGGER)
2022. 11. 29. 16:44
ORACLE
내가 지정한 테이블에 INSERT,UPDATE,DELETE등의 DML문에 의해 변경사항이 생길때(즉, 테이블에 이벤트 발생했을때) 매번 "자동으로 실행시킬 내용"을 미리 정의해둘 수 있는 객체 EX) - 회원 탈퇴시 기존의 회원테이블에 데이터 DELETE 후 곧바로 탈퇴한 회원들만 따로 보관하는 테이블에 자동으로 INSERT처리해야할때 - 회원의 신고횟수가 일정 수를 넘었을 경우 묵시적으로 해당 해원을 블랙리스트로 처리 되게끔할때 - 입출고에 대한 데이터가 기록(INSERT)될 때마다 해당 상품에 대한 재고수량을 매번 수정(UPDATE)해야될때 * 트리거 종류 - SQL문의 실행시기에 따른 분류 > BEFORE TRIGGER : 내가 지정한 테이블에 이벤트가 발생되기 전에 트리거 실행 > AFTER TR..
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_..