'Data Base' 카테고리의 글 목록
본문 바로가기

Data Base

(9)
Oracle) PL/SQL Cursor(커서) PL/SQL 커서란? SQL의 커서는 크게 묵시적커서(Implicit Cursor)와 명시적커서(Explicit Cursor)로 나뉜다. 묵시적 커서는 필요한 경우 오라클이 자동적으로 선언하여 사용한 후 자동적으로 정리한다 우리가 자주 사용하는 SELECT문, UPDATE문, INSERT문, DELECT문 등이 실행될 때는 묵시적커서가 선언된다. 묵시적 커서는 하나만 실행되었다가 종료하므로 여러 행을 작업해야 한다면 묵시컥 커서는 사용할 수 없다. 묵시적 커서의 속성 SQL%ROWCOUNT : 해당 커서에서 실행한 총 행의 개수 SQL%FOUND : 커서 안에 수행할 데이터가 있다면 TRUE, 없다면 FALSE 반환 SQL%NOTFOUND : 커서 안에 수행할 데이터가 없을 경우 TRUE, 있다면 FAL..
Oracle) PL/SQL 개념 PL/SQL 이란? 오라클에서 제공하는 프로그래밍 언어를 뜻한다 일반 프로그래밍 언어적인 요소는 거의다 가지고 있어서 절차적인 데이터 처리가 모두 가능하고 SQL과 결합하여 기존 언어보다 더욱 편하게 데이터베이스 관련 작업을 처리할 수 있게 해준다 PL/SQL BLOCK의 기본 구성을 살펴보자 DECLARE : 모든 변수나 상수를 선언하는 선언부 BEGIN : 제어문, 반복분, 함수 정의 등을 기술하는 실행부 Exception : 실행 도중 에러 발생 시 해결하는 문장을 기술하는 예외처리부 (선언부와 예외처리부는 경우에 따라 생략 가능) 프로그램을 작업하기 전에 처음에 해야할 것이 있다. SET SERVEROUTPUT ON; 을 입력시켜야 한다. 화면 출력기능을 활성화 시키는 것이다. 처음에 한번만 입력..
Oracle) 다중행 Sub Query 다중행 Sub Query (Multi Row Sub Query) 란? Sub Query의 결과가 2건 이상 출력되는 것을 말한다. 결과가 여러개 출력되기 때문에 단일행 연산자(,=)를 사용할 수 없다 다중행에서 사용하는 연산자는 따로 있다 IN : 서브 쿼리 결과와 같은 값을 찾는다 EXISTS : Sub Query의 값이 있을 경우 메인 쿼리를 수행한다. >ANY : 서브 쿼리 결과 중에서 최솟값을 반환. ( >MIN 과 같다)
Oracle) 단일행 Sub Query 단일행 Sub Query 란? Sub Query 의 수행 결과 값이 1개의 행만 출력되는 것을 의미한다 가장 일반적으로 많이 사용하며 수행한 결과가 1건만 나오고 이 결과를 Main Query로 전달해서 수행한다 Sub Query 는 WHERE 절에 연산자 오른쪽에 위치해야 하므로 반드시 괄호로 묶어서 사용한다. 특별한 경우를 제외하고는 Sub Query 절에 Order by 절이 올 수 없다. 문제 1) Student 테이블과 Department 테이블을 사용하여 'Anthony Hopkins' 학생과 1전공(deptno1) 이 동일한 학생들의 이름과 1전공 이름을 출력하세요 select s.name, d.dname from student s, department d where s.deptno1 = d..
Oracle) MAX/MIN 함수, RANK 함수 MAX / MIN 함수 MAX 함수는 주어진 데이터 중에서 가장 큰 값을 되돌려주고 MIN 함수는 주어진 데이터 중에서 가장 작은 값을 되돌려준다. 그렇기 때문에 가장 큰 값과 가장 작은 값을 찾아서 정렬로 알아볼 때 유용하고 많이 사용된다. 예를 들어 월급이 높은 순으로, 나이가 많은 순으로, 몸무게가 적은 순으로, 등등 나타낼때 최대/최소값을 추출할 때 사용한다. MAX(컬럼값) MIN(컬럼값) from (테이블명) 하지만 MAX/MIN 함수는 순서대로 정렬하기 때문에 시간이 오래걸리므로 주의해야 한다. 문제 1) STUDENT 테이블에서 가장 높은 몸무게와 가장 낮은 몸무게를 나타내시오. (가장 높은 몸무게를 MAX로 가장 낮은 몸무게를 MIN로 표시하라) 구하는 방법은 간단하다. 컬럼명을 입력할 ..
Oracle) DECODE 함수 , TO_CHAR 함수 , CASE문 SYSDATE는 현재 날짜를 나타낸다. 다음날 설정하기. 그럼 이제 간단한 응용을 해보자 SYSDATE에서 +100일을 한 후 요일을 나타내자. TO_CHAR 함수를 사용하면 된다. TO_CHAR(숫자 -> 문자로 변환할 때) TO_CHAR안에 정보를 입력한 후 'day' 로 인해 숫자에서 화요일로 바뀌어 출력된다 다음날 출력하기. TO_CHAR을 사용하지 않으면 위에 사진처럼 숫자로만 나오게 된다. DECODE() 함수 DECODE 함수는 오라클에서만 사용되는 함수로 IF문을 사용해야 하는 조건문을 처리할 수 있다 로아클에서만 사용되는 함수라서 중요하지 않은건 아니다. 오라클내에서 자주 사용하기 때문에 제대로 익혀서 유용하게 사용하면 된다. 예를 들어보면, DECODE(A,B,'0','1') : A와 ..
Oracle) INSTR,SUBSTR,REPLACE 함수 LENGTH : 입력된 문자열의 길이 값을 출력해준다 LENGTH(컬럼 또는 문자열) INITCAP() 함수 : 첫글자를 대문자로 바꿔준다 ex) S INITCAT('hello'); //괄호안에 반드시 문자가 들어가야한다. 어떻게 변환이 되는지 확인해보자 F dual; //오라클에서 만들어놓은 빈 테이블, 함수에 대한 결과값을 보고 싶을 때 사용 // from 뒤에 dual을 사용한다. emp 같은 경우는 정보를 가져 오는 것 UPPER() / LOWER() 함수 W LOWER(ename) = 'ford'; // 데이터를 대소문자로 구분하지 않고 소문자로 바꿔준다 UPPER(ename) = ' ' ; // 어떤 데이터든 구분하지 않고 대문자로 바꿔준다 INSTR ( ) 함수 : 주어진 문자열이나 컬럼에서..
Oracle) 다양한 연산자 활용 수학과 마찬가지로 DataBase 에도 연산자를 사용한다 몇가지 예를 들자면 = : 비교대상에서 같은 조건 !=, : 비교대상에서 같지 않은 조건 > : 비교 대상에서 큰 조건 >= : 비교대상에서 크거나 같은 조건 < : 비교 대상에서 작은 조건