| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 가상환경
- 개발일지
- WIL
- 정보처리기사실기
- 정보처리기사
- 프로그래머스
- 1주차
- js
- 미니프로젝트
- sql
- 채팅
- Git
- github
- re-id
- Commpot
- poetry
- 2주차
- WebSocket
- 알고리즘
- 장고
- resnet50
- vscode
- Class
- 프로젝트
- channels
- 백준
- 파이썬
- 마스킹
- REDIS
- WHERE절
- Today
- Total
개발일기
SQL 1주차 select문, where절 연습 본문
Select 쿼리문
- 쿼리문: 데이터베이스에 명령을 내리는 것
- Select: 데이터베이스에서 '데이터를 선택해서 가져오겠다.'
- 구성: 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지
show tables
# 테이블을 확인(보여줘)

select * from orders
# orders라는 테이블에서 모든 필드를 가지고 와라

select order_no , course_title, user_id , email from orders
# orders 테이블에서 order_no , course_title, user_id , email 필드를 가져와라

Where 절
- Select 쿼리문과 함께 사용
- Select 쿼리문으로 가져올 데이터에 조건을 건다.
예1) orders 테이블에서 결제수단이 카카오페이인 데이터만 가져와줘!
select * from orders o
where o.payment_method = 'kakaopay'

예2) orders 테이블에서 주문한 강의가 앱개발 종합반이면서, 결제수단이 카드인 데이터만 가져와줘!
select * from orders o
where o.course_title = '앱개발 종합반' and o.payment_method = 'card'

예3) 웹개발 종합반을 제외한 주문데이터 보여줘!
select * from orders o
where o.course_title != '웹개발 종합반'

예4) 7월 13일, 7월 14일의 주문데이터만 보여줘!
select * from orders o
where o.created_at between '2020-07-13' and '2020-07-15'

- 7월 13일, 7월 14일의 데이터를 추출하는데.. 왜 15일까지 입력해야하는가?
- between "2020-07-13" and "2020-07-15"로 입력할 경우,
- between "2020-07-13 00:00:00" and "2020-07-15 00:00:00”으로 컴퓨터가 받아들이기 때문이다.
예5) 1, 3주차 사람들의 '오늘의 다짐' 데이터만 보여줘!
select c.user_id ,c.comment, c.week from checkins c
where c.week in (1,3)

예6) 다음 (daum) 이메일을 사용하는 유저 데이터만 보여줘!
select * from users u
where email like '%daum.net'

- Like: 패턴으로 조건을 거는 문법, %랑 같이 씀!
- where email like 'a%': email 필드값이 a로 시작하는 모든 데이터
- where email like '%a': email 필드값이 a로 끝나는 모든 데이터
- where email like '%co%': email 필드값에 co를 포함하는 모든 데이터
- where email like 'a%o': email 필드값이 a로 시작하고 o로 끝나는 모든 데이터
예7) 일부 데이터만 가져오기: Limit
select * from users u
where email like '%daum.net' limit 5

예8) 중복 데이터 제외하고 가져오기: Distinct
select distinct(payment_method) from orders

예9) 데이터 개수 세기: count
select count(DISTINCT(name)) as name_cnt from users

그럼 이제 위 내용들을 가지고, 퀴즈를 풀어보자!!
퀴즈1) Gmail을 사용하는 2020/07/12~13에 가입한 유저를 추출하기
select * from users
where email like '%gmail.com' and created_at between '2020-07-12' and '2020-07-14';

퀴즈2) Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수를 세기
select count(*) as cnt from users
where email like '%gmail.com' and created_at between '2020-07-12' and '2020-07-14';

퀴즈3) naver 이메일을 사용하면서, 웹개발 종합반을 신청했고 결제는 kakaopay로 이뤄진 주문데이터 추출하기
select order_no, course_title, payment_method, email from orders
where email like '%naver.com' and course_title = '웹개발 종합반' and payment_method = 'kakaopay'

원하는 데이터를 select해서 가지고 올 수 있는 where절~
원하는 조건의 데이터를 이제는 가지고 올 수 있다!
'오늘의 공부일기 > SQL 공부일기' 카테고리의 다른 글
| SQL 2주차 쿼리문 더 깔끔하게 정리하기 (0) | 2023.03.10 |
|---|---|
| SQL 2주차 Subquery 연습하기 (0) | 2023.03.02 |
| SQL 2주차 Join, Union 연습하기 (0) | 2023.03.02 |
| SQL 1주차 Group by, Order by 문법 연습 (0) | 2023.03.01 |
| SQL 1주차 데이터베이스, SQL 개념 간단정리 (0) | 2023.03.01 |