728x90
반응형
정규식(Regular Expression) 함수로 다양한 조건 조회하는데 사용된다.
사용 기호 | 의 미 | 사 용 예 |
^ (캐럿) | 해당 문자로 시작하는 line 출력 | ‘^pattern’ |
$ (달러) | 해당 문자로 끝나는 line 출력 | ‘pattern$’ |
. | S로 시작하여 E으로 끝나는 line ( . è 1 character) | ‘S . . . .E ’ |
* | 모든 이라는 뜻. 글자수가 0 일수도 있음. | ‘[a–z]*’ |
[ ] | 해당 문자에 해당하는 한 문자 | ‘[Pp]attern’ |
[ ^ ] | 해당 문자에 해당하지 않는 한 문자 | ‘[^a–m]attern’ |
-- p.80 연습문제
SELECT * FROM t_reg;
-- p.81 소문자를 포함하는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[a-z]');
-- p.81 대문자를 포함하는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[A-Z]');
-- p.82 대문자나 소문자를 포함하는 행 모두 출력
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[a-z A-Z]');
-- p.83 대문자나소문자로 시작하고 뒤에 공백 있는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[a-z] ');
-- p.83 소문자로 시작하고 가운데 공백 1칸 오고 숫자 있는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[a-z] [0-9]');
-- p.84 공백이 있는 모든 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[[:space:]]');
-- p.85 대문자가 연속적으로 2 글자 이상 있는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[A-Z]{2}');
-- p.85 대문자가 연속적으로 3 글자 이상 있는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[A-Z]{3}');
-- p.85 대문자가 연속적으로 4 글자 이상 있는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[A-Z]{4}');
-- p.86 숫자가 연속적으로 3글자 이상 오는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[0-9]{3}');
-- p.87 영어 대문자와 숫자가 연속적으로 오되 대문자가 연속적으로 3글자 있는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[A-Z][0-9]{3}');
-- p.87
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[0-9][A-Z]{3}');
-- p.87 대문자가 들어가는 모든 행 출력(1)
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[A-Z]');
-- p.87 대문자가 들어가는 모든 행 출력(2)
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[[:upper:]]');
-- p.88 첫 시작이 대문자나 소문자인 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '^[A-Za-z]');
-- p.88 첫 시작이 숫자나 대문자인 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '^[0-9A-Z]');
-- p.89 소문자나 숫자로 시작하는 모든 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '^[a-z]|^[0-9]');
/*
p.90
student 테이블에서 학생의 id 중에서 첫 글자가 M 으로 시작하고
두 번째 글자가 a 나 o 가 오는 id 를 이름과 함께 출력하기
*/
SELECT name, id
FROM student
WHERE REGEXP_LIKE(id, '^M(a|o)');
-- p.90 $ 문자를 사용하여 소문자로 끝나는 행을 출력하기(1)
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[a-zA-Z]$');
-- p.90 $ 문자를 사용하여 소문자로 끝나는 행을 출력하기(2)
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[[:alpha:]]$');
-- p.91 소문자로 시작하지 않는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '^[^a-z]');
-- p.91 숫자로 시작하지 않는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '^[^0-9]');
-- p.92 소문자나 숫자로 시작하지 않는 행
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '^[^0-9a-z]');
-- p.93 소문자로만 구성된 행 제거
SELECT * FROM t_reg
WHERE REGEXP_LIKE(text, '[^a-z]');
-- p.94 소문자가 들어 있는 모든 행 제거
SELECT * FROM t_reg
WHERE NOT REGEXP_LIKE(text, '[a-z]');
-- p.95
-- student 테이블에서 지역번호가 2 자리이고
-- 그 다음 국번이 연속적으로 4 자리가 나오는 값을 출력하기
SELECT name, tel
FROM student
WHERE REGEXP_LIKE(tel, '^[0-9]{2}\)[0-9]{4}');
-- p.96
-- student 테이블에서 학생의 id 에서 4번째 자리에 r(소문자) 이 있는 행을 출력
SELECT name, id
FROM student
WHERE REGEXP_LIKE(id, '...r.');
-- .r을 하면 2번째부터 r을 포함한 보든 문자가 보임
SELECT name, id
FROM student
WHERE REGEXP_LIKE(id, '.r');
-- .r.을 하면 2번째부터 r을 포함한 보든 문자 중 r뒤에 문자가 적어도 1개가 있어야함
SELECT name, id
FROM student
WHERE REGEXP_LIKE(id, '.r.');
728x90
반응형
'Database' 카테고리의 다른 글
[MySQL] MySQL 설치 (0) | 2022.11.22 |
---|---|
[Oracle] SQL 복수행 함수 - GROUP 함수 (0) | 2022.11.08 |
[Oracle] CASE() (0) | 2022.11.07 |
[Oracle] DECODE( ) 연습문제 (0) | 2022.11.07 |
[Oracle] DECODE( ) (0) | 2022.11.07 |
댓글