- 조건에 맞는 데이터로 필터링하기 (WHERE)
- WHERE절의 개념
데이터 중에 특정 조건을 필터링할 때 사용한다.
전체 데이터 중 원하는 데이터만 필터링할 수 있다.
조건을 입력할 때는 문자열에 작은따옴표를 붙인다.
기본 조건은 '='을 통하여 준다.
필터링은 숫자가 아닌 문자에도 사용가능하지만 문자를 사용할 때만 작은따옴표를 사용한다.
MYSQL 환경에서는 대소문자 구분 없이 사용가능하다.
WHERE의 구조
select * from 테이블 where 필터링 조건 (eg. 20살 이상) |
필터링 예시
고객 (customers) 테이블에서 21살인 사람을 필터링하면 아래와 같다.
select * from customers where age=21 |
- 필터링을 할 때 유용한 표현 알아보기(비교연산, BETWEEN, IN, LIKE)
- 필터링은 같다(=) 조건을 포함하여, 크다 (>), 작다(<) 등을 모두 사용할 수 있다
비교연산자 | 의미 | 예시 |
= | 같다 | age=21 gender='female' |
!=, <> | 같지 않다(다르다) | age <>21 gender != 'female' |
> | 크다 | age>21 |
>= | 크거나 같다 | age>=21 |
< | 작다 | age<21 |
<= | 작거나 같다 | age<=21 |
비교 연산자를 이용해 '나이가 21세 미만인' 고객을 조회한 예시
select * from customers where age<21 |
- 필터링 조건 주기
필터링 조건 종류 | 의미 | 예시 |
BETWEEN | a와b 사이의 값을 불러와 줍니다. | where age between 10 and 20 |
IN | 목록 내의 값을 불러와 줍니다. | age in (15, 21, 31) |
LIKE | 목록 내의 값을 불러와 줍니다. | name like '김%' restaurant_name like '%Next%' name like '%임' |
LIKE 구문은 특정한 문자로 시작하거나, 포함하거나, 뒤에 특정한 문자로 끝날 때 조회할 수 있다
% 을 붙여서 사용한다
- 특정 문자로 시작하는 경우 : like '시작문자%'
- 특정 문자를 포함하는 경우 : like '% 포함문자%'
- 특정한 문자로 끝나는 경우 : like '% 끝나는 문자'
- 여러 개의 조건으로 필터링(논리연산)
- WHERE 절에 여러 조건을 적용하기
여러 개의 조건을 적용할 때 사용한다.
필터링 조건 여러 개를 하나의 쿼리문에 적용할 수 있다.
논리연산자 | 의미 | 예시 |
AND | A조건과 B조건 모두 충족할때 | age>20 and gender=’female’ → 나이가 20세 이상이고, 여성 |
OR | 하나의 조건만 충족해도 될때 | age>20 or gender=’female’ → 나이가 20세 이상이거나, 여성 |
NOT | 같지 않다는 조건일때 | not gender=’female’ → 여성이 아닌 |
- 에러메시지에 대해
에러메시지가 발생하면 확인해야 할 부분은 에러코드가 아닌 왜 에러가 발생했을까?라고 생각하며 문장을 보면 에러가 발생한 이유가 기재되어 있기 때문에 잘 보고 확인하자!
- 한 번에 계산하기(SUM, AVERAGE, COUNT, MIN, MAX)
숫자 연산 종류 | 설명 |
+ | 더하기 |
- | 빼기 |
* | 곱하기 |
/ | 나누기 |
- 계산의 편의를 위해 함수를 제공하고 있습니다.
- 데이터의 범위가 아닌 계산할 '컬럼'을 적는다.
함수 종류 | 의미 | 예시 |
SUM | 컬럼의 총합 | select sum(food_preparation_time) total_food_preparation_time from food_orders |
AVG | 컬럼의 평균값 | select avg(delivery_time) avg_food_preparation_time from food_orders |
COUNT | 컬럼의 개수를 확인한다, 몇 개의 값을 가지고 있는지 구할 수 있다. | select count(1) count_of_orders, count(distinct customer_id) count_of_customers from food_orders |
MIN | 해당 컬럼에서 가장 작은 값 | select min(price) min_price from food_orders |
MAX | 해당 컬럼에서 가장 큰값 | select min(price) min_price from food_orders |
- 쿼리 작성 시 한 줄만 띄어쓰기해야 한다.
- 쿼리 작성할 때 함수와 컬럼 사이의 공백을 한 칸만 띄워야 한다.
- 함수를 적을 때 대, 소문자 구분을 하지 않는다.
- COUNT함수 사용 시 주의사항
- COUNT(*)은 명시적인 값을 지정하지 않은 경우 컬럼의 값 개수를 구한다.
- COUNT(distinct '컬럼명')은 중복을 제외한 값을 구합니다.
오랜만에 다시 공부한 SQL이라서 다시 잊지 않기 위해 메모하며 진도를 따라갔고 쿼리 작성할 때 함수와 컬럼사이의 공백은 한 칸만 띄워야 한다는 것과 한 줄만 띄어쓰기 가능하다는 점을 배웠다
'자기계발 Diary' 카테고리의 다른 글
오늘의 공부 day_4(SQL 가독성을 높이는 다섯가지 습관, SQL공부) (5) | 2024.11.05 |
---|---|
오늘의 공부day_3(데이터 분석가의 중요한것들,SQL 공부) (2) | 2024.11.04 |
오늘의 공부 day_1(데이터 리터러시,데이터 관련,SQL 기초) (1) | 2024.11.01 |
데이터 분석가는 어떤 일을 할까? (0) | 2024.10.30 |
데이터 분석 트랙을 신청한 이유 (7) | 2024.10.28 |