초보 프로그램 개발자

[ 7주차 ] Oracle 데이터베이스 (정규화표현식, DUAL) 본문

교육 일지/Database

[ 7주차 ] Oracle 데이터베이스 (정규화표현식, DUAL)

Ji_HG 2023. 6. 13. 19:02
정규화표현식 사용
  • 문자열의 일정한 패턴을 표현하는 일종의 형식 언어
  • 정규식이라고도 부르며 보통 RegEx 혹은 RegExp라고 쓴다
  • 위의 내용은 나무위키에서 가져옴
  • LIKE를 사용하여 정규화표현식을 사용

정규화 표현식을 사용하여 DB의 데이터를 출력하는방법을 배웠다.

-- 이름이 a로 시작되는 사원
SELECT * FROM EMP WHERE ENAME = 'A%'; -- A%를 넣게되면 진짜 A%를 찾게됨
SELECT * FROM EMP WHERE ENAME LIKE 'A%'; -- %는 정규화표현식이기 때문에 LIKE 써줘야함

SELECT * FROM EMP
WHERE EMPNO LIKE '111%'; -- 자릿수가 4자리 이상이면서 앞에는 반드시 111이 나와야함

SELECT * FROM EMP
WHERE EMPNO LIKE '111_'; -- 무조건 4자리이면서 앞에는 111

SELECT * FROM EMP
WHERE EMPNO LIKE '1__1%'; -- 가운데 두자리만 다르고 첫번째 마지막은 1 1

-- 90년도
SELECT * FROM EMP
WHERE SYSDATE LIKE '90%';

SELECT * FROM EMP
WHERE SYSDATE LIKE '9%';

-- 정규화 표현식을 쓰는법
SELECT * FROM EMP
WHERE REGEXP_LIKE(EMPNO,'11[^2]');

SELECT * FROM EMP
WHERE REGEXP_LIKE(EMPNO,'11[1,2]');

-- 이메일 추출하기 
-- DUAL 은 임의의 데이터를 작성할때 사용
SELECT REGEXP_SUBSTR('GILDONG@NAVER.COM', '[^@]+') 아이디 FROM DUAL;

 

DUAL

DUAL은 가상의 테이블을 만들어 출력시켜 줄 수 있다.

SELECT * FROM DUAL;
SELECT ROUND(45.275,1) FROM DUAL; -- ROUND는 반올림함수

존재하지 않는 테이블이지만 값을 출력해준다.