모든 쿼리문에서는 select가 들어감
Select : 쿼리문은 어떤 테이블에서 어떤 필드의 데이터를 가져올지가 핵심임
테이블은 전체, 필드는 특정 구간으로 해석하면 편함
Select의 가장 기초적인 사용법은 Where 절이며 이는 특정 데이터만 가져오고 싶을때 사용
: 조건을 거는 법이라 해석이 됨
내가 배울 강의 테이블을 간단히 정리하자면
- checkins : 강의실 들어오면서 남기는 '오늘의 다짐'들어있음
- courses : 개설 강좌 정보
- enrolleds : 유저별 강좌 유저별 들을 수 있는 영상 + 여부
- orders : 수강등록 정보
- point_users : 유저별 포인트 점수
- users : 유저 정보
SQL을 쓸때 Tip은
1. 길어지면 알아보기 힘들기에, 줄을 잘 맞춰 가독성을 좋게해라
2. ' '안에 있는 데이터는 문자열이며, 아닌 것은 테이블, 필드, 숫자가 있다.
기본 문법
= : 필드의 정확한 데이터를 찾고 싶을때 사용
[예시] 성이 김씨인 유저를 추출 : where name = '김**'
<=, >= : 필드의 데이터 특정한 데이터를 찾고 싶을때 사용
[예시] 20000이상의 포인트를 가진 유저를 추출 : where point <= 20000
!= : 필드의 정확한 데이터를 제외한 나머지를 찾고싶을 때 사용
[예시] 김씨가 아닌 유저를 추출 : where name != '김**'
and(그리고) : 자세하게 찾고 싶을 때 사용
[예시] 성이 김씨면서 카카오페이로 결제한 유저 추출 : where name = '김**' and payment = 'kakaopay'
or (또는) : 특정 데이터를 가진 것을 보고 싶을 때 사용
[예시] 성이 김씨거나 카카오페이로 사용한 유저 추출 : where name = '김**' or payment = 'kakaopay'
between(범위) : 필드의 특정 범위 안에 있는 데이터를 찾고 싶을때 사용
[예시] 2000포인트 이상 3000포인트 이하를 가진 유저 추출 : where point between 2000 and 3000
in (포함, 포함) : 필드의 특정 포함 데이터를 추출하고 싶을 때 사용
[예시] 이름이 김씨 또는 이씨의 유저를 추출 : where name in('김**','이**')
like(패턴) : 필드의 데이터를 특정 데이터를 사용한 것을 추출하고 싶을때 사용
[예시] 네이버 이메일(@naver.com)을 사용한 유저 : where email like '%@naver.com'
추가 문법 : Limit, Distinct, Count
limit :제한을 걸어 적은 숫자 만큼 보여줌.(일부 데이터만 가져오기)
[예시] 네이버 이메일을 사용 한 유저 3명 추출 : where email like '%@naver.com' limit 3
distinct : 중복 제거하고 볼 수 있음
[예시] : 결제 수단을 추출 : select distinct(payment) from orders
count : 종류가 몇개인지 볼 수 있음
[예시] 네이버 이메일을 사용하는 유저가 몇명인지 추출 :
select count(*) from users
WHERE email like '%@naver.com'
원하는 정보를 찾고 싶을때 Tip
1. 가장 우선시 어떤 테이블이 있는지 show tables을 통해 살펴보기
2. 원하는 정보가 있을 것 같은 테이블을 select * from 테이블명 으로 쿼리 날려보기
3. 원하는 정보가 없다면 다른 테이블 해보기
4. 테이블을 찾았으면 조건을 걸 필드를 찾기
5. select*form 테이블 명 where 조건 이렇게 쿼리 완성
정리
SQL을 통해 내가 원하는 데이터를 추출할 수 있는 방법에 대해 간단히 알아봤다.
배우면서 느낀건 직접해보는 것도 중요하지만, 강사님의 두가지 말씀을 세겼다
1. 바로 바로 써먹기
내 것으로 만들려면, 배운것을 직접 써봐야 한다.
2. 삽질의 중요성
에러를 보더라도 바로 묻지말고, 스스로 해결 하면서 감을 익히는 것도 중요하다.
이 후 똑같은 에러를 봤을 경우 그 이유를 쉽게 기억해낼 수 있기에 빠르게 해결 할 수 있다.