오라클에서 문자열에 특수문자가 포함되었는지 검색하기 위해서는 정규식 함수를 사용하면 된다. 오라클 10g부터 정규식 함수를 사용할 수 있으며, [:punct:] 문자 클래스를 사용하면 특수문자를 쉽게 찾을 수 있다. 그 외에도 찾고 싶은 특수문자를 직접 지정하여 검색할 수 있으며, 특수문자가 몇 개 포함되었는지도 확인할 수 있다. 목차 특수문자 포함여부 체크 (공백 제외) 특수문자 포함여부 체크 (공백 포함) 숫자, 소문자, 대문자, 한글을 제외한 문자 체크 지정한 특수문자가 포함되었는지 체크 특수문자 체크 및 개수 세기 (REGEXP_COUNT 함수) 특수문자 체크 및 위치 찾기 (REGEXP_INSTR 함수) 특수문자 포함여부 체크 (공백 제외) WITH temp AS ( SELECT 'abc,ABC..
오라클에서 문자열의 뒤에서부터 특정 문자열을 찾기 위해서는 INSTR 함수를 사용하면 된다. INSTR 함수의 기본 설정은 앞에서부터 문자열을 찾지만, 함수의 마지막 인자에 "-1"을 부여하면 문자열을 뒤에서부터 찾는다. 아래의 예제 쿼리문을 확인하면 아주 쉽게 이해할 수 있을 것이다. 기본 사용법 SELECT INSTR('Oracle, MySQL, SQL Server', 'SQL', -1) AS result FROM dual INSTR("대상 문자열", "찾을 문자열", -1) 함수의 마지막 인자에 "-1"을 부여하면 대상 문자열의 뒤에서부터 검색하며, 첫 번째로 찾은 문자열의 시작 위치를 반환한다. 대상 문자열에 찾을 문자열 "SQL"이 두 번 반복되지만, 뒤에서부터 찾은 문자열의 위치를 반환한다. ..
오라클에서 CROSS JOIN은 교차 조인이라고 하며, 두 테이블의 모든 행이 각각 한 번씩 조인되어 모든 경우의 수를 조합한 조인 데이터가 출력된다. CROSS JOIN은 카테시안 곱 또는 카테시안 조인이라고 부르기도 한다. CROSS JOIN은 ANSI JOIN 문법이며 오라클 방식의 교차 조인과 비교는 하단의 링크를 참고하면 된다. CROSS JOIN - 기본 사용법 SELECT a.empno , a.ename , a.job , b.deptno , b.dname FROM emp a CROSS JOIN dept b CROSS JOIN은 별도의 조인 칼럼이 없고, 두 테이블의 모든 행이 서로 한 번씩 조인된다고 생각하면 된다. 하나의 행을 여러 행으로 만들고 싶을 때 사용할 수 있다. emp 테이블(4..
오라클에서 FULL OUTER JOIN은 LEFT OUTER JOIN과 RIGHT OUTER JOIN을 합쳐진 조인 방법이라고 생각하면 된다. FULL OUTER JOIN은 ANSI JOIN 문법이며 오라클 10g 이상에서 사용할 수 있다. FULL OUTER JOIN은 자주 사용하는 조인 방법은 아니지만 개념을 이해하고 있으면 많은 도움이 될 수 있을 것이다. FULL OUTER JOIN - 기본 사용법 SELECT a.empno , a.ename , a.job , b.deptno , b.dname FROM emp a FULL OUTER JOIN dept b ON a.deptno = b.deptno 두 개의 테이블이 조인이 되면 조인된 데이터는 한 행으로 출력하고, 각 테이블에서 조인되지 않은 데이터는..
오라클에서 RIGHT OUTER JOIN은 아우터 조인(외부조인)에서 사용하는 방법 중 하나이다. RIGHT OUTER JOIN은 OUTER 키워드를 생략하고 RIGHT JOIN으로 사용하기도 한다. RIGHT OUTER JOIN은 ANSI JOIN 문법이며 오라클 10g 이상에서 사용할 수 있다. 일반적인 오라클 조인과 ANSI JOIN의 비교는 하단의 링크를 참고하면 된다. RIGHT OUTER JOIN을 학습하기 전에 LEFT OUTER JOIN을 먼저 학습하면 이해하기 쉬울 것이다. 목차 RIGHT OUTER JOIN - 기본 사용법 RIGHT OUTER JOIN - 조인 칼럼이 여러 개인 경우 RIGHT OUTER JOIN - 조인 테이블이 여러 개인 경우 ※ 예제의 emp 테이블은 설명을 위해..
오라클에서 LEFT OUTER JOIN은 아우터 조인(외부조인)에서 가장 많이 사용하는 방법 중 하나이다. LEFT OUTER JOIN은 OUTER 키워드를 생략하고 LEFT JOIN으로 사용하기도 한다. 아우터 조인은 조인할 테이블에 데이터가 없어도 기준 테이블의 데이터는 모두 출력되는 조인 방법이다. LEFT OUTER JOIN은 ANSI JOIN 문법이며 오라클 10g 이상에서 사용할 수 있다. 일반적인 오라클 조인과 ANSI JOIN의 비교는 하단의 링크를 참고하면 된다. 목차 LEFT OUTER JOIN - 기본 사용법 LEFT OUTER JOIN - 조인 칼럼이 여러 개인 경우 LEFT OUTER JOIN - 조인 테이블이 여러 개인 경우 ※ 예제의 emp 테이블은 설명을 위해 인위적으로 만든..
오라클에서 INNER JOIN은 일반적으로 부르는 조인을 의미한다. INNER JOIN은 ANSI JOIN 문법이며 대부분의 데이터베이스에서 동일하게 사용할 수 있는 쿼리문이다. ANSI JOIN은 오라클 10g부터 사용할 수 있으며, 일반적인 오라클 조인과 ANSI JOIN 비교는 하단의 링크를 참고하면 된다. 목차 INNER JOIN - 기본 사용법 INNER JOIN - 조인 칼럼이 여러 개인 경우 INNER JOIN - 조인 테이블이 여러 개인 경우 ※ 예제의 emp 테이블은 설명을 위해 인위적으로 만든 테이블이며 하단의 첨부파일을 참고하면 된다. INNER JOIN - 기본 사용법 SELECT a.empno , a.ename , a.job , a.deptno , b.dname FROM emp a..
오라클에서 수치값이 NULL인 경우 0으로 처리하여 표시하기 위해서는 NVL 함수를 사용하면 된다. 그리고 SUM 함수를 사용하여 합산할 때 결과가 NULL인 경우 0으로 표시할 때도 NVL 함수를 사용할 수 있다. 집계함수(SUM, AVG, MIN, MAX 등)는 연산할 칼럼의 값이 NULL인 경우 해당 행은 제외하고 처리를 하기 때문에 필요할 경우 꼭 NVL 함수로 치환 후 연산을 해야 한다. NULL이면 0 처리 방법 SELECT NULL , NVL(NULL, 0) --NULL을 0으로 치환 FROM dual NVL 함수를 사용하여 NULL을 0으로 치환할 수 있다. SELECT empno , ename , comm , NVL(comm, 0) AS nvl_comm FROM emp WHERE job ..
오라클에서 하루 전 날짜, 내일 날짜를 구하기 위해서는 날짜에서 원하는 일수만큼 정수를 빼거나 더하면 된다. 다른 데이터베이스에서는 DATEADD 함수를 사용하기도 하지만 오라클에는 별도의 함수는 없다. SYSDATE에서 -2, -1, +1, +2 등으로 연산을 하면 오늘의 기준으로 원하는 날짜를 쉽게 구할 수 있다. 하루 전 날짜 구하는 방법 SELECT TRUNC(SYSDATE) - 1 --어제(하루전) , TRUNC(SYSDATE) --오늘 , TRUNC(SYSDATE) + 1 --내일 FROM dual SYSDATE 기준으로 어제 날짜, 내일 날짜를 구할 수 있다. 날짜가 문자열인 경우 날짜 형식으로 변환 후 연산 SELECT TO_DATE('20230226', 'YYYYMMDD') , TO_DA..
오라클에서 수치값의 양수, 음수 부호를 판단하기 위해서는 SIGN 함수를 사용한다. 양수면 1, 음수면 -1, 0이면 0을 반환한다. 숫자의 플러스, 마이너스 부호를 판단하여 WHERE 절에서 조건절에 사용할 수 있으며 CASE, DECODE 함수를 사용할 때도 조건으로 사용할 수 있다. SIGN 함수 기본 사용법 SELECT SIGN(10) --양수(1) , SIGN(-10) --음수(-1) FROM dual 함수 사용법: SIGN( 숫자 ) 양수면 1, 음수면 -1을 반환한다. SELECT SIGN(10) , SIGN(-10) , SIGN(0) , SIGN(NULL) FROM dual 0이면 0, NULL이면 NULL을 반환한다. 입력된 값이 문자열이면 오류가 발생하므로 주의해야 한다. SIGN 함수..