본문 바로가기
SQL

[TIL] SQL_2일차(between,in,like)

by 공부하죠 2024. 3. 24.
반응형

✍🏻배운내용📚

1.데이터 필터링[ where ]이란?

2. 필터링 조건을 다양하게 지정하는 방법 : 비교연산자, BETWEEN, IN, LIKE

3. 여러개의 필터링 조건을 한 번에 적용하는 방법

4. 에러메세지에 대처하는 방법

 


1. 데이터 필터링이란?

필터링의 기초 문법은 WHERE 절입니다.

 

[ WHERE 절의 개념 ]

→ 데이터 중에 특정 조건을 필터링 해야할 때 씁니다.

SQL 의 ‘WHERE’ 문법을 이용하면 전체 데이터 중 원하는 데이터만 필터링을 할 수 있습니다.

반드시 from문 다음에 있어야 합니다.

 

[ WHERE 의 구조 ] 

select 컬럼
from 테이블
where 필터링 조건

 

[실습]

1) 기본 조건은 ‘=’ 을 통하여 필터링

고객 (customers) 테이블에서 21살인 사람을 필터링

select *
from customers
where age=21

 

2) 필터링은 숫자가 아닌 문자에도 사용 가능. 문자를 사용할 때는 '작은 따옴표'를 사용. (밑줄이 조건)

① 고객 (customers) 테이블에서 여성을 필터링

select *
from customers
where gender='female'

 

② 주문 (food_orders) 테이블에서 한국음식을 주문한 경우만 조회하기

[ 주의 ] SQL에서는 대분자와 소문자를 구분합니다.

select *
from food_orders
where cuisine_type = 'Korean'

 

  결제 (payments) 테이블에서 카드로 결제한 경우만 조회하기

select *
from payments
where pay_type='card'

2. 필터링 조건을 다양하게 지정하는 방법 (비교연산자, BETWEEN, IN, LIKE)

1) 비교연산자

[ 비교연산자의 종류 ]

[실습] 비교연산자

① 나이가 21세 미만인 고객을 조회

select *
from customers
where age <= 21

② 남성이 아닌  고객을 조회

select *
from customers
where gender <> 'male'

 

 

2) BETWEEM : A 와 B 사이  between a and b

예시 : 나이가 10 과 20 사이 where age between 10 and 20

 

3) IN : ‘포함’ 하는 조건 주기 in (A, B, C)

예시1 : 나이15, 21, 31세인 경우 ⇒ where age in (15, 21, 31)

예시2 : 음식 종류한식, 일식인 경우 where cuisine_type in ('Korean', 'Japanese')

예시3 : 이름이 윤주아와 정현준인 경우  where name in (' 윤주아 ', ' 정현준 ')

 

4) LIKE : 완전히 똑같지는 않지만, 비슷한 값을 조건으로 주기

① 특정한 문자로 시작하는 경우 : like ‘시작문자%

예시 : ‘김’ 으로 시작하는 이름 ⇒ name like '김%'

 

② 특정한 문자를 포함하는 경우 : like ‘%포함문자%

예시 : 식당 이름에 ‘Next’ 를 포함하는 경우 ⇒ like ‘%포함문자%’

 

③ 특정한 문자로 나는 경우 : like ‘% 문자’

예시 : ‘임’ 으로 끝나는 이름 ⇒ name like '%임'

 

[실습] WHERE 절에 하나의 조건 적용하기

1. 고객 (customers) 테이블에서 나이가 40세 이상인 고객 조회하기

select *
from customers
where age >= 40

 

2. 주문 (food_orders) 테이블에서 주문 금액이 15,000원 미만인 고객 조회

select *
from food_orders
where price < 15000

 

3. 주문 (food_orders) 테이블에서 주문 금액이 20,000~30,000원 사이인 고객 조회(숫자 중간에 ,콤마 넣으면 에러)

select *
from food_orders
where price BETWEEN 20000 and 30000

 

4. 주문 (food_orders) 테이블에서 B 로 시작하는 상점의 주문 조회('따옴표' 안에 띄어쓰기하면 띄어쓰기까지 인식함)

select *
from food_orders
where restaurant_name like 'B%'

 


3. 여러개의 필터링 조건을 한 번에 적용하는 방법

1) WHERE 절에 여러 조건을 적용하기

여러개의 조건을 적용할 때 사용되는 연산이 ‘논리연산’ 입니다.

[ 논리연산의 종류 ]

예) ‘나이가 20세 이상인’, ‘여성 고객’ 두가지 조건 조회

select *
from customers
where age > 20 and 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

 

 


4. ⚠️에러메세지에 대처하는 방법 ( 당황하지 않고 스스로 문제 해결하기 )

에러메세지에서 확인 할 부분은 ‘에러코드’ 가 아닌 ‘왜 에러가 났는가’ 부분입니다.( ‘에러가 난 이유’ 를 확인 )

[ 자주 만날 수 있는 에러메세지 ]

⚠️테이블 명을 다르게 적었을 때 → 테이블이 존재하지 않는다는 메시지

⚠️컬럼 명을 다르게 적었을 때 → 필드명이 잘못 되었다는 메시지

⚠️필터링 조건을 줄 때 문자에 ‘ ‘ 작은 따옴표를 안했을 때 → Korea 에 문제가 있다는 메시지

👁‍🗨이 외에도 여러 경우가 있지만, 중요한 것은 ‘에러 메시지를 읽어보는 것’ 입니다. 📖

 


 

💡 [ Tip ] SQL 생각 흐름 🧠

1. 기본구조를 적기 : select from where

2. 데이터를 가져올 테이블을 적기 : from 테이블

 → 만약 조건이 잘 파악이 안 되면 (전체) 테이블만 우선 실행하여 결과를 보고 조건 찾기

3. 조건을 지정해서 적기 : where 조건

4. 원하는 컬럼만을 선택 : select 컬럼 

 


 

다음 시간에는 'SQL을 이용하여 숫자 계산'에 대해 공부합니다📣

이전 내용이 궁금하다면 여기를 클릭 💨

SQL은 SQLD자격증 시험과  ADsP자격증 시험에서 나오는 내용이여서 공부해 놓으면 매우 유용합니다!!

ADsP 시험 정보가 궁금하신 분들은 여기를 클릭 💨

 

🏆 오늘 하루도 알차게 보낸 모두 좋은 하루 되세요🌆

 

반응형