수강일: 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을 잘 할 수 있었을텐데 뭔가 아쉽다.

profile
코딩 연습장. 발전하고 싶습니다. 모든 방향에서의 비판 부탁드립니다.

0개의 댓글