#정규식 함수
^ | 시작문자 | ^A(=A%) : A로 시작 |
$ | 끝문자 | A$(=%a) : A로 끝남 |
. | 임의의 문자(모든 문자) | |
* | 여러문자, 0문자 | [A-Z]* : 대문자 알파벳이 여러개 존재하거나 없다 |
+ | 한 글자 이상 | |
[] | 해당 문자 | [AB] : A or b [가-힣] : 한글 전체 [A-Za-z] : 알파벳 전체 |
[^] | 제외 | [^A] : A를 제외 |
#그룹함수(=집합함수, 복수행함수)
:컬럼명이나 단일행함수를 같이 사용하면 안됨. 단, GROUP BY를 이용하면 사용 가능
COUNT(*) : NULL값 포함 →Java에서 반드시 이걸로 사용 COUNT(컬럼명) : NULL값 제외 |
로그인, ID 중복체크 →HTML 활용 실습 참고 SELECT deptno, job, COUNT(*) FROM emp GROUP BY (deptno, job) ORDER BY deptno ASC; →deptno로 그룹 나누고 그 안에서 job으로 다시 나눔 |
MAX : 최대값 | 자동 증가번호 부여 INSERT INTO emp(empno,ename) VALUES((SELECT MAX(empno)+1 FROM emp),'홍길동'); →emp파일에 empno, ename값을 넣는데, 각각에 '기존 empno중 가장 큰 값에 1을 더한 값'과 '홍길동'을 넣어라 |
MIN : 최소값 | SELECT MIN(sal), ROUND(AVG(sal),2), SUM(sal) FROM emp; +)표준편차, 분산: SELECT STDDEV(sal),VARIANCE(sal) FROM emp; |
AVG : 평균 | |
SUM : 합 | |
ROLLUP : ROW 계산 | SELECT deptno, job, COUNT(*), ROUND(AVG(sal),2) FROM emp GROUP BY ROLLUP(deptno,job); |
CUBE : ROW 계산후 나온 COLUMN값까지 계산 |
SELECT deptno, job, COUNT(*), ROUND(AVG(sal),2) FROM emp GROUP BY CUBE(deptno,job); → ROLLUP+전체통계([그림] 참고) |
RANK() OVER (ORDER BY 컬럼명 ASC | DESC) : 공동순위 처리, DENSE_RANK() OVER : 공동순위 무시 |
SELECT ename,sal,RANK() OVER(ORDER BY sal) AS rank FROM emp; → 1등 1등 3등 순 SELECT ename,sal,DENSE_RANK() OVER(ORDER BY sal DESC) as rank FROM emp; → 1등 1등 2등 순 |
REGEXP_LIKE : 찾을 단어가 여러 개일 때 |
검색 SELECT ename FROM emp WHERE REGEXP_LIKE(ename,'A|B|C'); =SELECT ename FROM emp WHERE ename LIKE '%A%' OR ename LIKE '%B%' OR ename LIKE '%C%'; |
'SQL(Oracle) > Oracle 이론 정리' 카테고리의 다른 글
[Oracle] SEQUENCE (0) | 2020.08.24 |
---|---|
[Oracle] JOIN (0) | 2020.08.12 |
[Oracle] 단일행 함수 (1) | 2020.08.06 |
[Oracle] SELECT / WHERE / GROUP BY / HAVING / ORDER BY (0) | 2020.08.05 |
[Oracle] 연산자 / 집합연산자 (0) | 2020.08.05 |
댓글