[수업 목표]
1. 데이터베이스(DB)와 SQL이 왜 필요한지 이해한다.
2. DB에서 데이터를 가져오는 기초적인 문법인 Select와 Where문을 이해한다.
3. 조금 더 복잡한 분석을 위해 자주 사용되는 유용한 문법을 익힌다.
데이터베이스(DB)와 SQL이 왜 필요할까?
많은 양의 데이터를 효과적으로 저장/ 수정/사용하기 위해서는 데이터베이스가 필요.
데이터베이스(DB)의 기능
C (Create): 데이터의 생성
R (Read): 저장된 데이터를 읽어오는 것
U (Update): 저장된 데이터를 변경
D (Delete): 저장된 데이터를 삭제
SQL(Structured Query Language)은 데이터를 읽어오는 과정인 R (Read)를 편하게 만들고, 데이터를 손쉽고 깔끔하게 정리/분석하는 기능을 지원한다.
Select 쿼리문의 개념
쿼리(Query)문 - 데이터베이스에 명령을 내리는 것
Select 쿼리문 - 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미.
Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지 로 구성된다.
ex) orders 테이블의 데이터 가져와보기
select * from orders; (혹은 필요한 필드만 조회하려면 해당 필드명을 ,로 구분)
Where 절의 개념
Select 쿼리문으로 가져올 데이터에 조건을 걸어주는 것
ex) orders 테이블에서 결제방식이 kakaopay인 데이터 가져오기
select * from orders
where payment_method = "kakaopay";
※ kakaopay를 필드명이나 테이블명이 아닌 문자열로 인식시키기 위해 큰따옴표를 붙인다
and 연산자 - 조건을 추가
비교 연산자
연산자 앞뒤에 있는 데이터 값을 비교하는 데 사용한다. 문자열은 알파벳 순서로 문자열의 대소를 비교한다.
ex) >, >=, <, <=
+등가 비교 연산자 : 연산자 양쪽 항목이 같은 값인지 검사하는 연산자
ex) = , !=, <>, ^= : =를 제외한 3개는 모두 같은 의미 (≠)
범위 조건 - between
ex)7월 13일, 7월 14일 주문데이터 가져오기
select * from orders
where created_at between "2020-07-13" and "2020-07-15";
포함 조건 - in
패턴 (문자열 규칙) 조건 - like
ex) 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로 끝나는 모든 데 이터
일부 데이터만 가져오기: Limit
중복 데이터는 제외하고 가져오기: Distinct
몇 개인지 숫자 세보기: Count
[응용] Distinct와 Count를 같이 써보기
ex) 회원들의 성(family name)씨의 개수 세보기
SELECT count(distinct(name)) from users;
※ 같이 삽질해보기
SQL을 사용하다보면 예상하지 못했던 에러를 자주 마주하게 된다.
에러 메시지를 보고 원인을 파악하여 문제를 해결해 나가자.