pocket

[SQL] 데이터 다루기(쿼리문, 비교연산자, 논리연산자, 산술연산자) 본문

데이터베이스/SQL

[SQL] 데이터 다루기(쿼리문, 비교연산자, 논리연산자, 산술연산자)

jpocket 2025. 4. 3. 12:00
반응형

📑학습 내용


  • ✅ 쿼리문 작성과 데이터 필터링
    • 쿼리문 작성하기(SELECT, FROM)
    • 전체 데이터 필터링하기(WHERE)
  • ✅ 비교 연산자 사용하기
    • =
    • != 또는 <>
    • >, >=
    • <, <=
  • ✅ 논리 연산자 사용하기
    • AND
    • OR
    • IN
    • NOT
  • ✅ 산술 연산자 사용하기
    • +, -, *, /

 

 

 


import os # 파일 경로 다룰 때 사용
import pandas as pd # pandas를 pd 별칭으로 사용, 데이터 분석을 위한 라이브러리
from pandasql import sqldf # sql문법을 사용하여 pandas 데이터프레임을 쿼리하는 기능

# pandasql을 전역 환경으로 지정
#mysql 람다함수를 정의, sql쿼리를 입력하면 sqldf를 실행
mysql = lambda q: sqldf(q, globals())

# 데이터 파일 경로 설정
data_dir = 'aiffel/sql_basic/'

# CSV파일을 불러와서 데이터프레임으로 저장'
# data_dir과 파일명을 합쳐 경로를 생성하고, 읽어옴

bike = pd.read_csv(os.path.join(data_dir, 'bike_dataset.csv'))
orders = pd.read_csv(os.path.join(data_dir, 'orders.csv'))
customers = pd.read_csv(os.path.join(data_dir, 'customers.csv'))
employees = pd.read_csv(os.path.join(data_dir,'employees.csv'))
ds_2020 = pd.read_csv(os.path.join(data_dir, 'DS_JobsSalaries_2020.csv'))
ds_2021 = pd.read_csv(os.path.join(data_dir, 'DS_JobsSalaries_2021.csv'))


print("데이터 준비 완료!")

위의 코드로 데이터가 잘 불러와지는지 확인..

 

 

 


🛠 쿼리문 작성 (SELECT, FROM, WHERE)

📌 (SELECT, FROM, WHERE)

select 원하는 칼럼명
from 테이블명
where 조건절

 

 

mysql("""

SELECT * FROM bike WHERE yr = 2012

""")

👉 bike 데이터베이스에서 필드명 yr이 2012 인 데이터를 모두(*) 조회하라.

 

 

 


🛠 비교 연산자

 

 

 


🛠 논리 연산자

  • 여러가지 조건을 주고 싶을 때 사용
  • 논리 연산자를 계속 추가하면 복잡한 조건도 쉽게 필터링

 

 

🛠 🔥IN

여러 개 중에서 한 가지라도 만족하면 해당 결과를 출력

같은 컬럼에서 같은 인자를 조건으로 줄 때 사용하는 것이 효율적

# OR 연산자 사용
mysql("""

SELECT *
FROM bike
WHERE mnth = 'Jan'
OR mnth = 'Mar' 
OR mnth = 'May'

""")


# IN 연산자 사용
mysql("""

SELECT *
FROM bike
WHERE mnth IN ('Jan', 'Mar', 'May')

""")

 

 

 

🛠 NULL

  • 0이나 공백과는 다르다.
  • 🔥 IS NULL 혹은 IS NOT NULL로 사용
  • null은 비교연산 할 수 없다.

ex) == null 혹은 != null ❌

 

 

 

🛠 Between A and B

🔥 A와 B를 포함한다.

 

 

 


🛠 산술 연산자

📌 우선순위

( )    >    *, /    >    +, -
  • 실무에서 많이 쓰이며 비즈니스를 위한 다양한 리포트를 작성할 때 필수적으로 사용

 

 

mysql("""  

SELECT dteday, dteday + 2, weekday , weekday + 3
FROM bike

""")

 

날짜나 문자 타입 데이터 경우에는 에러가 날 수 있어 산술 연산자를 사용하지 않는 것이 좋다.

반응형