개발자 되는 중/개발 공부

스파르타 코딩 SQL 개발일지 1주차

SeonChoco 2022. 9. 15. 16:26

01. 데이터 베이스와  SQL이 필요한 이유

 

데이터 베이스는 방대한 양의 데이터를 편하게 이용하기 위해서 있는거다.

책장에 책을 잘 정리하는 이유는 잘 꺼내서 사용하기 위해서인것 처럼

 

데이터 역할 4가지

C  Create 데이터 생성

R Read 저장된 데이터 읽어오기

U Upgrade 저장된 데이터 변경

D Delete 저장된 데이터 삭제

 

이 강의에서는  Read에 대해서만 배울거다.

 

SQL은 데이터베이스에 명령을 내리는 데 필요한 약속된 명령이나 언어

 

02. Dbeaver: SQL을 손쉽게 사용하게 도와주는 프로그램

 

03. Select 쿼리문이란?

Query: 질의를 의미, 데이터베이스에 명령을 내리는 것

Select 쿼리: 데이터베이스에서 선택해서 가져오겠다는 의미

 

테이블과 필드?

테이블: 엑셀 시트에 해당

필드: 엑셀 콜럼에 해당 

 

코드모양을 누름

파란 네모 모양을 눌러서 New script를 만듦

쌓인 원통 모양을 눌러서 sparta 폴더를 선택해줘야함 안 했더니 명령어가 안 떠서 즉문즉답 이용함

 

select * from orders // *은 다 선택한다는 뜻

select order_no, created_at from orders//  order_no, created_at라는 이름의 필드만 가져온다

 

05. 특정 데이터만 가져오고 싶으면 Where

 

select * from orders 

where payment_method = 'kakaopay' // orders는 테이블 명 payment_method는 필드명  이라 문자열이랑 다름

kakaopay는 문자열이라서 작은 따옴표 넣어줘야함

 

줄을 잘 맞춰야해

기준은 눈에 보기 좋게

회사마다 달라

 

select * from point_users 
where point > =5000 // pointusers 테이블에서 point 필드에서   5000 이상인것

 

select * from orders
where course_title = "앱개발 종합반" and payment_method = "CARD";

// 조건을 여러 개 넣을 땐 and를 사용하면 된다. 

조건에 들어가는 문자열의 대소문자는 상관이 없다. 그러나 웬만하면 딱 맞춰서 써주는 것이 보기좋다. 

 

07. where 절과 자주 같이 쓰는 문법

같지 않음: !=

select * from orders
where course_title != "웹개발 종합반";

범위: between ~ and~ // 13일 14일만 나옴 뒤의 날짜는 포함하지 않음

select * from orders
where created_at between "2020-07-13" and "2020-07-15";

포함: in ()

select * from checkins where week in (1, 3);

패턴( 문자열 규칙): like ' % ' 

select * from users 
where email like '%daum.net';

08. 그 외 유용한 문법

limit : 데이터 생김새만 확인하고 싶은데 데이터가 너무 방대할 때 불러올 양을 제한해줌

select*from orders
where payment_method = 'kakaopay'
limit 5

distinct: 중복 제거하고 보기

select distinct(payment_method) from orders

kakaopay
CARD
TAXBILL
MONEY

 

count:  갯수 세기

select count(*) from orders
where payment_method = 'kakaopay'

56

 

distinct & count 같이 쓰기

select count(distinct(name)) from users

54

 

09. 같이 삽질하기

에러 메세지 파악하고 해결하려고 하기

영어로 뜨는 에러 메세지를 잘 읽어보면 답이 나올때가 많음

 

10. 퀴즈

성이 남씨인 유저의 이메일만 추출하기

select email from users
where name like '남%'

 

Gmail을 사용하는 2020/07/12~13에 가입한 유저를 추출하기

select * from users
where email like '%gmail.com' 
and created_at between '2020-07-12' and '2020-07-14'

 

Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수를 세기

select count(*) from users
where email like '%gmail.com' 
and created_at between '2020-07-12' and '2020-07-14'

11. 숙제: naver 이메일을 사용하면서, 웹개발 종합반을 신청했고 결제는 kakaopay로 이뤄진 주문데이터 추출하기

select * from orders
where email like '%naver.com'
and course_title = '웹개발 종합반'
and payment_method = 'kakaopay'