2008. 10. 21. 16:31
[Oracle] 오라클 관련 함수들과 정보들
2008. 10. 21. 16:31 in Database / Sql
* Pseudo Column
1) SYSDATE - 날짜
2) ROWNUM - 행의 순서(가상의 숫자, 따라서 where 조건을 쓸 수 없음)
3) ROWID - 모든 행에 대한 식별자의 역할
* 검색 - 오라클 명령어에서 대소문자를 가리지는 않지만, 검색시에는 구분함.
1) select
a) distinct - 중복행제거
b) * - all
c) alias - 해당 컬럼에 다른 이름 부여 : as키워드를 사용하면 명시적이고
따옴표로 묶으면, 대소문자 구분 가능
d) 컬럼값중 숫자형 데이터는 산술연산 가능
e) || - 연결연산자
f) 작은따옴표 - 컬럼에 있는 데이터는 아니지만, 따옴표사이의 내용이 모든 행에 표시된다. 연결연산자와
함께 사용하는 경우가 일반적
2) where - from 절 다음에 와야 한다.
a) and - AND 연산일 경우에는 거짓이 앞에 있는 게 좋고, OR 연산자일 경우에는 참이 앞에 있는 것이 좋다
b) or
c) between ~ and ~ - 이상, 이하의 개념임. 미만, 보다일경우는 부등호 기호 사용
d) in ( 'x', 'y', 'z' )
e) is null / not - NOT이 들어간 SQL 연산자는 사용을 하지 않는 것이 좋다. (ex. NOT IN, IS NOT NULL)
null값으로 들어간 데이터를 확인하는 용도로 쓰인다.
f) like
i) %
ii) _
iii) like 'aa\%%' escape '\'
3) order by 칼럼이름 [asc|desc]
4) group by - 테이블보다 작은 그룹으로 묶어서 값을 얻으려 할 때 사용
a) ROLLUP
b) CUBE
5) having - group by 의 수행결과에 조건을 부여해서 값을 얻으려 할 때 사용
6) grouping sets
a) UNION - 합집합
b) INTERSECT - 교집합
c) MINUS - 차집합
d) UNION ALL - 합집합+교집합
7) subquery - select 문 안에 삽입된 select 문
* SQL함수
1) 단일행함수
a) 숫자
b) 문자
c) 날짜
d) 형변환
e) 기타
2) 집합함수
3) 분석함수
4) 정규표현식
* 숫자함수
1) MOD(m, n) - m을 n으로 나누었을 때의 나머지를 반환
2) ROUND(m, n) - m을 소수점 n+1자리에서 반올림한 결과를 반환
3) WIDTH_BUCKET(대상값, 최소값, 최대값, 버켓수)
4) CEIL(n) - 올림한 후 정수를 반환
5) FLOOR(n) - 내림한 후 정수를 반환
6) ABS(n) - 절대값을 반환
7) TRUNC(m, n) - m을 n자리까지 절삭. n은 생략가능하며, 기본값은 0.
n이 양수이면, 소수자리를 절삭, n이 음수이면, 정수자리를 절삭(= 0으로 만든다)
8) POWER(m, n) - m의 n승값을 반환
9) SQRT(n) - n의 제곱근 값을 반환
10) SIGN(n) - n이 양수인지, 음수인지, 0인지를 반환
11) CHR(n) - 10진수 n의 아스키코드에 해당하는 문자를 반환
* 문자함수
1) LOWER('문자열') - 문자열을 소문자로 반환
2) UPPER('문자열') - 문자열을 대문자로 반환
3) INITCAP('문자열') - 문자열의 첫문자는 대문자로, 나머지 문자는 소문자로 반환
4) CONCAT('문자열1', '문자열2') - 두개의 문자열1과 2를 연결해서 반환. 매개변수는 2개만 가능.
5) SUBSTR('문자열', 시작위치값, 시작위치부터뽑아낼 문자열길이)
6) LENGTH('문자열') - 문자열의 길이를 숫자값으로 반환
7) INSTR('문자열', '표적문자', m, n) - 문자열중에서 표적문자를 왼쪽부터 m번째, m번째부터 n번째
의 위치를 숫자값을 반환
8) LPAD('문자열', 전체문자길이, '나머지문자값') - 전체문자길이중 문자열 길이만큼을 제외한
공간을 왼쪽부터 나머지 문자값으로 채우고, 문자열을 덧붙여서 반환
9) RPAD('문자열', 전체문자길이, '나머지문자값') - LPAD와 동일한 개념인데, 다만, 나머지 문자값을
오른쪽으로 채워서 반환
10) REPLACE('문자열', 'str1', 'str2') - 문자열중에서 str1에 해당하는 문자를 str2의 문자로 바꿔서 반환
11) ASCII('문자') - 문자의 아스키코드값을 반환
12) TRIM('타겟문자' from '문자열') - 문자열중에서 타겟문자를 삭제. 단 문자열의 바깥쪽 문자만이 해당됨.
* 날짜함수
1) MONTHS_BETWEEN(date1, date2) - 두 날짜사이의 월수를 계산해서 숫자로 반환
정수부분은 월을, 소수부분은 일을 의미함.
2) ADD_MONTHS(date1, n) - n이 양수이면, date1에 더해지고, n이 음수이면, date1에서 뺄 값이 됩니다.
3) NEXT_DAY(date1, n) - date1의 날짜를 기준으로, 다음번 n에 해당하는 요일을 반환
ex) NEXT_DAY(sysdate, 'FRIDAY') - 시스템현재날짜로부터 다가올 금요일 날짜를 반환,
NEXT_DAY(sysdate, '금요일') - 시스템이 한글로 설정되어있을 경우, 한글사용도 가능
NEXT_DAY(sysdate, 1) - 숫자1은 일요일, 숫자7은 토요일
cf) 오라클 언어세팅에 의해, 어느 한쪽의 예약어가 거부되는 경우가 있다.
확인방법 : select * from nls_session_parameters;
변경방법 : ALTER SESSION SET NLS_DATE_LANGUAGE = 'AMERICAN';
4) LAST_DAY(date1) - date1날짜가 속한 달의 마지막 날짜를 반환, 윤년,평년은 자동 계산
5) ROUND(date1, 조건) - date1의 날짜를 월단위, 년단위로 반올림처리해서 반환하고, 조건이 없으면,
가장 가까운 날짜로 반올림한다.
ex) ROUND(sysdate, 'MONTH')
ROUND(sysdate, 'YEAR')
ROUND(sysdate)
6) TRUNC(date1, 조건) - date1의 날짜를 가장 가까운 년도 또는 월로 절삭해서 반환. 조건이 없으면,
가장 가까운 날짜로 절삭
* 변환함수
1) 묵시적인 형변환
a) varchar2, char -> number
b) varchar2, char -> date
c) number -> varchar2
d) date -> varchar2
2) 명시적인 형변환
a) TO_CAHR
b) TO_NUMBER
c) TO_DATE
* 기타함수
1) NVL(컬럼명, 원하는값) - 특정컬럼의 null값을 원하는 값으로 변환
2) DECODE(조건, 값1, 처리1, 값2, 처리2, ...... , 디폴트값) - if 분기문과 같은 역할 - 오라클 함수
3) CASE - DECODE함수와 동일한 처리를 한다. 다만 DECODE함수에서 지원하지않는
범위비교가 가능하다. - 표준 SQL
4) NULLIF(m, n) - m과 n이 같으면 null값을 반환하고, 다르면, m을 반환
5) GREATEST - 나열된 값중 제일 큰 값을 반환
6) LEAST - 나열된 값중 제일 작은 값을 반환
* 집합함수 - where 절 사용시 주의
1) AVG - 여러 행으로부터 하나의 결과를 반환
ex) AVG(컬럼명)
ex) AVG(컬럼명) OVER(PARTITION BY 컬럼명)
2) COUNT
3) MAX
4) MIN
5) SUM
6) RANK - 전체값을 대상으로 각 값의 순위를 반환
ex) RANK(값) WITHIN GROUP(ORDER BY 컬럼명)
ex) RANK() OVER (ORDER BY 컬럼명)
[출처] 오라클 설치와 기초 (프로젝트 만들기) |작성자 다덤뵤
'Database / Sql' 카테고리의 다른 글
SQLiteSpy - 간편한 SQLite3 DB 관리 프로그램 (0) | 2009.03.17 |
---|---|
[Oracle] 통계 함수 (0) | 2008.10.21 |
[Oracle] 함수 모음 (0) | 2008.10.21 |
SQL의 종류 (0) | 2008.10.08 |
[Oracle] sid 확인 (0) | 2008.10.08 |