SQL 이란? Select 와 Where

murphytklee·2023년 4월 18일
0
post-thumbnail

[목표]

  1. 데이터베이스(DB)와 SQL이 왜 필요한지 이해한다.
  2. DB에서 데이터를 가져오는 기초적인 문법인 Select와 Where문을 이해한다.
  3. 조금 더 복잡한 분석을 위해 자주 사용되는 유용한 문법을 익힌다.

1. 데이터 베이스란?

📌 원하는대로 데이터를 저장하고 사용하기 위해서 모든 데이터베이스는 CRUD에 해당하는 기능을 지원한다.

C (Create): 데이터 생성
R (Read): 저장된 데이터 읽기
U (Update): 저장된 데이터 변경
D (Delete): 저장된 데이터 삭제


2. SQL이 왜 필요할까?

📌 SQL(Structured Query Language)은 데이터베이스에 요청 (Query)을 보내서 원하는 데이터를 가져오는 데 도움을 주는 언어이다.

  • 데이터를 읽어오는 과정인 "R (Read)"를 엄청나게 편하게 만들어 준다. 또한, 데이터를 손쉽고 깔끔하게 정리/분석하는 기능도 지원한다.

3. Select 쿼리문이란?

📌 쿼리(Query)문이란 데이터베이스에 명령을 내리는 것을 의미한다.

  • 여기서 Select 쿼리문은, 데이터베이스에서 '데이터를 선택해서 가져오겠다'는 의미한다.

  • Select 쿼리문은 1) 어떤 테이블에서 2) 어떤 필드의 데이터를 가져올지 로 구성된다.

4. Where 특정 데이터만 가져오고 싶을 때

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

💡 Select 쿼리문에 Where 절 함께 써보기 팁

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


5. Where 절과 자주 같이 쓰는 문법 써보기

  • '같지 않음' 조건: !=

    ```sql
    select * from orders
    where course_title != ''
    ```

  • '범위' 조건: between

    ```sql
    select * from orders
    where created_at between "2020-07-13" and "2020-07-15";
    ```

  • '포함' 조건: in

    ```sql
    select * from checkins 
    where week in (1, 3);
    ```

  • '패턴' (문자열 규칙) 조건 걸어보기: 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 users
      where email like '%[daum.net](http://daum.net/)';

  • 일부 데이터만 가져오기: Limit
    select * from orders 
    where payment_method = 'kakaopay'
    limit 5

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

  • 몇 개인지 숫자 세보기: Count
    select count(*) from orders
    where payment_method = 'kakaopay'

  • [응용] Distinct와 Count를 같이 써보기
    SELECT count(distinct(name)) from users;

✏️ naver 이메일을 사용하면서, 웹개발 종합반을 신청했고 결제는 kakaopay로 이뤄진 주문데이터 추출하기

select * from orders
where email like '%naver.com'
and course_title = '웹개발 종합반'
and payment_method = 'kakaopay'
profile
murphytklee.tistory.com 이사갑니다. 옮겨지는 게시글은 비공개 처리합니다.

0개의 댓글

관련 채용 정보