✅ 필수 프로그램 설치 : DBeaver
✔ 데이터베이스(DB)란?
여러 사람들이 같이 사용할 목적으로 데이터를 담아두는 통
C(Create) : 데이터의 생성
R(Read) : 저장된 데이터를 읽어오는 것
U(Update) : 저장된 데이터를 변경하는 것
D(Delete) : 저장된 데이터를 삭제하는 것
✔ 데이터베이스(DB)와 SQL이 왜 필요할까?
많은 양의 데이터를 효과적으로 저장/수정/사용하기 위해서
✔ SQL이 왜 필요할까?
Structured Query Language의 약자.
데이터베이스에 요청(Query)을 날려서 원하는 데이터를 가져오는 것을 도와주는 언어라는 의미!
저장된 데이터를 읽어오는 과정인 R(Read)를 편하게 만들어 주고
데이터를 손쉽고 깔끔하게 정리/분석하는 기능도 지원함
데이터를 가져오는 명령어를 작성하는 것을 'SQL 쿼리를 작성한다'라고 함
✅ 1-4주차에 배울 순서
1주차 : Select, Where
데이터를 불러오고(Select), 조건에 맞게 필터링 하는 것(Where)
2주차 : Group by, Order by
데이터를 범주에 따라 묶어서 통계치를 구하고(Group by), 정렬하는 것(Order by)
3주차 : Join
여러 데이터를 합쳐서 분석하기(Join), 더 쉽고 깔끔하게 원하는 데이터를 얻기(Subquery)
4주차 : Subquery, 그 외
✔ Select 쿼리문이란?
쿼리(Query)문이란? 쿼리는 질의를 의미.
데이터베이스에 명령을 내리는 것.
Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미
1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지로 구성됨
1) 테이블 : orders 엑셀 시트명이 orders라는 이름의 테이블이라는 의미.
2) 필드 : order_no, created_at, course_title, user_id, payment_method, email 각각이 필드.
- 스파르타 데이터베이스의 테이블 보기
show tables;
- orders 테이블의 데이터 가져오기
select * from orders;
- orders 테이블의 특정 필드만 가져오기
select created_at, course_title, payment_method, email from orders;
✔ 특정 데이터만 가져오고 싶다면?
Where 절
👉 Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것.
예시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 = 'kakaopay'
//and를 통해 where절에 원하는 조건 추가하기
👉 Where 절과 자주 같이 쓰는 문법 배우기
같지 않음 !=
select * from orders
where course_title != '웹개발 종합반'
범위 between ~ and ~
select * from orders
where created_at between '2020-07-13' and '2020-07-15'
//7월 13일과 14일의 데이터만 나오게 된다
포함 in ()
select * from checkins
where week in (1, 3)
패턴(문자열 규칙) like '~%~'
select * from users
where email like '%daum.net'
예시) 이메일이 s로 시작하고 com으로 끝나면서
성이 이씨인 유저만 추출해보기
select * from users
where email like 's%com' and name = '이**'
✔ 이외 유용한 문법
Limit
👉 일부 데이터만 가져오기
select * from orders
where payment_method = 'kakaopay'
limit 5
//맨 뒤에 [limit (출력할 숫자)] 적어주면 된다
Distinct
👉 중복 데이터는 제외하고 가져오기
select distinct(payment_method) from orders
Count
👉 몇 개인지 숫자 세보기
select count(*) from orders
예시) 회원분들의 성씨가 몇개인지 궁금하다면?
select count(dinsdinct(name)) from users