SQL

SQL where/ between and / like '%' / in() / != 이거 제외하고 보여줘

GABOJOK 2023. 9. 20. 23:24

select 쿼리문

어떤 테이블 에서 어떤 필드의 데이터를 가져오는가.

 

 

  • 테이블  ___ orders
  • 필드 ___  order_no, created_at, course_title, user_id, payment_method, email 각각이 필드

 

 

 

show tables

show Tables라는 폴더 안에 들어있는 테이블들을 다 보여준다. 

 

 

실행하기     control(^) + Enter

 

데이터 베이스에서 특정 테이블 가져오기

select * from orders

orders 테이블 전부(*) 가져와줘.

 

 

select payment_method from orders

orders 테이블 에서 payment_method 라는 필드만 가져와줘

 

 

select order_no, created_at, user_id, email from orders

orders 테이블에서 여러개의 필드 지정해서 가져올 수 있다. (order_no, created_at, user_id, email )

 

 

 

 

where __ 조건걸기

 

select * from orders

where payment_method = 'kakaopay'

 

👉 orders 라는 테이블 전부 가져와줘. 단 payment_method 필드의 값이 'kakaopay' 인 애들만.

 

 

 

 

이런식으로도 사용 가능하다. 

select * from point_users

where point >= 5000

 

 

 

조건이 2개 혹은 그 이상일 경우     ___   and

select * from orders
where course_title = '앱개발 종합반'
and payment_method = 'CARD'

 

 

 

이것에 해당하는 데이터 제외하고 보여줘         !=

select * from orders
where course_title != '웹개발 종합반'

 

 

between   ' 여기서부터 '    and     ' 이거 전까지 '   

 

👶 7월 13일, 7월 14일의 주문데이터만 보고 싶어

 

select * from orders
where created_at between '2020-07-13' and '2020-07-15'

 

👶 point_users 라는 테이블에서 point가 20000에서 30000 사이인 데이터만 보고싶어.

select * from point_users
where point between '20000' and '30001'

 

여기서 작은따옴표 해도 작동은 하지만, 숫자 데이터의 경우 작은따옴표 하지 않아도 작동함. 

 

 

 

 

in ( ) 

하나의 필드에서 여러 조건에 해당하는 데이터 가져오기  

where 가져오고 싶은 필드 이름 in ( 그 필드에서 가져오고 싶은 데이터)

 

 

예시) users 테이블에서  이름이 이씨와 강씨인 데이터만 가져오기.

select * from users
where name in('이**','강**')

 

 

 

like  ' %   '     

where 가져오고 싶은 필드이름 like ' % 찾고싶은거'

🧐  %    _____  뭐가 있던 상관 없다는 뜻.

 

 

 

예시) users 테이블에서 email이 daum.net 으로 끝나는 데이터만 가져와줘.

select * from users
where email like '%@daum.net'

 

 

예시)  users 테이블에서 email이 a로 시작, t로 끝나는 데이터 들만 찾아줘

select * from users
where email like 'a%t'

 

 

 

여기서 특이한거, 

1. 나는 자바스크립트를 배우고 시작했기 때문에, 

  이 course_tilte의 항목에 '앱개발 종합반' 이 있는걸 가져오려면 

  === 이 기호를 이용해야 하는줄 알았는데

  SQL 에서는 = 이거 하나면 된다는 점!!

 

2.  그리고 라는 표현을 js 에서는 && 로 사용했는데, 

  여기서는 and 정말 날것 그대로 사용한다는 점👀👍

  or 역시 || 가 아니라 진짜로 or이라고 쓰면 된다는 점 🤩

 

혹시나 해서 &&로 써봣더니 되긴 되는데, 이거 없어질 예정이니까 and 써 ~~ 라고 권고했음.ㅋㅋㅋ

 

 

 

 

정리 

  • select * from 테이블 이름  👈 해당 테이블에 데이터 전부 가져와줘
  • where name = '황**' 👈 name 필드의 값이 '황**'인 데이터만 가져와줘
  • where point between 20000 and 30000  👈  between 여기부터 and 이거 전까지 해당하는 데이터 가져와줘
  • where name in('황**', '김**')  👈 name 필드의 값이 '황**', '김**' 에 해당하는 데이터만 가져와줘(포함조건)
  • where name != '황**'  👈 이름이 '황**'이 아닌 데이터만 가져와줘.
  • where email like 'happy%naver.com'.  👈 이메일이 happy로 시작해서 naver.com 으로 끝나는 데이터만 가져와줘
  • where email like '%py%'.  👈 이메일이 py를 포함하는 데이터만 가져와줘