SQL이 왜 필요할까?
1. 방대한 양의 데이터 저장 가능
2. 데이터를 효과적으로 저장/수정/사용 가능
결국에는 데이터를 잘 꺼내오기 위해 쓰는 것이다.
모든 데이터베이스는 CRUD에 해당하는 기능을 지원한다.
C(Create): 데이터 생성
R(Read): 저장된 데이터를 읽어오는 것
U(Update): 저장된 데이터 변경
D(Delete): 저장된 데이터 삭제
SQL: Structured Query Language
즉 데이터베이스에 요청(Query)을 보내고 원하는 데이터를 가져오는 것을 도와주는 언어
1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지가 핵심!
Ctrl+Enter: SQL문 실행
테이블 보기
show tables
select문
orders라는 테이블에서 모든 필드(*)를 가져와라
select * from orders
특정 필드만 가져오기
where
1) orders 테이블에서 결제수단이 카카오페이인 것만 출력
select * from orders
where payment_method = 'kakaopay'
문자열은 작은 따옴표로 감싸주기
출력화면
2) point_users 테이블에서 포인트가 5000점 이상인 데이터 출력
select * from point_users
where point >= 5000
출력화면
3) orders 테이블에서 주문한 강의가 앱개발 종합반이면서, 결제수단이 카드인 데이터
select * from orders
where course_title = '앱개발 종합반' and payment_method = 'CARD'
대,소문자 구분하지 않지만 맞춰서 작성하자
출력화면
4) 포인트가 20000점보다 많은 유저
select * from point_users
where point >= 20000
5) 성이 황씨인 유저
select * from users
where name = '황**'
6) 웹개발 종합반이면서 결제수단이 CARD인 주문건
select * from orders
where course_title = '웹개발 종합반' and payment_method = 'CARD'
where절과 자주 같이 쓰는 문법
1) != 같지 않음
where절과 자주 같이 쓰는 문법
2) between 범위
7월 13일, 7월 14일의 주문데이터
select * from orders
where created_at between '2020-07-13' and '2020-07-15
where절과 자주 같이 쓰는 문법
3) in 포함
1, 3주차 사람들의 '오늘의 다짐' 데이터
select * from checkins
where week in (1, 3)
week가 1 또는 3인 데이터
where절과 자주 같이 쓰는 문법
4) like 패턴(문자열 규칙)
다음 (daum) 이메일을 사용하는 유저
select * from users
where email like '%daum.net'
%daum.net: daum.net으로 끝나는 데이터
daum.net%: daum.net으로 시작하는 데이터
a%t: a로 시작해서 t로 끝나는 데이터
limit: 일부 데이터만 가져오기
큰 테이블이 어떻게 생겼나 조회해볼 때
select * from orders
where payment_method = 'kakaopay'
limit 5
where 조건 데이터의 5줄만 보여줌
distince: 중복 제거하고 보기
select distinct(payment_method) from orders
count: 개수 세기
전체 데이터 개수 출력
select count(*) from orders
select count(*) from orders
where payment_method = 'kakaopay'
payment_method가 kakaopay인 데이터의 개수 출력
Distinct와 Count 같이 써보기
select count(distinct(name)) from users
name에서 중복 제외한 데이터에서 성씨 몇개인지 조회