1-6. 필터링을 할 때 유용한 표현 (비교 연산, BETWEEN, IN, LIKE)
비교 연산자
비교연산자의 종류
- = : 같다
- <> : 같지 않다
- > : 크다
- >= : 크거나 같다
- < : 작다
- <= 작거나 같다
age = 21
age <> 21
age < 21
age > 21
age >= 21
age <= 21
실습해 보자
cusotmers 테이블에서 age가 21보다 크거나 같은 사람들만 추려보자.
SELECT *
FROM customers c
WHERE age>=21
조금 더 심화 (BETWEEN, IN, LIKE)
- BETWEEN : A와 B 사이
- IN : '포함' 하는 조건
- LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기
실습해 보자
먼저 BETWEEN으로 customers 테이블에서 age가 21 이상 23 이하인 사람들을 추려보자.
SELECT *
FROM customers c
WHERE age BETWEEN 21 AND 23
그다음은 IN을 실습해 보자. 똑같은 테이블에서 age가 21살, 25살, 27살인 사람들을 추려보자.
SELECT *
FROM customers c
WHERE age IN (21, 25, 27)
IN에는 문자열도 들어갈 수 있다. 만약 윤주아라는 사람과 정도호라는 사람을 뽑으려면 아래와 같이 하면 된다.
SELECT*
FROM customers
WHERE name IN ('윤주아', '정도호')
마지막 LIKE를 실습해 보자. 똑같은 테이블에서 이름에 '김'이 들어간 사람들만 추려보자.
SELECT *
FROM customers c
WHERE name LIKE '김%'
LIKE의 문법
- 특정한 문자로 시작하는 경우
- 기본 문법: LIKE '시작문자%'
- 특정한 문자를 포함하는 경우
- 기본 문법: LIKE '%포함문자%'
- 특정한 문자로 끝나는 경우
- 기본 문법: LIKE '%시작문자'
실습
1. 고객 테이블에서 나이가 40세 이상인 고객 조회하기.
2. 주문 테이블에서 주문 금액이 15,000원 미만인 고객 조회하기
3. 주문 테이블에서 주문 금액이 20,000 ~ 30,000원 사이인 고객 조회하기
4. 주문 테이블에서 B로 시작하는 상점의 주문 조회하기
실습1. 코드 및 결과
SELECT *
FROM customers
WHERE age >= 40
실습 2. 코드 및 결과
SELECT *
FROM food_orders fo
WHERE price < 15000
실습 3. 코드 및 결과
SELECT *
FROM food_orders fo
WHERE price BETWEEN 20000 AND 30000
실습 4. 코드 및 결과
SELECT *
FROM food_orders fo
WHERE restaurant_name LIKE 'B%'
1-7. 여러 개의 조건으로 필터링하기
미리 맛보기
우리가 필터링할 때 조건이 여러 개가 있을 수 있다. 예를 들어 남성이면서 나이가 20살 이상인 경우, 이 경우에 AND 키워드를 사용해서 조건을 합칠 수 있다.
SELECT *
FROM customers
WHERE age>=20 AND gener='male'
종류
AND, OR, NOT이 있다.
- AND : 그리고 // 나이가 20세 이상이고, 여성
- OR: 또는 // 나이가 20세 이상이거나, 여성
- NOT: 아닌 // 여성이 아닌
WHERE age >= 20 AND gender='female'
WHERE age>= 20 OR gender='female'
WHERE NOT gender='female'
실습
1. 주문 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회
2. 결제 테이블에서 카드로 결제했거나, vat율이 0.2 이하인 경우 조회
실습1. 코드 및 결과
SELECT *
FROM food_orders fo
WHERE cuisine_type = 'Korean' AND price >= 30000
실습 2. 코드 및 결과
SELECT *
FROM payments p
WHERE pay_type ='card' OR vat <= 0.2
1-8. 에러메시지에 당황하지 않고 스스로 문제 해결해 보기
일반적인 SQL 에러문은 아래와 같이 나온다.
에러가 났을 때 에러코드를 보면서 확인해 보자.
1주차 끝 / 숙제
SQL 간단한 문법을 배웠는데 재밌는거 같다. 물론 복잡해지면 힘들겠지만..
숙제
숙제의 조건은 간단했다.
1. 상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기
SELECT restaurant_name, customer_id
FROM food_orders fo
WHERE food_preparation_time BETWEEN 20 AND 30 AND cuisine_type = 'Korean'
'부트캠프 > DB' 카테고리의 다른 글
부트캠프 SQL 강의 6일차 (0) | 2024.07.05 |
---|---|
부트캠프 SQL 강의 5일차 (0) | 2024.07.04 |
부트캠프 SQL 강의 4일차 (0) | 2024.07.03 |
부트캠프 SQL 강의 3일차 (0) | 2024.07.01 |
부트캠프 SQL 강의 1일차 (0) | 2024.06.26 |