BETWEEN, IN, IS NULL / IS NOT NULL, LIKE
1. BETWEEN
- BETWEEN은 SQL에서 특정 범위 내에 있는 행만 선택할 수 있는 논리 연산자
- AND 연산자와 쌍을 이루며 시작값, 끝값을 포함한다
SELECT *
FROM 테이블명
WHERE 칼럼명 BETWEEN 조건1 AND 조건2;
-- 위 내용을 아래와 같이 AND 연산자로 풀어쓰는 것 또한 가능함
SELECT *
FROM 테이블명
WHERE 칼럼명 >= 조건1 AND 칼럼명 <= 조건2;
👇 예시 코드
# 숫자 데이터
SELECT * FROM Products
WHERE CustomerId BETWEEN 10 AND 20;
# 문자열 데이터
SELECT * FROM Products
WHERE CustomerName BETWEEN 'C' AND 'M';
# 날짜 데이터
SELECT * FROM Orders
WHERE CustomerOrder BETWEEN '2019-01-01' AND '2020-01-01';
2. IN
- IN은 결과에 포함시키고자 하는 값 목록을 지정할 수 있는 SQL의 논리 연산자
- 데이터 유형에 관계없이 목록의 값은 쉼표로 구분
SELECT *
FROM 테이블명
WHERE 컬럼명 IN (값1, 값2, ...);
👇 예시 코드
SELECT *
FROM Customers
WHERE Country IN ('Korea', 'Germany', 'France');
-- 아래와 같이 OR 연산자로 풀어쓰는 것도 가능
SELECT *
FROM Customers
WHERE Country = 'Korea' OR Country = 'GERMANY' OR Country = 'France';
3. IS NULL / IS NOT NULL
- 테이블 내에 입력되지 않은 데이터는 NULL로 저장이 되며 'IS NULL'로 검색 가능
- NULL 값을 검색할 때는 = 연산자가 아니라 'IS NULL' 사용
- 반대로 NULL값이 아닌 행을 검색할 경우, 'IS NOT NULL' 사용
👇 예시 코드
# IS NULL 예제
SELECT *
FROM sample
WHERE name IS NULL;
# IS NOT NULL 예제
SELECT *
FROM sample
WHERE name IS NOT NULL;
4. LIKE
- WHERE절 안에서 문자열의 일부분을 비교하는 '부분 검색'
- 문자열 비교 연산자를 사용하는 것처럼 정확하게 일치하지 않아도 사용 가능
SELECT 열1, 열2
FROM 테이블명
WHERE 열 LIKE 패턴;
- 두 가지 와일드카드 문자 사용
- _: 한 글자만을 의미
- %: 0글자부터 그 이상을 의미
👇 예시 코드
# a로 시작하는 모든 값
WHERE 열1 LIKE 'a%'
# a로 끝나는 모든 값
WHERE 열1 LIKE '%a'
# a가 있는 모든 값
WHERE 열1 LIKE '%a%'
# 두 번째 인덱스에 a가 있는 모든 값
WHERE 열1 LIKE '_a%'
# a로 시작하고 o로 끝나는 모든 값
WHERE 열1 LIKE 'a%o'
💡 %, _ 가 들어간 단어를 찾고 싶을 땐, 이스케이프 문자 백슬래시 \ 사용
'Backend > Database' 카테고리의 다른 글
[MySQL] 숫자, 문자열을 다루는 함수 (0) | 2024.03.10 |
---|---|
[Redis] Window 환경에서 Redis 설치하기 (0) | 2024.01.12 |
[MySQL / MariaDB / SQL] 주석처리 방법 (0) | 2023.12.23 |