이 블로그를 학습 하시기 전에 https://kiseokkm.tistory.com/36 먼저 보고 오시면 좋습니다.
[블로그 학습 목표]
• SQL에서 비교 연산자를 사용하여 데이터를 필터링하는 방법을 이해
• BETWEEN, IN, LIKE 등의 조건을 이용하여 다양한 필터링 조건을 적용하는 방법
• WHERE 절에 여러 조건을 적용하여 논리연산을 활용하는 방법
• SQL 쿼리 작성 시 발생할 수 있는 에러 메시지를 읽고 해결하는 능력
필터링을 할 때 유용한 표현 알아보기 (비교연산, BETWEEN, IN, LIKE)
✔️ 필터링 조건을 다양하게 지정하는 방법을 한번 보자
▼ 1) 같음, 큼, 작음 등의 조건을 지정해보기
• 필터링은 같다 (=) 조건을 포함하여, 크다 (>), 작다 (<) 등을 모두 사용할 수 있다
• 비교연산자의 종류
비교연산자 | 의미 | 예시 |
= | 같다 | age=21 gender='female' |
< > | 같지 않다 (다르다) | age< >21 gender< >'female' |
> | 크다 | age>21 |
>= | 크거나 같다 | age>=21 |
< | 작다 | age<21 |
<= | 작거나 같다 | age<=21 |
ex ) 비교연산자를 이용하여 ‘나이가 21세 미만인’ 고객을 조회한 예시
select *
from customers
where age<21
▼ 2) 다양한 조건의 종류 (BETWEEN, IN, LIKE)
SQL 문법은 비교연산자와 더불어 다양한 조건의 필터를 제공합니다.
BETWEEM : A 와 B 사이
• 기본 문법 : between a and b
• 예시 : 나이가 10 과 20 사이
where age between 10 and 20
IN : ‘포함’ 하는 조건 주기
• 기본 문법 : in (A, B, C)
• 예시1 : 나이가 15, 21, 31 세인 경우
age in (15, 21, 31)
• 예시2 : 음식 종류가 한식, 일식인 경우
cuisine_type in ('Korean', 'Japanese')
LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
○ 특정한 문자로 시작하는 경우
• 기본 문법 : like ‘시작문자%’
• 예시 : ‘김’ 으로 시작하는 이름
name like '김%'
○ 특정한 문자를 포함하는 경우
• 기본 문법 : like ‘%포함문자%’
• 예시 : 식당 이름에 ‘Next’ 를 포함하는 경우
restaurant_name like '%Next%'
○ 특정한 문자로 끝나는 경우
• 기본 문법 : like ‘%시작문자’
• 예시 : ‘임’ 으로 끝나는 이름
name like '%임'
[실습] WHERE 절에 비교 연산자 적용하기
1.고객 (customers) 테이블에서 나이가 40세 이상인 고객 조회하기
1.1 기본구조를 적어줍니다
select
from
where
1.2 데이터를 가져올 테이블을 적어줍니다
select *
from customers
where
1.3 나이 40세 이상 조건을 지정해줍니다
select *
from customers
where age>=40
1.4 실행 결과
2.주문 (food_orders) 테이블에서 주문 금액이 15,000원 미만인 고객 조회하기
2.1~2.3 적용!
select *
from food_orders
where price<15000
2.4 실행 결과
[실습] WHERE 절에 다양한 조건을 적용하기
1.주문 (food_orders) 테이블에서 주문 금액이 20,000~30,000원 사이인 고객 조회하기
select *
from food_orders
where price between 20000 and 30000
2. 주문 (food_orders) 테이블에서 B 로 시작하는 상점의 주문 조회하기
select *
from food_orders
where restaurant_name like 'B%'
여러 개의 조건으로 필터링하기 (논리연산)
✔️ 여러개의 필터링 조건을 한 번에 적용하는 방법을 알아보자
WHERE 절에 여러 조건을 적용하기
• 지금까지 배운 필터링 조건 여러개를 하나의 쿼리문에서 적용 가능
• ex) ‘나이가 20세 이상인’, ‘여성 고객’ 두가지 조건 적용
• 여러개의 조건을 적용할 때 사용되는 연산이 ‘논리연산’
• 논리연산의 종류
논리연산자 | 의미 | 예시 |
AND | 그리고 | age>20 and gender=’female’ → 나이가 20세 이상이고, 여성 |
OR | 또느 | age>20 or gender=’female’ → 나이가 20세 이상이거나, 여성 |
NOT | 아닌 | not gender=’female’ → 여성이 아닌 |
여러 조건을 적용하여 데이터 필터링 해보자
1. 주문 (food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회
1.1 기본구조를 적어주기
select
from
where
1.2 데이터를 가져올 테이블 적어주기
select *
from food_orders
where
1.3 한국음식이면서, 가격이 30000원 이상인 조건 지정
select *
from food_orders
where cuisine_type='Korean' and price>=30000
2.결제 (payments) 테이블에서 카드로 결제했거나, vat 율이 0.2 이하인 경우 조회
select *
from payments
where pay_type='card' or vat<=0.2
에러메세지에 당황하지 않고 스스로 문제 해결하기
✔️ Query 문을 실행했는데 에러메세지가 떴어요!! 당황하지 않고 대처하는 방법을 알아보자
☝ 에러메세지에서 확인 할 부분은 ‘에러코드’ 가 아닌 ‘왜 에러가 났는가’ 부분!!
일반적인 SQL의 에러문은 아래와 같이 나온다
에러코드 다음에 나오는 문장을 보면, 친절하게 에러가 난 이유를 설명해주는 것을 볼 수 있다
에러 코드를 보고 놀라거나, 포기하지 마시고! 침착하게 ‘에러가 난 이유’ 를 확인!!
자주 만날 수 있는 에러메세지
⚠️ 테이블 명을 다르게 적었을 때 → 테이블이 존재하지 않는다는 메시지
⚠️ 컬럼 명을 다르게 적었을 때 → 필드명이 잘못 되었다는 메시지
⚠️ 필터링 조건을 줄 때 문자에 ‘ ‘ 작은 따옴표를 안했을 때 → Korea 에 문제가 있다는 메시지
🔥 이 외에도 여러 경우가 있지만, 중요한 것은 ‘에러 메시지를 읽어보는 것!!
'DB' 카테고리의 다른 글
[SQL] 기초 문법 및 기본 개념 - SELECT , FROM, WHERE [1] (0) | 2024.05.08 |
---|