SQL (2)

HEEWON·2023년 10월 11일

Programming

목록 보기
2/5

Select 문

Select

: 데이터를 선택해서 가져올 때 가장 맨 앞에 Select 를 작성한다.
Select * from <table명> 의 형태로 데이터를 가져오겠다고 선언한다.
Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지 로 구성한다.

where 문

where

: Select 쿼리문으로 어떤 데이터를 가져올 것인지에 대한 내용을 작성해준다.

예1) point users table에서 point가 20000점 이상인 데이터를 가져올 때

point users 테이블의 데이터 전체(*)를 선택하고(select ~ from) 그 중에서 point가 20000점이 넘는 데이터만 보여줘라(where ~) 라는 의미이다.

예2) users 테이블에서 성이 황씨인 사람들의 데이터를 가져올 때

users 테이블의 데이터 전체(*)를 선택하고(select ~ from) 그 중에서 성이 황씨인 사람의 데이터만 보여줘라(where ~) 라는 의미이다.

❗잊지말고 기억하는 sparta 꿀팁❗
1) show tables로 어떤 테이블이 있는지 살펴보기
2) 제일 원하는 정보가 있을 것 같은 테이블에 select from 테이블명 쿼리 날려보기
3) 원하는 정보가 없으면 다른 테이블에도 2)를 해보기
4) 테이블을 찾았다! 조건을 걸 필드를 찾기
5) select
from 테이블명 where 조건 이렇게 쿼리 완성!

where문과 함꼐 자주 쓰이는 문법

  • '같지 않음' 을 나타내기
    : select * from orders
    where payment_method != 'kakaopay'
    != 는 다른 프로그래밍 언어의 문법에서도 마찬가지로 같지 않음을 나타낼 때 사용하는 연산자이다.
  • '범위' 조건 걸어보기
    : 10월 1일, 10월 5일의 주문데이터만 보고 싶다면,
    select * from orders
    where date between '2023/10/01' and '2023/10/05'
    '범위' 조건은 between 으로 걸 수 있다.
  • '포함' 조건 걸어보기
    : 1, 3주차 사람들의 '오늘의 다짐' 데이터만 보고 싶다면,
    select * from checkins
    where week in (1, 3);
    '포함' 조건은 in 으로 걸 수 있다.

  • '패턴' (문자열 규칙) 조건 걸어보기
    : 웹개발 종합반이면서 gmail을 사용하는 사람들의 데이터만 보고 싶다면,
    select * from orders
    where course_title = '웹개발 종합반' and email like '%gmail.com'

    → 패턴은 like를 사용해 조건을 걸 수 있다. % 를 함께 사용하면 % 조건 / 조건 % 로 쓰게 되면 앞 또는 뒤에 무슨 글자가 오든 % 다음에 오는 조건을 포함하는 데이터를 가져오게 된다.

이 외 유용한 문법들

  • 일부 데이터만 가져오기: Limit
    : 테이블에 어떤 데이터가 들어있나 잠깐 보려고 들어왔는데, 데이터를 다 불러오려면 시간이 오래걸릴 것이다.
    select * from orders
    where payment_method = "kakaopay"
    limit 5;

이런식으로 데이터가 5개만 출력된다.

  • 중복 데이터는 제외하고 가져오기: Distinct
    : select distinct(payment_method) from orders

요로케 중복된 데이터 없이 출력되는 것을 볼 수 있다.

  • 몇 개인지 숫자 세보기: Count
    : select count(*) from orders

order 테이블에 들어있는 데이터 수를 세서 알려준다.

SQL 공부와 팀 프로젝트를 마치며

오늘의 tmi

팀프로젝트가 무사히 끝났다. 그런데 다면평가에 내 이름이 없다는 것..
아수워 죽음.. 열심히 했는데..
그리고 sql 너무 재미따..

profile
카페 알바생에서 개발자로 ⛳

0개의 댓글