SQL 1주차

윤수빈·2024년 6월 23일
0

[엑셀보다 쉽고 빠른 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분이 아닌 컬럼을 조회.
  • 조건연산자 = BETWEEN(사이), IN(포함), LIKE(비슷한)
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 조건을 줄 수 있다.

  • AND(그리고), OR(또는), NOT(아닌)
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. 에러 메시지 확인하기

에러 발생 시, 메시지를 잘 읽고 해결하려고 노력할 것.

자주 발생하는 에러 목록

  • 테이블 명을 다르게 적었을 때 (doesn't exist 출력)
  • 컬럼 명을 다르게 적었을 때 (unknown column '~~' in 'field list' 출력)
  • 필터링 조건을 줄 때 문자에 따옴표를 안넣었을 때 (unknown column '~~' in 'where clause' 출력)
  • 문법이 유효하지 않을 때 (syntax error 출력)
  • etc...
profile
정의로운 사회운동가

0개의 댓글