SQL 1주차 개발일지

이대희·2022년 5월 7일
0

SQL

목록 보기
1/4
post-thumbnail

SQL 1주차 수업
"SQL은 Structured Query Language의 약자"

결국 데이터베이스에 요청 (Query)을 날려서 원하는 데이터를 가져오는 것을 도와주는 언어

"SQL을 잘 하기 위해서는 복잡한 개념을 모두이해하는것이아닌 반복적으로 써보고 감과 원리를 익혀가는것이 중요"

DB와 SQL의 필요성

예)배달음식점 운영
규모가 크지않을때에 엑셀시트에 주문내역을 정리.
장사가 커지기 시작하자 주문을 기록해주고 일을 도와줄 직원 여러명 고용.

문제-데이터가 많아지면서 엑셀시트가 느려지고
여러사람이 작업하는 내용이충돌,취소된 주문에 배달이 나감.

해결-데이터베이스 모든 주문데이터 저장.

1) 필요한 데이터만 불러와서 작업할 수 있어서 속도는 빨라졌고
2) 충돌이 생겼을 경우 에러를 띄우는 기능을 추가해서 충돌로 생기는 문제도 사라졌어요.

기초개념

C (Create): 데이터의 생성을 의미
R (Read): 저장된 데이터를 읽어오는 것을 의미
U (Update): 저장된 데이터를 변경
D (Delete): 저장된 데이터를 삭제하는 것을 의미

select 데이터베이스에서 데이터를 선택해서 가져오는것
예)select from oreders
+카카오페이로 결제한 건만 구할경우
where payment_method = "kakaopay"
+~에서 ~로 결제한 사람
where course_title = "앱개발 종합반" and payment_method = "kakaopay"
+포인트가 20000점보다 많은 유저만 뽑아보기
select
from point_users
where point > 20000
+성이 ~씨인사람 뽑기
select from users
where name = "황**"
+조건이 같이 않은사람 찾기 (!=)
select
from orders
where course_title != "웹개발 종합반"
+범위 조건 걸어보기 (between)
select from orders
where created_at between "2020-07-13" and "2020-07-15"
+포함 조건 걸어보기(in)
select
from checkins
where week in (1, 3)
+패턴(문자 구조열 규칙)조건 걸어보기
select * from users
where email like '%daum.net'

  • S로시작해서 t로끝나는것(s@.**t) 조건
    ~like 's%t' 이메일
    +where email like '%co%' email 필드값에 co를 포함하는 모든 데이터
  • 20000~30000 포인트 보유하고 있는 유저만 추출
    select from point_users
    where point between 20000 and 30000
    +이메일이 s로 시작하고 com로 끝나면서 성이 이씨인 유저만 추출
    select
    from users
    where email like 's%com' and name = "이"
    +일부 데이터만 가져오기 (limit)
    select from orders
    where payment_method = "kakaopay"
    limit 5
    +중복 데이터는 제외하고 가져오기 (Distinct)
    select distinct(payment_method) from orders
    +몇개인지 숫자 세보기(count)
    select count(
    ) from orders
    +Distinct와 Count를 같이 써보기
    SELECT count(distinct(name)) from users
    +성이 남씨인 유저의 이메일만 추출
    select email from users
    where name = "남
    "
    +Gmail을 사용하는 2020/07/12~13에 가입한 유저를 추출하기
    select from users
    where created_at between "2020-07-12" and "2020-07-13"
    and email like "%gmail.com"
    +Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수를 세기
    select count(
    ) from users
    where created_at between "2020-07-12" and "2020-07-14"
    and email like "%gmail.com"

+응용
naver 이메일을 사용하면서, 웹개발 종합반을 신청했고 결제는 kakaopay로 이뤄진 주문데이터 추출하기
select * from orders
where email like '%naver.com'
and course_title = '웹개발 종합반'
and payment_method = 'kakaopay'

profile
자신감을 얻고 싶다.

0개의 댓글