(파일명 20231103_01_scott(plsql), 20231103_02_scott, 20231106_01_scott(plsql), 20231106_02_scott ) ■ PROCEDURE (프로시저) - PL/SQL 에서 가장 대표적인 구조인 스토어드 프로시저는 개발자가 자주 작성해야 하는 업무의 흐름을 미리 작성하여 데이터베이스 내에 저장해 두었다가 필요할 때 마다 호출하여 실행할 수 있도록 처리해주는 구문! ■ 형식 및 구조 / 실행(호출) -- 형식 및 구조 /* CREATE [OR REPLACE] PROCEDURE 프로시저명 [( 매개변수 IN 데이터타입 매개변수 OUT 데이터타입 매개변서 INOUT 데이터타입 )] IS [-- 주요 변수 선언] BEGIN -- 실행 구문; ... [EXCE..
📚 Study/Oracle
■ FUNCTION - 하나 이상의 PL/SQL 문으로 구성된 서브루틴으로 코드를 다시 사용할 수 있도록 캡슐화 하는데 사용 - 오라클에서는 오라클에 정의된 기본 제공 함수를 사용하거나 직접 스토어드 함수를 만들 수 있음(→ 사용자 정의 함수) - 사용자 정의 함수는 시스템 함수처럼 쿼리에서 호출하거나 저장 프로시저처럼 EXCUTE 문을 통해 실행 가능 ※ 사용자 정의 함수(스토어드 함수)는 IN 파라미터(입력 매개변수)만 사용할 수 있으며 반드시 반환될 값의 데이터 타입을 RETURN 문에 선언해야 하고, FUNCTION은 반드시 단일 값만 반환!! 입력 매개변수 : 이사와서 이웃집에 떡 줌(주고 끝) 출력 매개변수 : 엄마한테 빈 김치통 건네면 엄마가 빈 김치통에 김치 넣어서 돌려줌 입출력 매개변수 ..
(파일명 20231102_03_hr(plsql)) ■ %TYPE - 특정 테이블에 포함되어 있는 컬럼의 데이터타입(자료형)을 참조하는 데이터타입 - 형식 및 구조 변수명 테이블.컬럼명%TYPE [:= 초기값]; -- HR.EMPLOYEES 테이블의 특정 데이터를 변수에 저장 DECLARE --V_NAME VARCHAR2(20); V_NAME EMPLOYEES.FIRST_NAME%TYPE; BEGIN SELECT FIRST_NAME INTO V_NAME -- 쿼리로 얻어낸 값을 변수에 담을 때에는 V := 쿼리 이런게 아니라 INTO 변수로!! FROM EMPLOYEES WHERE EMPLOYEE_ID = 103; DBMS_OUTPUT.PUT_LINE(V_NAME); END; --○ EMPLOYEES 테이..
(파일명 20231102_02_scott(plsql)) ■ LOOP 반복문 - 조건과 상관없이 무조건 반복하는 구문 ■ 형식 및 구조 /* LOOP -- 실행문 EXIT WHEN 조건; -- 조건이 참인 경우 반복문을 빠져나간다. END LOOP; */ ■ LOOP문 예제 -- 1 부터 10 까지의 수 출력(LOOP문 활용) DECLARE N NUMBER; BEGIN N := 1; LOOP DBMS_OUTPUT.PUT_LINE(N); EXIT WHEN N >= 10; N := N + 1; -- N++;, N+=1; 자바로 치자면 이것들과 같음 END LOOP; END; --==>> /* 1 2 3 4 5 6 7 8 9 10 PL/SQL 프로시저가 성공적으로 완료되었습니다. */ ■ WHILE 반복문 - ..
(파일명 20231102_02_scott) ■ IF문 - IF ~ THEN ~ ELSE ~ END IF; - 다른 언어의 IF 조건문과 거의 유사함 - 조건이 TRUE이면 THEN과 ELSE 사이의 문장을 수행하고 - FALSE이면 NULL 이나 ELSE 와 END IF; 사이 문장을 수행한다! ■ 형식 및 구조 /* IF 조건 THEN 처리문; END IF; */ /* IF 조건 THEN 처리문; ELSE 처리문; END IF; */ /* IF 조건 THEN 처리문; ELSIF 조건 THEN 처리문; ELSIF 조건 THEN 처리문; ELSE 처리문; END IF; */ → IF 중첩 시, ELSE IF 가 아닌 ELSIF 로 써야함! 확인!! ■ IF문 실습 - DECLARE 에서 변수 선언 할 때,..
(파일명 20231102_02_scott(plsql))■ PL/SQL(Procedural Language extension to SQL)- 프로그래밍 언어의 특성을 가지는 SQL 의 확정이며, 데이터 조작과 질의 문장은 PL/SQL의 절차적 코드 안에 포함된다. - PL/SQL 을 사용하면 SQL 로 할 수 없는 절차적 작업이 가능!! - 여기에서 절착적이란 의미는 어떤 것이 어떤 과정을 거쳐 어떻게 완료되는지 그 방법을 정확하게 코드에 기술한다는 것! - PL/SQL 은 절차적으로 표현하기 위해 변수를 선언할 수 있는 기능, 참과 거짓을 구별할 수 있는 기능, 실행 흐름을 컨트롤할 수 있는 기능 등을 제공. - PL/SQL은 블럭 구조로 되어 있으며, - 블럭은 선언 부분, 실행 부분, 예외 처리 부분..
■ VIEW (뷰)■ VIEW 란?- 이미 특정한 데이터베이스 내에 존재하는 하나 이상의 테이블에서 사용자가 얻기 원하는 데이터들만을 정확하고 편하게 가져오기 위하여 사전에 원하는 컬럼들만 모아서 만들어놓은 가상의 테이블로 편의성 및 보안에 목적이 있다. ■ 형식 및 구조CRAETE [OR REPLACE] VIEW 뷰이름 [(ALIAS[, ALIAS, ...])] AS 서브쿼리(SUBQUERY) [WITH CHECK OPTION] [WITH READ ONLY] ■ VIEW 실습--○ 뷰(VIEW) 생성 뷰 생성 권한이 있어야 생성 가능 SELECT E.FIRST_NAME, E.LAST_NAME, D.DEPARTMENT_NAME, L.CITY , C.COUNTRY_NAME, R.REGION_NAME FRO..
(파일명 20231101_01_scott) ■ UPDATE - 테이블에서 기존 데이터를 수정(변경)하는 구문 - 형식 및 구조 → UPDATE 테이블명 SET 컬럼명 = 변경할값[, 컬럼명 = 변경할값,....] [WHERE 조건절] ■ UPDATE 실습 1 --○ TBL_SAWON 테이블에서 사원번호 1005번 사원의 -- 주민번호를 『7609172234567』로 수정한다. UPDATE TBL_SAWON SET JUBUN = '7609172234567' WHERE SANO = 1005; --==>> 1 행 이(가) 업데이트되었습니다. -- 확인 SELECT * FROM TBL_SAWON; --==>> /* : 1005아이유76091722345672015-10-191000 : */ -- 실행 후 COMM..
(파일명 20231030_01_hr)■ 무결성■ 개체 무결성 (Entity Integrity)릴레이션에 저장되는 튜플(tuple)의 유일성을 보장하기 위한 제약 조건ex ) EMP 테이블에 조건이 모두 같은 SMITH 2명이 있음 ■ 참조 무결성 (Relational Integrity)릴레이션 간의 데이터 일관성을 보장하기 위한 제약 조건ex ) 홍길동, 부서번호 60인데 DEPT 테이블에 부서번호 60은 존재하지 않음 ■ 도메인 무결성 (Domain Integrity)허용 가능한 값의 범위를 저장하기 위한 제약 조건ex ) HIREDATE에 1234가 입력됨 ■ 제약조건의 종류1. PRIMARY KEY(PK : P) → 기본키, 고유키, 식별키, 식별자 : 해당 컬럼의 값은 반드시 존재해야 하며, 유일..
(파일명 20231030_01_hr) ■ 정규화(Normalization) - 데이터베이스 서버의 메모리 낭비를 막기 위해 어떤 하나의 테이블을 식별자를 가지는 여러개의 테이블로 나누는 과정!! ex) 윤수가 옥장판을 판매한다. 고객리스트 → 거래처 직원 명단이 적혀있는 수첩의 정보를 데이터 베이스화 하려고 함! -- 테이블명 : 거래처직원 /* 10Byte 10Byte 10Byte 10Byte 10Byte 10Byte 10Byte ------------------------------------------------------------------------------- 거래처회사명 회사주소 회사전화 거래처직원명 직급 이메일 휴대폰 ---------------------------------------..