일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- coding language
- 랜덤 닉네임 생성기
- 간단한 검색
- left()
- java의 작동방식
- java
- dbms
- column
- sql
- 데이터베이스
- right()
- dbeaver
- db
- 자바
- 자바트랙
- 조건식 여러개
- where 조건식
- 언어알기
- 스프링 트랙
- 리스트자료형
- import.java.util.random
- sql 사칙연산
- java가 중요한 이유
- like %
- Table
- java알기
- 대문자 자동변환
- mysql
- TIL
- database
- Today
- Total
수수한 코딩세상
[DB] WHERE 뒤에 조건식 여러개 사용하기 본문
<개발 도구>
DBMS : MySQL
Editor : DBeaver
데이터를 필터링할 때 사용하는 WHERE 문 뒤에는 조건식이 오게 됩니다. 조건식 1개만 사용하여 원하는 데이터를 추출할 수 있다면 좋지만, 일반적으로 조건식을 여러 개 사용해야 원하는 데이터를 추출할 수 있는 상황들이 더 많습니다.
WHERE 문 뒤에 조건식을 여러개 사용하는 장법에 대해 정리해 보겠습니다.
조건식 여러개 사용하기 (AND / OR)
▶ AND 연산자 사용
SELECT * FROM 테이블명 WHERE 가격=5000 AND 카테고리 = '가구';
AND : 왼쪽 조건식과 오른쪽 조건식이 동시에 맞는 데이터 출력
코드를 예시로 들면 가격이 5000원이면서 카테고리가 가구인 상품 데이터를 추출해 낼 수 있습니다.
▶ OR 연산자 사용
SELECT * FROM 테이블명 WHERE 가격=5000 OR 카테고리 = '가구';
OR : 왼쪽 조건식과 오른쪽 조건식 중 적어도 하나가 맞는 데이터 출력
코드를 예시로 들면 가격이 5000원 이거나 카테고리가 가구인 상품 데이터를 추출해 낼 수 있습니다.
AND와 OR 연산자를 사용해서 조건식을 2개, 3개 필요한 만큼 논리적으로 서술하여 사용할 수 있습니다.
▶ 조건식에 괄호 사용
//ex) 카테고리가 가구거나 옷인데 옷의 가격이 5000원인것
SELECT * FROM 테이블명
WHERE 카테고리 = '가구' OR (카테고리 = '옷' AND 가격 = 5000);
//(괄호)안에 있는것 먼저 연산해줌
SELECT * FROM 테이블명
WHERE (카테고리 = '가구' OR 카테고리 = '옷') AND 가격 =5000;
(괄호)를 사용하면 괄호 안에 있는 것을 먼저 연산해 주게 됩니다. 이를 이용하여 우선순위 연산을 선정하여 조건식을 정리할 수 있습니다.
NOT 연산자
▶ NOT 연산자
SELECT * FROM 테이블명 WHERE NOT 가격 = 5000;
//NOT과 같은 연산기호
SELECT * FROM 테이블명 WHERE 가격 != 5000;
NOT : 수학적으로 역을 뜻함/조건식에 포함되지 않는 제외된 데이터를 출력함
코드를 예시로 들면 가격이 5000원이 아닌 모든 데이터를 출력합니다.
▶ 조건식 여러개에 NOT 연산자 사용
//ex) 카테고리가 가구가 아니고 가격이 5000원이 아닌 상품 출력
SELECT * FROM 테이블명
WHERE NOT 카테고리 ='가구' AND NOT 가격 = 5000;
//같은 코드 (연산자만 다르게 사용)
SELECT * FROM 테이블명
WHERE 카테고리 !='가구' AND 가격 != 5000;
IN 연산자 사용해서 OR 묶기
▶ IN 연산자 사용해서 OR 묶기
ex) 카테고리가 '신발','가전','식품'인 상품 출력
SELECT * FROM 테이블명
WHERE 카테고리 ='신발' OR 카테고리 ='가전' OR 카테고리='식품';
//위처럼 조건항목이 많아지면 가독성이 떨어져서 IN이라는 연산자를 쓸 수 있다(OR연산자로 묶이는 것에만 사용 가능)
SELECT * FROM 테이블명
WHERE 컬럼명 IN (값, 값, 값);
//IN 연산자는 컬럼을 하나만 작성할 수 있기 때문에 하나의 컬럼에서 다양한 조건으로 필터링 할때 유용하게 사용함
//IN 연산자가 처리속도가 빠름
SELECT * FROM 테이블명
WHERE 카테고리 IN ('신발', '가전', '식품');
이상 WHERE 문 뒤에 조건식을 여러 개 사용하는 방법과 유용한 연산자에 대해 학습한 것을 정리해 보았습니다.
Reference
해당 글은 애플코딩님의 강의를 보고 정리한 내용입니다.
https://codingapple.com/course/sql-and-database/
한 번에 끝내는 SQL & Database - 코딩애플 온라인 강좌
SQL은 관계형 데이터베이스에서 데이터를 입출력할 때 사용하는 언어입니다. 관계형 데이터베이스를 다루는 곳에서 백엔드 개발 잘하고 싶다면 SQL을 잘 알아두도록 합시다. 실은 SQL을 개발자
codingapple.com