데이터베이스란? 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통
C (Create): 데이터의 생성을 의미
R (Read): 저장된 데이터를 읽어오는 것을 의미
U (Update): 저장된 데이터를 변경!
D (Delete): 저장된 데이터를 삭제하는 것을 의미
👉 쿼리(Query)문이란? 쿼리는 질의를 의미. 데이터베이스에 명령을 내리는 것을 의미함. 여기서 Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미.
- checkins: 여러분이 강의실 들어오시며 남기는 '오늘의 다짐'이 들어있어요
- courses: 스파르타의 개설 강좌 정보가 들어있음.
- enrolleds: 유저별 강좌 등록정보가 들어있음
- enrolleds_detail: 유저별 들을 수 있는 영상과, 들었는지 여부가 들어있음
- orders: 주문 (수강등록) 정보가 들어있음
- point_users: 유저별 포인트 점수가 들어있음
- users: 유저 정보가 들어있음
select * from orders
where payment_method = "kakaopay";
select * from point_users
where point > 20000;
select * from orders
where created_at between "2020-07-13" and "2020-07-15";
select * from checkins
where week in (1, 3);
select * from users
where email like '%daum.net';
select * from orders
where payment_method = "kakaopay"
limit 5;
select distinct(payment_method) from orders;
select count(*) from orders
SELECT count(distinct(name)) from users;
select name, count(*) from users
group by name;
위 쿼리가 실행되는 순서: from → group by → select
Group by는 동일한 범주를 갖는 데이터를 하나로 묶어서, 범주별 통계를 내줌.
select 범주별로 세어주고 싶은 필드명, count(*) from 테이블명
group by 범주별로 세어주고 싶은 필드명;
select 범주가 담긴 필드명, min(최솟값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
select 범주가 담긴 필드명, max(최댓값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
select 범주가 담긴 필드명, avg(평균값을 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
select 범주가 담긴 필드명, sum(합계를 알고 싶은 필드명) from 테이블명
group by 범주가 담긴 필드명;
select name, count(*) from users
group by name
order by count(*);
위 쿼리가 실행되는 순서: from → group by → select → order by
두 테이블의 공통된 정보 (key값)를 기준으로 테이블을 연결해서 한 테이블처럼 보는 것을 의미함.
여기서 A와 B는 각각의 테이블을 의미함. 둘 사이의 겹치는 부분은, 뭔가 테이블 A와 B의 key 값이 연결되는 부분
select * from users u
left join point_users p
on u.user_id = p.user_id;
여기서 A와 B는 각각의 테이블을 의미. 이 그림은, 두 테이블의 교집합을 의미.
select * from users u
inner join point_users p
on u.user_id = p.user_id;
select * from enrolleds e
inner join courses c
on e.course_id = c.course_id;
위 쿼리가 실행되는 순서: from → join → select
1. from enrolleds: enrolleds 테이블 데이터 전체를 가져옵니다.
2. inner join courses on e.course_id = c.course_id: courses를 enrolleds 테이블에 붙이는데, enrolleds 테이블의 course_id와 동일한 course_id를 갖는 courses의 테이블을 붙입니다.
3. select * : 붙여진 모든 데이터를 출력합니다.