SQL 테이블과 필드 / Where절

송은·2023년 9월 18일
0

테이블과 필드

  • 테이블: order라는 엑셀 시트처럼 데이터가 담긴 곳
  • 필드: order_no, created_at, course_title, user_id, payment_method, email

테이블 보기

show tables;

Ctrl+Enter를 입력해서 SQL문 실행!


테이블 데이터 가져오기

select * from orders;

: orders 테이블의 모든 정보들을 가져온다.


테이블의 특정 필드 가져오기

select created_at, course_title, payment_method, email from ordres;

: orders 테이블 내 created_at, course_title, payment_method, email 필드 가져오기


Where

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

예시

  • orders 테이블에서 결제수단이 카카오페이인 데이터만 가져오기
select * from orders
where payment_method = "kakaopay";
  • orders 테이블에서 주문한 강의가 앱개발 종합반이면서, 결제수단이 카드인 데이터만 가져오기
select * from orders
where course_title = "앱개발 종합반" and payment_method = "kakaopay";
  • 포인트가 20,000점보다 많은 유저만 가져오기
select * from point_users
where point > 20,000;

같지 않음 조건

같지 않음 조건은 != 로 걸 수 있다.

  • 웹개발 종합반을 제외한 주문 데이터 가져오기
select * from orders
where course_title != "웹개발 종합반";

범위 조건

범위 조건은 between 으로 걸 수 있다.

  • 7월 13일 ~ 7월 14일의 주문 데이터 가져오기
select * from orders
where created_at between "2020-07-13" and "2020-07-14";

포함 조건

포함 조건은 in 으로 걸 수 있다.

  • 1, 3주차 사람들의 체크인 데이터 가져오기
select * from checkins
where week in (1, 3);

패턴(문자열 규칙) 조건

패턴 조건은 like 로 걸 수 있다.

활용

  • example%" - 필드값이 example로 시작하는 모든 데이터
  • %example” - 필드값이 example로 끝나는 모든 데이터
  • %ex%” - 필드값에 ex를 포함하는 모든 데이터
  • a%o” - 필드값이 a로 시작하고 o로 끝나는 모든 데이터

  • 다음(daum) 이메일을 사용하는 유저 데이터 가져오기
select * from users
where email like "%daum.net";

이외 문법

일부 데이터 가져오기 (Limit)

테이블에 어떤 데이터가 있는지 확인할 때 전체 데이터를 가져오지 않고, 일부 데이터만 가져와서 확인할 때 사용할 수 있다.

select * from orders
where payment_method = "kakaopay"
limit 5;

중복 데이터 제외하고 가져오기 (Distinct)

distinct( ) 안에 중복값을 제거할 필드명을 넣어준다.

select distinct(payment_method) from orders;

개수 세기 (Count)

select count(*) from orders;


쿼리 작성팁

  • show tables 로 어떤 테이블이 있는지 살펴보기
  • 원하는 정보가 있을 것 같은 테이블에 select * from 테이블명 쿼리 날려보기
  • 원하는 정보가 없다면 다른 테이블에도 쿼리 날려보기
  • 테이블을 찾았다면 조건을 걸 필드 찾기
  • select * from 테이블명 where 조건 이렇게 쿼리 완성!

예시

  • 유저들의 성(family name)씨가 몇 개인지 가져오기
select count(distinct(name)) freom users;
  • 성이 남씨인 유저의 이메일만 추출하기
select email from users
where name = "남**";
  • Gmail을 사용하는 2020/07/12~13에 가입한 유저 정보 가져오기
select * from users
where created_at between "2020-07-12" and "2020-07-13"
and email like "%gmail.com";
  • Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수 세기
select count(*) from users
where created_at between "2020-07-12" and "2020-07-13"
and email like "%gmail.com";
profile
개발자

0개의 댓글