관계 연산자 : NOT, AND, OR, BETWEEN, IN
OR은 그 중에 하나만 만족해도 조회
IN은 여러개의 '=' / 지정 값 조회
AND는 모두 만족해야 조회 / 연속된 숫자 표현
SELECT * FROM NOTICE WHERE ID = 1700;
SELECT * FROM NOTICE WHERE HIT BETWEEN 0 AND 5; -- 조회수가 0~5인 데이터 조회
FROM NOTICE WHERE HIT IN (0, 5, 7); -- 조회수가 0 또는 5 또는 7인 것 조회
SELECT * FROM NOTICE WHERE HIT NOT IN (0, 5, 7); -- 지정한 값 제외하고 조회
패턴 연산자 : LIKE, %, _ : 검색을 위한 연산자
LIKE 연산자 : 대입연산자(=) 없이 기재
% 지정자 : 자리수 제한 없음
_ 연산자 : 문자의 자릿 수를 나타냄
SELECT * FROM MEMBER WHERE NAME = '김%'; -- '김%' 자체 문자열로 인식됨
SELECT * FROM MEMBER WHERE NAME LIKE '김%'; -- 김으로 시작되는 문자열 조회
SELECT * FROM MEMBER WHERE NAME NOT LIKE '김%'; -- 김으로 시작되지 않는 문자열 조회
SELECT * FROM MEMBER WHERE NAME LIKE '%김%' -- 김이 들어간 모든 문자열 조회, 김 문자 앞뒤로 여러 글자가 들어 갈 수 있음
SELECT * FROM MEMBER WHERE NAME LIKE 'A_'; -- 2자리
SELECT * FROM MEMBER WHERE PHONE LIKE '010-____-1234' -- 13자리
정규 표현식 (Regular Expression, RegExr)
정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현할 때 사용하는 형식 언어
(정규표현식 Regex Cheat Sheet 참고, 매치되는지 입력 후 검색하여 확인)
정규 표현식 문법 확인 > https://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C_%ED%91%9C%ED%98%84%EC%8B%9D
[ ] : 한 글자를 대변할 때 사용
- : 연속된 숫자에 사용
ex. 01[012]-[0-9]-[0-9] -- 해석: 01에 0또는 1또는 2 - [0~9중 한 글자] - [0~9중 한 글자]
\d : 0~9까지의 정수. 10진수
{...} : 반복횟수를 지정
ex. ab{2}c > abbc
ex. 01[012]-\d{3,4}-\d{4} -- 해석: 0~9까지의 정수가 {3자리 또는 4자리}
^ : 문자열이나 행의 처음을 의미하며, 정교하게 검색 시 사용
$ : 문자열이나 행의 끝을 의미하며, 정교하게 검색 시 사용
ex. ^01[016]-\d{3,4}-\d{4}ae$ 검색 시 결과 > 010-0000-1123ae
REGEXP_LIKE :
SELECT * FROM MEMBER WHERE REGEXP_LIKE(PHONE, '^01[016]-\d{3,4}-\d{4}$');
SELECT ID, PHONE FROM MEMBER WHERE NOT REGEXP_LIKE(PHONE, '^01[016]-\d{3,4}-\d{4}$');
'Web programming > SQL & DB' 카테고리의 다른 글
ROWNUM / OUDER BY / 순위를 반환하는 함수 ROW_NUMBER, RANK, DENSE_RANK (0) | 2020.04.13 |
---|---|
서브쿼리와 서브쿼리의 중첩 / 쿼리문 작성 및 실행 순서 (0) | 2020.04.13 |
데이터를 삽입하는 명령어 DML (0) | 2020.04.07 |
데이터를 정의하는 명령어 DDL / Character 형식 (0) | 2020.04.07 |
DB, DBMS, SQL 정의 (0) | 2020.04.06 |