본문 바로가기
SQL

[스파르타 코딩 클럽] SQL 강의 DAY1 : 환경 세팅과 select, where문

by Hustlera 2023. 1. 5.

 

스파르타 코딩 클럽 SQL강의 수강을 시작했다.

0주차 (튜토리얼 총 3개 강의)와 1주차 (총 7개 강의)중 4개의 강의를 수강함. 

하루에 들을 수 있는 강의가 8개인데 0주차, 1주차 수업을 들으면 1주차 수업을 다 들을 수 없는 게 좀 아쉬운 부분이었다.

강의 3개 남기고 덩그러니 개발일지 써본다...ㅎ

 

1. 환경 세팅하기

가장 먼저 세팅한 것은 DBeaver 설치

SQL 언어 중 MySQL을 선택 후 스파르타 코딩클럽 DB에 연결해 줬다. (여기까지는 스무스한 전개)

 

튜터분을 따라 selcet 문을 따라 썼는데 아니 벌써 에러코드 실화인가 싶고

다행히도 Q&A 시스템이 잘 되어있어서 (즉문즉답) 간단히 해결했다.

 

Data source를 스파르타로 선택해주면 되는 아-주 간단쓰한 문제였음 ㅎㅎ

 

또 디폴트 세팅인 라이트모드를 다크모드로 바꾸고싶었는데 즉문즉답 게시판에도 윈도우환경에 대한 이야기밖에 없었...

구글링하면서 바로 찾았다...

 

 

맥북 DBeaver 다크모드 변환 방법

DBeaver를 처음 설치하게 되면 Light모드로 설치가 됩니다. 하얀색상에 번쩍 번쩍 눈을 많이 아프게 하져 요즘 다들 Dark모드로 설정해서 눈에 피로를 적게 하는 방법으로 사용을 합니다. DBeaver도 트

bobr2.tistory.com

요 블로그 참고하면 맥os기반에서 DBeaver 다크모드 변경방법 찾을 수 있으니까 참고하면 좋을 듯

 

 

2. SQL과 DB 살펴보기

2-1. 쿼리(query)문이란?

데이터베이스 DB에 명령을 내리는 것을 의미

 

여기서 Select 쿼리문은, DB에서 '데이터를 선택해서 가져오겠다' 라는 의미수업의 목적 = 데이터를 잘 뽑아내는 것.따라서 수업의 모든 쿼리문에는 Select가 들어간다.

 

2-2. Select 쿼리문 구성어떤 테이블에서 어떤 필드의 데이터를 가져올지 로 구성된다.

 

- 테이블 : 데이터가 담긴 엑셀 시트와 동일한 개념- 필드 : 테이블 내 각각 데이터 카테고리 

ex) order_no, created_at 등

 

 

 

3. Select, Where 절 

3-1. Where 절의 개념

: Where 절은, Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것을 의미

 

- oders라는 테이블에서 payment_method 중 'kakaopay'로 결제한 데이터만 추출

SELECT * FROM orders
WHERE payment_method = 'kakaopay'

*작은 따옴표 ''를 붙이는  이유?

: 문자열을 지칭하기 위함.
문자열이 아닌 경우 orders(테이블명) payment_method(필드명 지칭)으로 인식함

 

3-2. Seclet 쿼리문에 Where 절 함께 사용하기

: (1) 원하는 테이블과 (2) 조건을 명시해주면 됨

 

예시1) 포인트가 20,000점 보다 많은 유저만 뽑아보기

SELECT * FROM point_users
WHERE point > 20000

 point_users 테이블에서 point 필드(조건)가 20000이상인 데이터 출력

*숫자에는 '' 따옴표 사용하지 않음

 

예시2) 웹개발 종합반이면서 결제수단이 CARD인 주문건만  뽑아보기 (and 조건 사용)

SELECT * FROM orders
WHERE course_title = '앱개발 종합반' 
and payment_method = 'CARD'

 

 

3-3. Tips

1) show tables로 어떤 테이블이 있는지 먼저 살펴보기

2) 제일 원하는 정보가 있을 것 같은 테이블에 Select * from 테이블명 쿼리 날려보기

3) 원하는 정보가 없으면 다른 테이블에도 2)번 해보기

4) 테이블을 찾았다면 조건 걸 필드 찾기

5) Select * from 테이블명 Where 조건으로 쿼리 완성!

 

4. Limit과 Distinct, Count, etc...

4-1. 일부 데이터만 가져오기 : Limit

데이터의 양이 방대한 경우 데이터를 로딩하는데 시간이 오래 걸리면? = 비효율적

이런 경우를 대비해, 일부 데이터만 가져오는 Limit이라는 기능 사용

 

SELECT * FROM orders
WHERE payment_method = 'kakaopay'
limit 5

조건문에 맞는 데이터 딱 5개만 출력됨

+ 어떤 기준으로 5개만 추출되는지는 몰라서 즉문즉답 찾아보니 DB제품에 따라 차이가 있지만 기본적으로는 데이터가 쌓인 기준으로 값을 가져오게 된다고 함

 

4-2 중복 데이터는 제외하고 가져오기 : Distinct

고객이 사용한 결제수단이 어떤 종류가 있을지 궁금할 경우 distinct 기능을 사용해 데이터 필드의 종류를 알 수 있다.

SELECT DISTINCT(payment_method) from orders

Select Distinct(가져올 필드 이름) From (가져올 테이블 이름)

 

4-3 몇 개인지 숫자 세보기 : Count

내가 지정한 조건의 데이터가 몇개인지 세어볼 때 사용

SELECT count(*) from orders

count된 숫자가 Results 창에 나타남

 

+응용

SELECT COUNT(DISTINCT (name)) FROM users

users 테이블에서 name이 중복되지 않은 데이터의 수 

 

4-4 ETC...
- 같지 않음 조건 : !=

SELECT * FROM orders
WHERE payment_method != 'kakaopay'
#카카오페이가 아닌 페이먼트를 사용한 데이터만 추출

- 범위 조건 : between '범위1' and '범위2'

SELECT * FROM orders
WHERE created_at BETWEEN '2020-07-13'and'2020-07-15'
#2020-07-13~15일까지의 가입자 데이터가 추출

- 포함 조건 : where 필드명 in (1,3)

SELECT * FROM checkins
WHERE week in (1,2)
#week필드에서 1과 2가 포함하는 데이터만 추출

- 패턴 (문자열 규칙) 조건 :  like '%naver.com'

SELECT * FROM users
WHERE email like 'a%daum.net'
#email 'a'로 시작하고 끝이 'daum.net'으로 끝나는 데이터만 추출

---

 

쭉 정리하면서 복습안했으면 like나 in은 헷갈렸을 것 같지만 정리해서 참...다행....

1주차는 내일 마저 복습으로 마무리 해야겠다. 4주차 까지 무사히 완강하길 바라며 아디오슷

'SQL' 카테고리의 다른 글

[스파르타 코딩 클럽] SQL 강의 DAY2 : GROUP BY와 ORDER BY  (0) 2023.01.08