본문 바로가기

내배단_SQL

내배단 SQL 1주차 개발일지

1주차 오늘 배울 것

 

 

아주 작은 회사에서는 불필요하겠지만, 많은 양의 데이터를 효과적으로 저장/수정/사용하기 위해서는 데이터베이스가 필요

👉 데이터베이스란? 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통이라고 생각하면 되어요.

 

👉 원하는대로 데이터를 저장하고 사용하기 위해서는 다양한 기능이 있어야겠죠?

     그래서 통상적으로, 모든 데이터베이스는 CRUD에 해당하는 기능을 지원해요.

 

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

 

 SQL과 데이터베이스 살펴보기

 

👉 쿼리(Query)문이란?

쿼리는 질의를 의미 / 데이터베이스에 명령을 내리는 것을 의미

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

 

Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지 로 구성됩니다.

  • 테이블: orders라는 엑셀 시트명 보이시죠? 테이블은 데이터가 담긴 엑셀 시트와 동일합니다. 이런 형태의 값이 데이터베이스에 담기면, orders라는 이름의 테이블이 되겠죠.
  • 필드: order_no, created_at, course_title, user_id, payment_method, email 각각이 필드입니다.

 

  • 스파르타 데이터베이스의 구조
    • checkins: 여러분이 강의실 들어오시며 남기는 '오늘의 다짐'이 들어있어요
    • courses: 스파르타의 개설 강좌 정보가 들어있어요
    • enrolleds: 유저별 강좌 등록정보가 들어있어요
    • enrolleds_detail: 유저별 들을 수 있는 영상과, 들었는지 여부가 들어있어요
    • orders: 주문 (수강등록) 정보가 들어있어요
    • point_users: 유저별 포인트 점수가 들어있어요
    • users: 유저 정보가 들어있어요
      👉 스파르타 데이터베이스에는 아래와 같은 테이블이 있어요.

 

Select, Where 절 등 문법 연습해보기

 

orders 테이블에서 결제수단이 카카오페이인 데이터만 가져와줘!

 

point_users 테이블에서 포인트가 5000점 이상인 데이터만 가져와줘!
orders 테이블에서 주문한 강의가 앱개발 종합반이면서, 결제수단이 카드인 데이터만 가져와줘!

 

[퀴즈] 포인트가 20000점보다 많은 유저만 뽑아보기
[퀴즈] 성이 황씨인 유저만 뽑아보기
[퀴즈] 웹개발 종합반이면서 결제수단이 CARD인 주문건만 뽑아보기!

 

 

 

 👉 [꿀팁🍯] 이렇게 쿼리를 작성하면 편해요!

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

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

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

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

5) select * from 테이블명 where 조건 이렇게 쿼리 완성!

 

 

 Where 절과 자주 같이쓰는 문법 배우기

 

'같지 않음' 조건은 !=

'!=' 에서 ! (느낌표)는 부정 (not)을 의미합니다. '='는 같음을 의미하니, '!='는 같지 않음이겠죠!

 

'범위' 조건은 between

'포함' 조건은 in

'패턴' 조건은 like

  • where email like 'a%'        : email 필드값이 a로 시작하는 모든 데이터
  • where email like '%a'        : email 필드값이 a로 끝나는 모든 데이터
  • where email like '%co%'    :  email 필드값에 co를 포함하는 모든 데이터
  • where email like 'a%o'      : email 필드값이 a로 시작하고 o로 끝나는 모든 데이터

 

[퀴즈]

[퀴즈] 결제수단이 CARD가 아닌 주문데이터만 추출해보기

 

[퀴즈] 20000~30000 포인트 보유하고 있는 유저만 추출해보기

 

[퀴즈] 이메일이 s로 시작하고 com로 끝나는 유저만 추출해보기
[퀴즈] 이메일이 s로 시작하고 com로 끝나면서 성이 이씨인 유저만 추출해보기

 

일부 데이터만 가져오기: Limit

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

몇 개인지 숫자 세보기: Count

 

[응용] Distinct와 Count를 같이 써보기

 

에러메시지

Where 절에 있는 kakaopay라는 컬럼(필드)가 알려지지 않았다 (컴퓨터는 알지 못한다) 라는 것입니다. 즉, kakaopay라는 글자가 '컬럼(필드)' 이름으로 인식되어서 발생한 에러에요.
이메일이랑 이름을 연결하는 연결고리 필요!

퀴즈 풀어보기

 

성이 남씨인 유저의 이메일만 추출하기
Gmail을 사용하는 2020/07/12~13에 가입한 유저를 추출하기
Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수를 세기

숙제

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

 

'내배단_SQL' 카테고리의 다른 글

SQL 문법 총정리  (0) 2022.04.17
내배단 SQL 4주차 개발일지  (0) 2022.04.17
내배단 SQL 3주차 개발일지  (0) 2022.04.16
내배단 SQL 2주차 개발일지  (0) 2022.04.13