Database (16) 썸네일형 리스트형 16. SQL응용(JDBC연결하기, 사용하기) JDBC(Java Database Connectivity) - 관계형 데이터베이스에 저장된 데이터를 접근 및 조작할 수 있게 하는 API - 다양한 DBMS에 대해 일관된 API로 데이터베이스 연결, 검색, 수정, 관리 등을 할 수 있게 함 * API(Application Programming Interface): 컴퓨터, 컴퓨터 프로그램을 연결하기 위한 인터페이스 - JDBC는 일관성 있는 방식으로 데이터베이스에 접근할 수 있는 API를 제공하는 클래스들이라 볼 수 있음 : 자바와 데이터베이스는 별도의 시스템이기 때문에 자바에서 제공되는 API에는 데이터베이스에 접근할 수 있는 기능을 가진 클래스들이 제공되지 않음. 그래서 자바에서 데이터베이스 작업이 필요할 때 사용할 수 있도록 하는 것 → 자바에.. 15. PL/SQL - 함수/프로시저/트리거 프로시저 - 특정 작업을 수행하는 이름이 있는 PL/SQL 블록 - 매개변수를 받을 수 있고 반복적으로 사용할 수 있다. - 연속실행, 구현이 복잡한 트랜잭션을 수행하는 PL/SQL 블록을 데이터베이스에 저장하기 위해 생성 저장 프로시저(Stored Procedure) 오라클이 만들어 놓은 PL/SQL 블록을 저장해 놓고 필요한 경우 호출하여 사용하기 위해 제공하는 것. → 복잡한 DML문들이 필요할 때마다 다시 입력할 필요 없이 간단히 호출만 하면 되며 성능향상과 호환성 문제도 해결해준다. -- 형식 CREATE[OR REPLACE] PROCEDURE 프로시저이름 ---> 생성: 프로시저를 여러번 반복해 호출하여 사용할 수 있음 ( 매개변수1 [MODE] 데이터 타입 ---> 프로시저는 어떤 값을 전달.. 14. PL/SQL - 커서 커서 1. 커서 - 일반 프로그래밍 언어의 파일처리와 방법이 비슷, 행의 집합을 다룰 때 많은 편리한 기능 제공 - 테이블에서 여러 행을 SELECT한 후 쿼리 결과인 행의 집합을 한 행씩 처리하기 위함. 2 . 커서작동순서 - 커서 선언 → 커서 열기 → ( 커서 데이터 가져오기 → 데이터 처리 ) → 커서 닫기 ㄴ LOOP문으로 가져올 행이 없을 때까지 반복 * 파일처리순서: 파일 open → 처음 데이터 읽음 → 파일의 끝(EOF: End Of File)까지 반복 → 파일 close 3. 형식 DECLARE CURSOR 커서이름 IS 실행문(select sql문); -- 커서 선언 BEGIN OPEN 커서이름; -- 커서 열기 FETCH 커서이름 INTO 변수이름; -- 커서로부터 데이터를 읽어.. 13. PL/SQL - 제어문 조건문 IF, CASE 1. IF -- 형식1: 조건이 하나 IF(조건) THEN 실행문장; END IF; -- 형식2: 조건이 여러개 IF(조건) THEN 실행문장; ELSIF(조건) THEN 실행문장; ELSIF(조건) THEN 실행문장; ENDIF; 예제: emp_table에서 empno, ename, deptno, dname을 출력하라. 단, dname의 값은 다음과 같다. deptno = 10 : ACCOUNT / deptno = 20 : RESERCH / deptno = 30 : SALES / detpno = 40 : OPERATIONS DECLARE vempno emp_table.empno%type; vename emp_table.ename%type; vdeptno emp_table.dept.. 12. PL/SQL - SQL*Plus PL/SQL이란? - Procedral Language / Stractured Query Language의 약어 - SQL을 확장한 절차적 언어(Procedural Language)로서 SQL의 단점 보완 * 절차: 어떤 상황을 거치기 위한 단계 - 관계형 데이터베이스에서 사용되는 Oracle의 표준 데이터 엑세스 언어 - 오라클에서 지원하는 프로그래밍 언어의 특성 수용 목적 아래의 단점 보완 - 변수 / 제어문(조건, 반복문) / 예외처리 없음 → 변수 선언 / 비교 처리 / 반복 처리가 가능해짐. - 한번에 단 하나의 명령문만 사용 가능해서 명령문이 많아질수록 트래픽이 상대적으로 증가 장점 - 성능 항샹: 잘 만들어진(튜닝) PL/SQL이란 가정하에 좋아진다.. - 모듈식 프로그램 개발 가능: 논리적.. 11. 그룹함수: ROLLUP/CUBE/GROUPING SET 그룹함수 GROUP BY: 특정 칼럼을 기준으로 그룹화하여 계산하고 싶을 때 사용하는 절. 1. ROLLUP GROUP BY로 묶은 각각의 그룹 합계와 전체 합계를 모두 구할 수 있음 → 순서가 바뀌면 결과도 바뀜 SELECT p_id, month, SUM(sales) AS Total FROM sales_month GROUP BY ROLLUP(p_id, month); or (month, p_id); 2. CUBE GROUP BY 항목 간 다차원적 소계 계산(모든 그룹 케이스를 계산) → 순서가 달라져도 결과는 달라지지 않는다. SELECT month, p_id, SUM(sales) AS Total FROM sales_month GROUP BY CUBE(p_id, month); 3. GROUPING SET.. 10. 시퀀스/뷰 시퀀스란? - 숫자를 자동으로 생성하는 객체. - 행을 구분하기 위한 고유값으로 기본키를 사용. - 기본키는 중복되지 않는 유일한 값을 가져야 하는데 직접 값을 생성하는 것은 부담일 수 있어서 시퀀스를 이용해 기본키를 지정. CREATE 통하여 시퀀스 생성 -- 형식 CREATE SEQUENCE 시퀀스이름 [START WITH 시작값] [INCREMENT BY 증가값] [MAXVALUE 최댓값 | NOMAXVALUE] [MINVALUE 최솟값 | NONMINVALUE] [CYCLE | NOCYCLE] -- 최댓값 도달시 순환 여부 / NOCYCLE은 증가 완료 시 에러 유발 [CACHE | NOCACHE] -- 메모리상 시퀀스값 관리 여부(기본값: 20) / 연속된 번호를 얻어야 한다면 NOCACHE가.. 9. 집합연산자 집합연산자 두 개 이상의 쿼리 결과를 하나로 결합시키는 연산자 1. UNION 여러개의 SQL문의 결과(중복 제거)에 대한 합집합 예제: salesman과 mamger의 결과 결합 SELECT ename, job FROM emp_table WHERE job = 'SALESMAN' UNION SELECT ename, job FROM emp_table WHERE job = 'MANAGER'; 2. UNION ALL 여러개의 SQL문의 결과(중복 포함)에 대한 합집합 예제: 급여가 1000 미만인 직원, 2000 미만인 직원을 조회하여 결합 SELECT ename, sal FROM emp_table WHERE sal < 1000 UNION ALL SELECT ename, sal FROM emp_table WH.. 이전 1 2 다음