본문 바로가기
스파르타코딩클럽

[내일배움단] 엑셀보다 쉬운 SQL - 1주차

by [정보노트] 주니 2022. 12. 27.
반응형

* 데이터베이스란? 여러 사람들이 같이 사용할 목적으로 데이터를 담는 통

 

* 모든 데이터베이스는 CRUD에 해당하는 기능을 지원

- C (Create): 데이터의 생성을 의미

-  R (Read): 저장된 데이터를 읽어오는 것을 의미

-  U (Update): 저장된 데이터를 변경을 의미

-  D (Delete): 저장된 데이터를 삭제하는 것을 의미

 

* SQL은 Structured Query Language의 약자

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

 

* 테이블과 필드 구분

- 테이블: orders라는 엑셀 시트명 보이시죠? 테이블은 데이터가 담긴 엑셀 시트와 동일

- 필드: order_no, created_at, course_title, user_id, payment_method, email 각각이 필드

 

* Show tables(모든 테이블을 보여줘)

 

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

- Select * from orders(orders 테이블의 모든 필드를 선택해서 가져와)

- Select email from orders(orders 테이블에서 email 필드를 선택해서 가져와)

 

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

- select * from orders

   where payment_method = "kakaopay"

  (orders 테이블에서 payment_method 필드가 kakaopay인 것만 가져와)

- select * from orders

   where course_title = "앱개발 종합반"

   and payment_method = "kakaopay"

  (orders 테이블에서 coures_title 필드가 앱개발 종합반이고 payment_method 필드가 kakaopay인 것만 가져와)

 

* Where 절과 자주 같이쓰는 문법

- 같지 않음' 조건은 "!=" 로 걸 수 있어요

  (select * from orders

   where course_title != "웹개발 종합반" /

   orders 테이블에서 coures_title 필드가 앱개발 종합반이 아닌 것만 가져와)

- '범위' 조건은 "between" 으로 걸 수 있어요

  (select * from orders

   where created_at

   between "2020-07-13" and "2020-07-15" /

  orders 테이블에서 created_at 필드가 2020-07-13부터 2020-07-15까지인 것만 가져와)

- '포함' 조건은 "in" 으로 걸 수 있어요

  (select * from checkins

   where week in (1, 3) /

  checkins 테이블에서 1, 3주차인 것만 가져와)

- '패턴' 조건은 like 으로 걸 수 있어요

  (select * from users

   where email like '%daum.net' /

  users 테이블에서 이메일 필드가 daum.net인 것만 가져와)

 

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

- select * from orders

   where payment_method = "kakaopay" limit 5

  (orders 테이블에서 payment_method 필드가 kakaopay인 것만 가져오고 목록은 5개만 표시해)

 

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

- select distinct(payment_method) from orders

  (orders 테이블에서 payment_method 필드만 가져오는데 중복은 지워)

 

* 몇 개인지 숫자 세보기: Count

- select count(*) from orders

  (orders 테이블의 데이터 갯수를 알려줘)

반응형