수업 목표
- DB와 SQL의 필요성에 대한 이해
- DB에서 데이터를 가져오는 기초적인 문법인 Select와 Where문을 이해
- 조금 더 복잡한 분석을 위해 자주 사용되는 유용한 문법을 익힌다.
DB와 SQL의 필요성
적은 양의 데이터는 엑셀을 통해 관리하기 편리하지만, 데이터가 많아질수록 작업속도가 점점 느려지고, 충돌하는 경우가 발생할 가능성이 올라간다.
DB를 사용한다면
필요한 데이터만 불러와서 작업할 수 있어 속도가 빨라졌고,
충돌이 발생할 경우 에러를 띄우는 기능을 추가할 수 있어, 충돌시 발생하는 문제에 대처가 가능해진다.
아주 작은 회사에서는 불필요하겠지만, 많은 양의 데이터를 효과적으로 저장/수정/사용하기 위해서는 데이터베이스가 필요하다.
DB의 기초 개념
DB는 원하는대로 데이터를 저장하고 사용하기 위한 도구이다. 모든 DB는 CRUD에 대한 기능을 지원하며 이는 풀어서 설명하면 다음과 같다.
- Create: 데이터의 생성을 의미
- Read: 저장된 데이터를 읽어오는 것을 의미
- Update: 저장된 데이터를 변경
- Delete: 저장된 데이터를 삭제
SQL의 필요성
SQL은 데이터를 읽어오는 과정인 "R"을 엄청나게 편리하게 해준다. 그리고 데이터를 손쉽고 깔끔하게 정리/분석하는 기능도 지원한다.
크게 4주차로 분류되고
- 1주차: Select, Where
- 2주차: Group by, Order by
- 3주차: Join
- 4주차: Subquery, 그 외
DBeaver은 SQL을 보다 손쉽게 사용할 수 있도록 도와주는 도구라고 한다.
select * from users
where name = "황**";
select * from orders
where course_title = "웹개발 종합반" and payment_method = "CARD";
select * from orders
where course_title != "웹개발 종합반";
select * from orders
where created_at between "2020-07-13" and "2020-07-15";
select * from checkins
where week in (1, 3);
select * from users
where email like '%daum.net';
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로 끝나는 모든 데이터
select * from orders
where payment_method = "kakaopay"
limit 5;
select distinct(payment_method) from orders;
select count(*) from orders
SELECT count(distinct(name)) from users;
퀴즈 풀기
성이 남씨인 유저의 이메일만 추출하기
select u.email from users u
WHERE name Like "남%"
Gmail을 사용하는 2020/07/12~13에 가입한 유저를 추출하기
select * from users u
WHERE email Like "%gmail.com" AND created_at BETWEEN "2020-07-12" AND "2020-07-14"
Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수를 세기
select COUNT(*) from users u
WHERE email Like "%gmail.com" AND created_at BETWEEN "2020-07-12" AND "2020-07-14"
숙제: naver 이메일을 사용하면서, 웹개발 종합반을 신청했고 결제는 kakaopay로 이뤄진 주문데이터 추출하기
select * from orders o
WHERE email Like '%naver.com' AND payment_method = 'kakaopay' AND course_title = '웹개발 종합반'
배운 것. 별칭으로 select 간소화, between뒤에는 대소 비교가 가능한 data들이 올수 있다.
'항해99 > 개강 준비 과정 - 필수 트랙' 카테고리의 다른 글
엑셀보다 쉬운 SQL - 3주차(2024-01-26) (1) | 2024.01.27 |
---|---|
엑셀보다 쉬운 SQL - 2주차(2024-01-25) (0) | 2024.01.25 |