[엑셀보다 쉽고 빠른 SQL] 1주차 정리
https://velog.io/@medi145/SQL-1%EC%9D%BC%EC%B0%A8 에 이어서 SQL 강의 1주차 마무리까지 정리한 글입니다.
1. 조건에 맞는 데이터로 필터링
검색할 때 특정 조건을 필터링할 때 쓰인다.
ex) 한국 음식인 경우, 나이가 19살인 경우 등...
WHERE 을 사용하면 전체 데이터 중 원하는 데이터를 필터링할 수 있다.
SELECT *
FROM 테이블
WHERE 조건
사용 예시)
SELECT *
FROM food_orders
where food_preparation_time=25
풀이: food_orders 테이블에서 요리 준비 시간이 25분인 컬럼을 조회.
또한, WHERE 절은 항상 FROM 뒤에 와야한다.
2. 필터링에 사용하는 표현
WHERE 절을 사용할 때, 유용하게 쓸 수 있는 표현이 있다.
SELECT *
FROM food_orders
WHERE food_preparation_time<>25
풀이: food_orders 테이블에서 요리 준비 시간이 25분이 아닌 컬럼을 조회.
SELECT *
FROM food_orders
WHERE food_preparation_time BETWEEN 20 and 30
풀이: food_orders 테이블에서 요리 준비 시간이 20분~30분인 컬럼을 조회.
WHERE 컬럼 A and B 로 사용한다.
SELECT *
FROM food_orders
WHERE rating IN (2, 4, 5)
풀이: food_orders 테이블에서 식당의 평점이 2, 4, 5인 컬럼을 조회.
다수 조건일 경우 ()로 묶어서 쓴다.
SELECT *
FROM food_orders
WHERE restaurant_name LIKE 'Blue%'
풀이: food_orders 테이블에서 레스토랑 이름이 'Blue'로 시작하는 컬럼을 조회.
%의 위치에 따라 조건 시작 위치가 다름.
%Blue일 경우, Blue로 끝나는 컬럼
%Blue%일 경우, Blue를 포함하는 경우
Blue%일 경우, Blue로 시작하는 경우
3. 여러 개의 조건으로 필터링
한 검색에 여러 WHERE 조건을 줄 수 있다.
SELECT *
FROM food_orders
where food_preparation_time=25 and rating=4
풀이: food_orders 테이블에서 요리 준비 시간이 25분이고 별점이 4인 컬럼을 조회.
SELECT *
FROM food_orders
where (restaurant_name LIKE 'blue%') or rating=4
풀이: food_orders 테이블에서 음식점 이름이 blue로 시작하거나 별점이 4인 컬럼을 조회.
SELECT *
FROM food_orders
where not price>=30000 or rating >= 3
풀이: food_orders 테이블에서 가격이 30000원 이상이 아니고 별점이 3이상인 컬럼을 조회.
and not, or not 처럼 다른 조건연산자와 이어서 쓸 수도 있다.
4. 에러 메시지 확인하기
에러 발생 시, 메시지를 잘 읽고 해결하려고 노력할 것.
자주 발생하는 에러 목록