개발 블로그
[데이터베이스]WHERE 조건절/LIKE 본문
WHERE과 조건식을 이용해 조건에 맞는 데이터를 필터링하여 결과를 가져오는 방법에 대해 알아보자.
조건절(WHERE)
특정 데이터들을 추출하여 사용하기 위해선 WHERE과 조건식을 사용해 필터링 한다.
MEMBER 테이블
SELECT * FROM MEMBER WHERE M_ID=4;
조건식의 결과가 true인 행들만 필터링해 가져온다.
위의 식은 M_ID가 4인 행들만 가져온다.
조건식에 여러 연산자가 사용된다.
=, <, >, !=, NOT, <> 등등
(<>는 != 와 동일)
범위를 기준으로 행을 찾을 수도 있다.
SELECT * FROM MEMBER
WHERE M_CREATED_DATETIME BETWEEN '2030-02-02 00:00' AND '2030-02-03 00:00';
위의 질의는 날짜가 2030/2/2과 2030/2/3 사이에 있는 행들을 가져온다.
BETWEEN a AND b
NULL 값을 기준으로 찾을 수도 있다.
SELECT * FROM BOARD
WHERE BO_MODIFIED_DATETIME IS NULL
이것은 BO_MODIFIED_DATETIME이 null 값인 행을 찾는다는 것을 의미한다.
SELECT * FROM BOARD
WHERE BO_MODIFIED_DATETIME IS NOT NULL
이것은 BO_MODIFIED_DATETIME이 null 값을 가지지 않는 행을 찾는 방법이다.
특정 패턴에 일치하는 데이터 필터링하는 법
LIKE으로 정확한 값으로 데이터를 찾는 게 아니라, 특정한 패턴을 가진 데이터를 필터링 할 수 있다.
SELECT 칼럼, … FROM 테이블 이름 WHERE 칼럼 LIKE 패턴;
위의 MEMBER 테이블에서 만약 성이 '김'씨인 회원을 찾고 싶다면 아래와 같이 작성하면 된다.
SELECT * FROM MEMBER WHERE M_NAME LIKE '김%'
이때 %를 와일드 카드라고 하는데,
% 와일드 카드: 모든 문자, 문자열, 아무것도 없는('') 것을 의미
_ 와일드 카드: 하나의 문자 의미
예시로 연필_% 이면 연필이 좋아요, 연필이 자꾸 사라져요 등등이 있다.
두 개 이상의 조건을 결합해 찾는 방법
a AND b: a와 b가 모드 true인 행을 찾아 반환한다
SELECT * FROM MEMBER
WHERE M_NAME LIKE '김%' AND M_GENDER='male';
'김'씨 성을 가지고 남성인 회원을 찾는 구문이다.
a OR b: a나 b를 만족하는 행을 찾아 반환한다.
SELECT * FROM FRUIT
WHERE FT_COLOR = '빨강' OR FT_COLOR = '주황' OR FT_COLOR = '보라';
이는 FT_COLOR가 빨강 또는 주황 또는 보라색인 과일을 찾는 구문이다.
OR과 동일한 기능으로 IN이 있다.
SELECT * FROM FRUIT
WHERE FT_COLOR IN ('빨강', '주황', '보라');
위의 구문도 OR과 동일하게 기능한다.
NOT
SELECT * FROM MEMBER
WHERE NOT (M_NAME LIKE '김%' AND M_GENDER = 'male');
김씨 성을 가지고 남성이 아닌 회원을 찾는 구문이다.
'전공 공부 > 데이터베이스' 카테고리의 다른 글
[데이터베이스]JOIN (0) | 2022.12.10 |
---|---|
[데이터베이스]집계함수란?/데이터 그룹화 (0) | 2022.12.09 |
[데이터베이스]SELECT 구문으로 데이터 검색하기 (0) | 2022.12.08 |
[데이터베이스] 데이터의 삽입, 수정, 삭제 (0) | 2022.12.04 |
[데이터베이스] (0) | 2022.12.03 |