오늘은 SQL WHERE 절에서 여러 조건을 동시에 적용하는 방법과, 자주 만날 에러메세지를 어떻게 해결하는지, 그리고 데이터를 요약할 때 활용할 수 있는 함수들에 대해 배울 수 있었다. 앞에서는 단일 조건으로만 데이터를 걸러냈는데, 실제로는 여러 조건을 동시에 적용하고 계산을 하는 경우가 훨씬 많다. 이럴 때는 활용할 수 있는 논리 연산자(AND, OR, NOT)와 집계 함수(SUM, AVG, COUNT, MIN, MAX)를 활용하면 된다.
WHERE 절에 여러 조건 적용하기
1) AND
조건을 모두 만족해야 할 때 사용한다.
예를 들어 나이가 20살 이상이고 성별이 여성인 고객만 뽑고 싶다면 이렇게 작성한다:
select *
from customers
where age >= 20
and gender = 'female'
2) OR
조건 중 하나만 만족해도 데이터를 조회해야 할 때 사용한다.
예를 들어 결제 수단이 카드이거나, 부가세가 0.2 이하인 데이터를 보고 싶다면 이렇게 작성한다:
select *
from payments
where pay_type = 'card'
or vat <= 0.2
3) NOT
특정 조건을 제외하고 싶을 때 사용한다.
예를들어 성별이 여성이 아닌 데이터만 보고 싶다면:
select *
from customers
where not gender = 'female'
에러메세지 해결해보기
에러가 났다면 당황하지 말고 왜 에러가 났는지 에러메세지를 확인해야한다. 에러문에는 에러가 난 이유까지 설명을 해주기 때문이다. 사소한 오타로도 에러가 자주나니 코딩 시 유의가 필요할 것 같다.
자주 볼 수 있는 에러메세지를 정리해보면:
1) 테이블 명을 잘못 입력했을 경우
-> 테이블이 존재하지 않는다는 메세지가 나온다.
select *
from food_oder /*원래 테이블명: food_orders*/

2) 컬럼 명을 다르게 입력했을 경우
-> 필드명이 잘못 되었다는 메세지가 나온다.
select oder_id /*원래 컬럼명: order_id*/
from food_orders

3) 필터링 조건을 줄 때 문자에 ' ' 작은 따옴표를 안 했을 때
-> 조건에 문제가 있다는 메세지가 나온다.
select *
from food_orders
where price like 2% /*like 다음 조건에 '2%' 작은 따옴표 필요*/

SQL로 계산하기 - SUM, AVERAGE, COUNT, MIN, MAX
1) SUM: 합계를 구하는 함수
select sum(food_preparation_time) as total_food_preparation_time
from food_orders
2) AGE: 평균을 구하는 함수
select avg(delivery_time) as avg_food_delivery_time
from food_orders
3) COUNT: 개수를 세는 함수
COUNT는 테이블 내 행(row) 개수나 특정 컬럼의 데이터를 세는 데 사용한다.
- count(1) 또는 count(*) → 전체 데이터 개수
- count(distinct 컬럼) → 해당 컬럼의 중복을 제외한 고유값 개수
# 전체 주문 개수
select count(1) as total_count
from payments
# 결제 수단(pay_type)의 종류 개수
select count(distinct pay_type) as count_of_pay_type
from payments
4) MIN: 최솟값을 구하는 함수
5) MAX: 최댓값을 구하는 함수
select min(price) as min_price,
max(price) as max_price
from food_orders
추가 팁
DBeaver에서 MySQL을 사용할 때는 컬럼명이나 데이터값을 제외한 문법, 구문, 함수는 대소문자를 구분하지 않아도 된다. 즉, SELECT, select, Select 모두 똑같이 동작한다.
마무리
이번 실습을 통해 조건문(AND, OR, NOT)을 조합해 원하는 데이터를 더 정교하게 뽑아낼 수 있었고, 에러메세지를 단순히 "에러"로 받아들이지 않고 문제 해결을 실마리로 활용하는 법도 익혔다. 또 SUM, AVG, COUNT, MIN, MAX 같은 집계 함수들은 데이터를 요약해서 빠르게 파악하는 데 꼭 필요한 기능이라는 걸 직접 체감할 수 있었다. 오늘 배운 내용은 SQL을 다루는 기본기이자 앞으로 계속 쓰일 핵심 도구들이기 때문에 앞으로 더 다양한 데이터에 적용해 보면서 익숙해져야겠다.
'Data_10기' 카테고리의 다른 글
| SQL 실습 - 새로운 카테고리 만들기 (0) | 2025.09.29 |
|---|---|
| SQL 문자열 가공과 조건문 활용하기 - REPLACE, SUBSTR, CONCAT, IF, CASE (0) | 2025.09.26 |
| SQL 기초 문법 정리 - WHERE, GROUP BY, ORDER BY (0) | 2025.09.25 |
| SQL 기초 문법 정리 - SELECT, FROM, WHERE (1) | 2025.09.23 |
| SQL 데이터 조회하기 - 테이블과 컬럼 (0) | 2025.09.22 |