590 likes | 716 Views
데이터 검색. 질의어 (select) Group Join & 집합연산자 Subquery 오라클 내장함수. 오라클 내장함수. 숫자 함수 문자열 처리 함수 날짜 함수 변환 함수. DUAL 테이블. 데이터 딕셔너리와 함께 오라클에 의해 자동으로 생성되는 테이블 특정한 쿼리나 함수를 실행하여 결과를 확인할 때 주로 사용 DUMMY 라는 VARCHAR2(1) 으로 정의된 하나의 열과 , 값을 가지는 하나의 행으로 구성. 예제 실행 결과. 산술 표현식.
E N D
데이터 검색 질의어 (select) Group Join & 집합연산자 Subquery 오라클 내장함수
오라클 내장함수 숫자 함수 문자열 처리 함수 날짜 함수 변환 함수
DUAL 테이블 • 데이터 딕셔너리와 함께 오라클에 의해 자동으로 생성되는 테이블 • 특정한 쿼리나 함수를 실행하여 결과를 확인할 때 주로 사용 • DUMMY라는 VARCHAR2(1)으로 정의된 하나의 열과, 값을 가지는 하나의 행으로 구성
산술 표현식 • 데이터가 디스플레이 되는 방식을 변경하거나, 계산을 수행하고자 할 때 사용 • FROM 절을 제외한 SQL문장에 사용 • +, - , * , / , ( )
숫자 함수 • 숫자 함수는 숫자 값을 받아들여 숫자 값을 되돌려줌 • 숫자 함수의 종류 • ROUND(column | expr, n) • TRUNC(column | expr, n) • MOD(m,n) • ABS(n) • POWER(m, n) • CEIL(n) • FLOOR(n) • GREATEST/LEAST
ROUND(column | expr, n) • 해당 자리수까지 보여주면서 반올림
TRUNC(column | expr, n) • n자리까지 절삭
MOD(m, n) • m값을 n값으로 나누고 남은 나머지를 나타냄
ABS(n) • n의 절대값
POWER(m, n) • m의 n제곱승의 값을 나타냄
CEIL(n) • 주어진 값보다는 크지만 근접하는 최소값을 나타냄
FLOOR(n) • 주어진 값보다 작거나 같은 최대 정수값을 나타냄
GREATEST/LEAST • 주어진 데이터 값 중 최대값/최소값
문자열 처리 함수 • 입력으로 문자 데이터를 받아들여 결과값을 문자나 숫자로 돌려줌 • 문자 함수 종류 • LOWER(column|expr) • UPPER(column|expr) • INITCAP(column|expr) • CONCAT(column1|expr1, column2|expr2) • SUBSTR(column|expr, m[n]) • LENGTH(column|expr) • NVL(column1|expr1, column2|expr2) • LPAD(char1, n [,char2])/RPAD(char1, n [,char2]) • REPLACE(char1, str1, str2) • TRANSLATE
LOWER(char)/UPPER(char)/INITCAP(char) • LOWER : 대->소문자 • UPPER : 소->대문자 • INITCAP : 각 단어의 첫자만 대문자
CONCAT(char1, char2) • 2개의 char형을 하나로 합침 select concat(concat(c_name, ' '), c_addr) information from customer
SUBSTR(char, m ,[n]) • m(시작index위치), n(index기준 글자수) 기준으로 해당 문자열을 반환 select substr(c_name, 2) test from customer where c_dist='00'
LENGTH(char1) • Char1 문자열의 길이를 반환
널 값 관리 (NVL 함수) • 널 값을 다른 값으로 전환하기 위해서 NVL함수를 사용
LPAD(char1, n [,char2])/RPAD(char1, n [,char2]) • LPAD는 전체 n칸에서 왼쪽공백을 문자로 채움 • RPAD는 전체 n칸에서 오른쪽공백을 문자로 채움
REPLACE(char1, str1, str2) • 문자열의 특정 문자를 원하는 문자로 바꿈 • 대소문자 구분
INSTR(1) • 왼쪽부터 시작해서 첫 번째로 검색된 위치 반환
INSTR(2) • 왼쪽 3번째 문자열부터 시작해서 첫 번째로 검색된 위치 반환
INSTR(3) • 왼쪽 3번째 문자열부터 시작해서 두 번째로 검색되는 위치 반환
TRIM • 양끝에서부터 특정 문자를 선택하여 제거 • 제거 도중 다른 문자가 나오면 제거 중단
LTRIM & RTRIM • LTRIM은 왼쪽, RTRIM은 오른쪽부터 제거
TRANSLATE • 문자 대체하기
날짜 함수 • SYSDATE() • ADD_MONTHS() • EXTRACT() • LAST_DAY() • MONTH_BETWEEN() • NEXT_DAY() • ROUND() • TRUNC()
SYSDATE() • 데이터베이스의 타임 존 기반으로 DATE값에 있는 현재 날짜와 시간을 리턴
ADD_MONTHS() • 주어진 날짜에 몇 개월을 더한 값을 리턴 • RESULT:=ADD_MONTHS(DATE, NUMBER)
EXTRACT() • 날짜/시간이나 Interval 값을 얻어내는 데 사용되는 함수 • Result:=extract( d_fieldfrom [d_value | interval_value]) • d_field에 쓰일 수 있는 값 들 • YEAR, MONTH, DAY, HOUR, MINUTE, SECOND …
LAST_DAY() • 주어진 날짜가 포함된 월의 마지막 날짜를 리턴 • RESULT:=LAST_DAY(date_value)
MONTHS_BETWEEN() • 두 날짜 사이에 몇 달 간격이 있는지를 검사하여 리턴 • 리턴 값은 실수 • 정수부분은 달 수 • 소수점 아래 부분은 한 달이 안 되는 날짜 간격 • RESULT:=MONTHS_BETWEEN(DATE,DATE)
NEXT_DAY() • 날짜와 요일을 인수로 받아서, 날짜 이후에 처음 등장하는 요일을 리턴 • RESULT:=NEXT_DAY(DATE,DAY)
ROUND() • 인수로 전달된 날짜를 반올림한 값을 리턴 • RESULT := ROUND(DATE[,FORMAT]);
TRUNC() • 두 번째 인수로 지정된 포맷을 기반으로 날짜/시간 값을 절삭하여 리턴 • RESULT := TRUNC(DATE[,FORMAT]);
ROUND(),TRUNC()에 사용되는 날짜 포맷 • 연도: YYYY, YY, YEAR • 월 : MONTH, MON • 일 : DDD, DD • 요일 : DAY, DY, D • 시간 : HH, HH12, HH24 • 분 : MI • 초 : SS
날짜에 산술 연산자 사용(1) • 데이터베이스는 날짜를 숫자로 저장하기 때문에 산술 연산자를 사용하여 날짜에 대한 계산 가능 • 날짜 뿐만 아니라 숫자 상수 연산가능
변환 함수 • TO_CHAR(number | date, [‘fmt’]) • 숫자 또는 날짜 값을 fmt형식의 문자 스트링으로 바꿈 • TO_NUMBER(char) • 숫자를 포함하고 있는 문자 스트링을 숫자로 전환 • TO_DATE(char,[‘fmt’]) • 날짜를 나타내는 문자 스트링을 명시한 fmt에 따라 날짜 값으로 바꿈 • fmt를 생략하면 형식은 DD-MON-YY가 됨
숫자에 대한 TO_CHAR 함수 • 대출번호 LP100001의 대출금액을 출력
TO_DATE 함수 • 계좌 개설이 2007년 1월 19일인 것을 출력
뷰 • 뷰의 장점 • 뷰는 데이터베이스의 선택적인 내용을 보여줄 수 있기 때문에 데이터베이스에 대한 액세스를 제한 • 복잡한 질의를 통해 얻을 수 있는 결과를 간단한 질의를 사용해 구할 수 있게 함 • 죠인 방법을 몰라도 죠인을 한 것처럼 여러 테이블에 대한 데이터를 뷰를 통해 볼 수 있음 • 한 개의 뷰로 여러 테이블에 대한 데이터를 검색 • 특정 평가 기준에 따른 사용자 별로 다른 데이터를 액세스할 수 있음
뷰의 생성 • 문법 CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW 뷰명 [(alias[,alias]...)] AS Subquery [WITH CHECK OPTION [CONSTRAINT 제약조건]] [WITH READ ONLY] • OR REPLACE는 뷰를 변경할 수 있음 • FORCE는 기본 테이블의 유,무에 관계없이 뷰를 만듬 • Alias는 부 질의를 통해 선택된 값에 대한 열 명이 됨 • WITH CHECK OPTION은 뷰에 의해 액세스 될 수 있는 행만이 입력되거나 변경될 수 있음을 지정 • 제약 조건은 CHECK OPTION 제약 조건에 지정된 이름 • WITH READ ONLY는 이 뷰에서 DML이 수행될 수 없게 함
예제 실행 결과 • 계좌 테이블에서 대출계좌번호, 대출금액, 대출상품명을 검색. 대출금액은 2억 4천만원과 2억 5천만원 사이의 것들 출력