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