★ 프로시저(PROCEDURE) 1. 익명 프로시저 1회용 프로시저 2. 실명 프로시저 재사용 오라클에 저장 저장 프로시저(Stored Procedure) 매개변수 구성 / 반환값 구성 > 자유 저장 함수(Stored Function) 매개변수 필수/반환값 필수 > 고정 익명 프로시저 선언 방법 [declare 변수 선언; 커서 선언;] begin 구현부; [exception 처리부;] end; 저장 프로시저 선언 방법 create [or replace] procedure 프로시저명 is(as) [변수 선언; 커서 선언;] begin 구현부; [exception 처리부;] end; ■ 프로시저 ex) 1. 익명 프로시저 declare vnum number; begin vnum := 100; dbms_ou..
★ PL/SQL Oracle's Procedural Language Extension to SQL ANSI-SQL 표준 SQL에 절차 지향 언어의 기능을 추가한 SQL ANSI-SQL + 자바같은 프로그래밍 언어의 기능 = PL/SQL ★ ANSI-SQL 비절차 지향 언어 순서가 없고 문장간의 행동이 서로 독립적이다. 문장 단위 구조 ★ 프로시저 메소드, 함수 등... 순서가 있는 명령어의 집합(ANSI-SQL + PL/SQL)의 집합 1. 익명 프로시저 - 1회용 코드 작성용 2. 실명 프로시저 저장(데이터베이스) > DB object 재사용 가능 계정간 공유 가능 PL/SQL 프로시저 블럭 구조 4개의 키워드(블럭)으로 구성 a. declare b. begin c. exception d. end a...
★ MOVIE RANK DATA https://movie.naver.com/movie/sdb/rank/rmovie.naver 랭킹 : 네이버 영화 영화, 영화인, 예매, 박스오피스 랭킹 정보 제공 movie.naver.com 현재 네이버 영화에 있는 순위 목록을 크롤링 하여, 1. 개념적 모델링 2. 논리적 모델링 3. 물리적 모델링 4. DDL 생성 5. DML 생성 6. SELECT 검증 순으로 진행하였다. ■ STEP 1. 데이터 크롤링 현재 랭킹에 있는 정보와 영화 상세 정보들을 크롤링 하여 excel에 종합하였다. 컬럼은 총 21 컬럼으로, 1위 ~ 50위에 위치하는 영화들을 가져왔다. 1. 순위 2. 제목 3. 개봉년도 4. 관람객 평점 5. 평론가 평점 6. 네티즌 평점 7. 개요 8. 장르..
★ 데이터베이스 설계 요구사항 수집 및 분석 개념 데이터 모델링 논리 데이터 모델링 물리 데이터 모델링 데이터베이스 구축 ★ 데이터 모델링 요구 분석 기반 > 수집한 데이터 > 분석 > 저장 구조 생성 > 도식화 > ERD(산출물) 데이터 저장하기 위한 데이터 구조를 설계하는 작업 DBMS 종류를 결정하지 않는다. 개념 데이터 모델링 > 간단하게 표현한 설계도 > 테이블 + 컬럼 + 관계 논리 데이터 모델링 > 관계형 데이터베이스 성질 반영 > 속성 + 도메인 + 키 > 제대로된 설계도 물리 데이터 모델링 > 특정 DBMS 결정 > 오라클 선정 + 반영 > 물리적 설정.. ■ 1. ERD, Entity Relationship Diagram 엔티티간의 관계를 표현한 그림 관계형 데이터베이스 모델링 기법 중..
★ 트랜잭션(Transaction) 데이터를 조작하는 업무의 시간적 단위 일련의 사건의 집합. ex) 은행에서 돈을 인출하는 행동(1~8번 행동) 1개 이상의 명령어로 구성된 작업 단위 트랜잭션 명령어 DCL, TCL 1. commit : 현재 작업한 내용을 저장 2. rollback : 현재 작업을 취소하고 되돌림 3. savepoint : 현재 작업한 내용을 현재 지점까지 save 지정해놓음 ■ 사용 ex) ex 1) commit; -- 이 시각부터 새로운 트랜잭션이 시작된다!! > insert, update, delete만 트랜잭션에 포함된다. delete from tblTran where name = '박문수'; select * from tblTran; -- 메모리 -- 우리가 하는 모든 inse..
★ Hierarchical Query 오라클 전용 레코드 관계과 서로 상하 수직구조일때 사용 서로 다른 테이블간의 관계가 수직 구조일 때 사용 자기 참조를 하는 테이블에서 사용 ex) 카테고리, 답변형 게시판, 조직도 등.. 트리 구조에 사용 사용 양식 /* 구문 - start with절 + connect by 절 계층형 쿼리 의사 컬럼 a. prior > 자기와 연관된 부모 레코드 참조 b. level > 세대수(depth) */ ■ 사용 테이블 생성 ex1) 컴퓨터 구조 create table tblComputer ( seq number primary key, -- 식별자 name varchar2(50) not null, -- 부품명 qty number not null, -- 수량 pseq numbe..
★ WITH 절 인라인뷰(from절 서브쿼리)에 이름을 붙이는 기술 with절 실행 방식 1. Materialize 방식 > 임시 테이블이 2번 이상 사용되면 내부에 임시 테이블 생성 + 반복 재사용 2. Inline 방식 > 임시 테이블 생성없이 매번 인라인 쿼리를 반복 실행 양식 - 양식 with 임시테이블명 as ( 결과셋 select ) select 문 [WITH ] - WITH 절 SELECT column_list - SELECT 절 FROM table_name - FROM 절 [WHERE search_condition] - WHERE 절 [GROUP BY group_by_expression] - GROUP BY 절 [HAVING search_condition] - HAVING 절 [ORDER ..
★ Rank 순위 함수 rownum의 사용을 여러가지 용도로 구현해 놓은 함수 1. rank() over() ranck() over(order by 컬럼명 [asc|desc]) 순위 부여시, 중복값이 발생하면 동일한 순위를 부여하고, 중복값의 개수만큼 건너뛰기 한다. 2. dense_rank() over() dense_ranck() over(order by 컬럼명 [asc|desc]) 순위 부여시, 중복값이 발생하면 동일한 순위를 부여하고, 그 뒤의 순위는 건너뛰기 없이 순차적으로 부여한다. 3. row_number() over() row_number() over(order by 컬럼명 [asc|desc]) 순위 부여시, 중복값과 상관없이 순차적으로 부여 직접 rownum을 사용한 결과와 동일하다 ■ 사..