[TIL]
◈ SQL 강의
논리연산자 | 의미 | 예시 |
AND | 그리고 | age>20 and gender='female' 나이가 20세 이상이고, 여성 |
OR | 또는 | age>20 or gender='female' 나이가 20세 이상이거나, 여성 |
NOT | 아닌 | not gender='female' 여성이 아닌 |
[실습] 여러 조건을 적용하여 데이터 필터링하기
1. 주문(food_orders) 테이블에서 한국음식이면서, 가격이 30,000원 이상인 경우 조회
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
에러메세지에 대처하는 자세
1. 에러메세지에서 왜 에러가 났는지 확인하기
2. 자주 볼 수 있는 에러메세지
1) 테이블 명을 다르게 적었을 때
SQL Error Table 'sparta_lecture.payment' doesn't exist
(테이블이 존재하지 않는다는 메세지)
2) 컬럼 명을 다르게 적었을 때
SQL Error Unknown column 'pay_typ' in 'field list'
(필드명이 잘못 되었다는 메세지)
3) 필터링 조건을 줄 때 문자에 ' '작은 따옴표 안했을 때
SQL Error Unknown column 'Korean' in 'where clause'
(Korean에 문제가 있다는 메세지)
숙제
상품 준비시간이 20~30분 사이인, 한국음식점의 식당명과 고객번호 조회하기
#내가 풀어본 코드
SELECT restaurant_name , customer_id
FROM food_orders
WHERE cuisine_type = 'korean'
AND food_preparation_time
BETWEEN 20 AND 30
#정답
select restaurant_name, customer_id
from food_orders
where food_preparation_time between 20 and 30
and cuisine_type='Korean'
select food_preparation_time,
delivery_time,
food_preparation_time + delivery_time as total_time #사칙연산 모두 사용가능하다
from food_orders
SUM(합계)
select sum(price)
from food_orders
AVG(평균)
select avg(age)
from food_orders
COUNT(갯수 구하기)
select count(1) count_of_orders,
count(distinct customer_id) count_of_customers
from food_orders
#count 괄호 안에 컬럼을 적어도 되고 모든 데이터 갯수를 세려면 * 또는 1을 적으면 된다
#distinct는 전체 갯수가 아니라 중복을 제외한 갯수를 셀 떄 사용한다
MIN, MAX
select MIN(quantity) as min_quantity, #as는 별명 붙일 때 쓰는 것
MAX(quantity) as max_quantity
from food_orders
◈ 오늘의 퀘스트
퀘스트 1. [걷기반]이제 좀 벌었으니 flex 한 번 해볼까요?!
#products 테이블에서 제품 이름(product_name)과 가격(price)만을 선택하는 쿼리를 작성해주세요.
select product_name, price
from products
#products 테이블에서 제품 이름에 '프로'가 포함된 모든 제품을 선택하는 쿼리를 작성해주세요.
select *
from products
where product_name like '%프로%'
#products 테이블에서 제품 이름이 '갤'로 시작하는 모든 제품을 선택하는 쿼리를 작성해주세요.
select *
from products
where product_name like '갤%'
#products 테이블에서 모든 제품을 구매하기 위해 필요한 돈을 계산하는 쿼리를 작성해주세요.
select sum(price)
from products
퀘스트 2. [걷기반]상품 주문이 들어왔으니 주문을 처리해봅시다!
#orders 테이블에서 주문 수량(amount)이 2개 이상인 주문을 진행한 소비자의 ID(customer_id)만 선택하는 쿼리를 작성
select customer_id
from orders
where amount>=2
#orders 테이블에서 2023년 11월 2일 이후에 주문된 주문 수량(amount)이 2개 이상인 주문을 선택하는 쿼리를 작성
select *
from orders
where order_date>'2023-11-02'
and amount>=2
#orders 테이블에서 주문 수량이 3개 미만이면서 배송비(shipping_fee)가 15000원보다 비싼 주문을 선택하는 쿼리를 작성
select *
from orders
where amount<3 and shipping_fee>15000
#orders 테이블에서 배송비가 높은 금액 순으로 정렬하는 쿼리를 작성해주세요!
select *
from orders
order by shipping_fee desc
[오늘의 소감]
SQL강의는 문제없이 따라가고 있는데 파이썬이 큰일 났다.
이진법을 이용해서 하는 연산자가 강의를 듣고 나서도 이해 못한 부분이 있다.
아무래도 SQL 강의를 먼저 후루룩 듣고 천천히 들어야 할 것 같다.
'Today I learned' 카테고리의 다른 글
본캠프 커리큘럼 (0) | 2024.11.08 |
---|---|
2024.11.07 TIL 4(AI_9기) (3) | 2024.11.07 |
2024.11.05 TIL 2(AI_9기) (2) | 2024.11.05 |
2024.11.04 TIL 1(AI_9기) (9) | 2024.11.04 |
2024.10.31 파이썬과 파이참을 설치하다 (0) | 2024.10.31 |