SQL 1주차

손문수·2021년 5월 11일
0

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

원하는대로 데이터를 저장하고 사용하기 위해서는 다양한 기능이 있어야겠죠? 그래서 통상적으로, 모든 데이터베이스는 CRUD에 해당하는 기능을 지원해요.

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

점점 어려워진다고요? 괜찮아요!
이 강의에서는, 저장된 데이터를 읽어오는 "R (Read)"에 대해서만 배울 것이랍니다.

자, 그럼 SQL은 왜 필요할까요?
데이터를 읽어오는 과정인 "R (Read)"를 엄청나게 편하게 만들어줍니다. 그리고, 데이터를 손쉽고 깔끔하게 정리/분석하는 기능도 지원한답니다!

열심히 저장된 데이터, 잘 가져다 써야겠죠?

SQL은 Structured Query Language의 약자인데요, 결국 데이터베이스에 요청 (Query)을 날려서 원하는 데이터를 가져오는 것을 도와주는 언어라는 의미에요!

쿼리(Query)문이란? 쿼리는 질의를 의미하죠. 데이터베이스에 명령을 내리는 것을 의미합니다.

여기서 Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미입니다.
Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지 로 구성됩니다.

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

show tables; 모든 테이블 찾기
select * from orders; orders 테이블의 데이터 가져와보기
select created_at, course_title, payment_method, email from orders; orders 테이블의 특정 필드만 가져와보기

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

select * from orders
where payment_method = "kakaopay";
orders 테이블에서 payment_method가 kakaopay인 것만 가져와줘!

select * from point_users
where point > 20000;
포인트가 20000점보다 많은 유저만 뽑아보기!

select * from users
where name = "황**";
성이 황씨인 유저만 뽑아보기

select * from orders
where course_title = "웹개발 종합반" and payment_method = "CARD";
웹개발 종합반이면서 결제수단이 CARD인 주문건만 뽑아보기!

Querty 작성 꿀팁
1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select from 테이블명 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았다! 조건을 걸 필드를 찾기
5) select
from 테이블명 where 조건 이렇게 쿼리 완성!

select * from orders
where course_title != "웹개발 종합반"
'같지 않음' 조건 걸어보기(같지 않음)

select * from orders
where created_at between "2020-07-13" and "2020-07-15";
7월 13일, 7월 14일의 주문데이터(범위)

select * from checkins
where week in (1, 3);
1, 3주차 사람들의 '오늘의 다짐' 데이터만(포함)

select * from users
where email like '%daum.net';
다음 (daum) 이메일을 사용하는 유저만(조건)
**

  • 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로 끝나는 모든 데이터
    **

select * from orders
where payment_method = "kakaopay"
limit 5;
일부 데이터만 가져오는 Limit이라는 기능

select distinct(payment_method) from orders;
중복 데이터는 제외하고 가져오기: Distinct

select count(*) from orders
몇 개인지 숫자 세보기: Count

profile
웹개발자를 꿈꾸며

0개의 댓글