데이터베이스?
- 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통
- 원하는 대로 데이터를 저장하고 사용하기 위해 다양한 기능들이 제공 된다.
1) Create - 데이터의 생성
2) Read - 저장된 데이터를 읽어오는 것
3) Update - 데이터를 변경
4) Delete - 삭제
SQL?
- Structured Query Language
- 데이터베이스에 요청(Query)을 보내 원하는 데이터를 가져오는 것을 도와주는 언어
데이터를 가져오는 명령어를 작성하는 것 = 'SQL 쿼리를 작성한다.'
1. Select 쿼리문
- 데이터를 선택해서 가져오겠다는 명령을 데이터베이스에게 내리는 것
- 1️⃣ 어떤 테이블에서 2️⃣ 어떤 필드의 데이터를 가져올지로 구성된다.
🙋♀️ 테이블? 필드?
테이블 - 자료를 모아놓은 것
필드 - 어떠한 의미를 지니는 최소한의 것, 데이터베이스 시스템에서 처리의 최소 단위
참조링크: https://medium.com/@jw02048/%ED%85%8C%EC%9D%B4%EB%B8%94-table-%ED%95%84%EB%93%9C-field-%EC%97%B4-column-%ED%96%89-row-f186f45ebe44
1) 전체 항목 가져오기
- orders 테이블의 데이터중 *(전체항목) 가져와줘.
select * from orders;
쿼리문이 끝나는 곳에는 ';' 세미콜론으로 명시해주기!!
2) 특정 필드만 가져오기
- orders 테이블의 데이터 중 created_at, course_title 필드만 가져와줘.
select created_at, course_title from orders;
3) 조건 걸기 ➡️ where
- orders 테이블에서 결제수단이 카카오페이인 데이터만 가져와줘.
select * from orders
where payment_method = 'kakaopay';
- point_users 테이블에서 포인트가 5000점 이상인 데이터만 가져와줘.
select * from point_users
where point > 5000;
- orders 테이블에서 주문한 강의가 웹개발 종합반이면서, 결제수단이 카카오페이인 데이터만 가져와줘.
select * from orders
where course_title = '웹개발 종합반'
and payment_method = 'kakaopay';
- '같지 않음(!=)'의 조건 걸어보기
- 웹개발 종합반을 제외한 데이터를 가져와줘.
select * from orders
where course_title != '웹개발 종합반';
- '범위, between'의 조건 걸어보기
- 7월 13일 ~ 7월 14일의 주문데이터 가져와줘.
select * from orders
where created_at between '2020-07-13' and '2020-07-15';
- '포함(in)'의 조건 걸어보기
- 1, 3주차 사람들의 '오늘의 다짐' 데이터 가져와줘.
select * from checkins
where week in (1, 3);
- '패턴, 문자열의 규칙(like)'의 조건 걸어보기
- 네이버 이메일 사용하는 유저만 가져와줘.
select * from users
where email like '%naver.com';
- 'a'로 시작하는 이메일을 가진 유저만 가져와줘.
select * from users
where email like 'a%';
- 'a'로 시작하고 'co' 포함하는 이메일 가진 유저만 가져와줘.
select * from users
where email like 'a%co%';
- 'kr'로 끝나는 이메일 가진 유저만 가져와줘.
select * from users
where email like '%kr';
5) Limit
- 일부 데이터만 가져오기
- kakaopay 결제수단인 주문건 5건만 가져와줘.
select * from orders
where payment_method = 'kakaopay'
limit 5;
6) Distinct
- 중복 데이터 제외
- 결제수단의 종류만 가져와줘.
select distinct(payment_method) from orders;
7) Count
- 개수 세기
- 주문의 총 개수 알려줘.
select count(*) from orders;
- 결제수단의 종류의 개수 알려줘
select count(distinct(payment_method)) from orders;