수강일: 2022/03/07
한번더: 2022/04/02
두번더: 2022/04/26
DBeaver 설치 링크
https://dbeaver.io/download/
설치가 끝나면
좌측 상단 플러그 모양 아이콘 클릭
mySQL 누르고 다음
1~4까지 정보를 채우고 5 눌러서 테스트, 결과값이 connected가 나와야 됨
=================================
뜬금없이 sparta_week1.sql 을 만들자고 함...뭔소린지
=================================
쿼리(Query)문이란? 쿼리는 질의를 의미하죠. 데이터베이스에 명령을 내리는 것을 의미합니다.
여기서 Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미입니다.
엑셀로 따지면 orders라는 sheet가 바로 테이블!
order_no, created_at 같은 컬럼이 필드!
ex) Select 쿼리문을 통해 'orders 테이블의 created_at, course_title, payment_method, email 필드를 가져와줘!'라고 할 수 있다.
=================================
처음 마주하는 명령어
show tables;
-> tables를 보여줘!
sparta라는 시루떡같이 생긴놈 하위폴더의 Tables에 있는 애들이 출력됨
=================================
select * from orders
select "*" / 모두 골라라 ('***'은 전체선택)
from orders / orders 안의 내용을
필드와 테이블은 그냥 쓰고, 그 안의 값은 문자열로
=================================
select order_no, created_at, user_id, email from orders
위와 마찬가지로
select order_no, created_at, user_id, email을 골라라
from orders 안에서
(select 어쩌고는 앞으로 죽어라 쓸 듯 하다.
사실 select from은 엑셀 vba에서도 본 문법인데..
sql을 배우면 엑셀도 잘 다룰 수 있게 되는건가?)
=================================
select의 기본 - WHERE절
Where 절은, Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것을 의미함
select * from orders
where payment_method = "kakaopay";
1) order 테이블의 모든 필드를 가져오고
2) payment_method 필드의 값이 kakaopay인 것만 가져옴
따옴표는 필수! 뭔가를 지칭하는 것이 아니라 문자열임을 알림.
(이건 파이썬이랑 유사한 느낌이다.)
=================================
where절에서 다중조건
where course_title = "앱개발 종합반" and payment_method = "kakaopay";
and를 사용해서 다중조건 탐색이 가능하다.
=================================
point_users 테이블에서 point 필드값이 5000 이상인 데이터 추출
select * from point_users
where point >= 5000;
=================================
성이 황씨인 유저만 뽑아보기
select * from users
where name = '황**';
=================================
웹개발종합반이면서 결제수단이 카드인 유저만 뽑아보기
select * from orders
where course_title = '웹개발 종합반'
and payment_method = 'card';
(대소문자의 구분이 없다는걸 알았다.)
=================================
between사용
select * from orders
where created_at between '2020-07-13' and '2020-07-15'
7월13일~7월14일까지의 데이터가 나온다.
(시분초는 지정해주지 않아도 되네? 숫자열인가?)
=================================
포함 조건 걸기 in (포함되는 값)
select * from checkins
where week in (1, 3)
(이거 매우 생소하네요... 처음 보는 방식)
(쉼표 대신 or을 써봤는데 안됨)
( () 안을 비워봤는데 안됨)
=================================
패턴으로 찾기 (like)
select * from users
where email like '%daum.net'
(% <- 앞에 뭐가 있든간에 신경안쓴다는 뜻. 엑셀의 *와 유사한듯)
=================================
limit = 몇개까지 가져올건지 설정
select * from orders
where payment_method = 'kakaopay'
limit 5
(상위? 하위? 어떤 기준으로 5개인지는 모르겠다. 열인가?)
=================================
distinct = 중복된 데이터 제거하고 보기
=================================
count = 개수 세기
결제수단이 카카오페이인 개수 세기
성씨가 몇개나 있는지 세기
=================================
문법 정리
select 필드 from 테이블
where절
where A = 'B' / A필드가 B값인 것
between A and B / A~B 사이
in (a, b) / a 혹은 b
like '%A' / %는 상관없이 끝이 A인 것
limit n / n개만큼만 추출
distinct (A) / A필드의 중복데이터 제거
count(A) / A필드의 개수 세기
count(distinct(A)) / A필드의 중복을 제거한 뒤, 남은 값의 개수
=================================
이게... 엑셀에서 배울까 말까 하다가 포기한 vba랑 문법이 똑같은거 같다. 엑셀을 열심히 했으면 sql을 잘 할 수 있었을텐데 뭔가 아쉽다.