SQL의 WHERE로 데이터베이스 레코드 필터링하기
이제 데이터베이스의 어떤 테이블에서든 기본 SQL 쿼리를 실행해 레코드를 선택할 수 있고, 특정 열이나 행 수만 선택하도록 간단한 커스터마이징도 할 수 있어요.
SQL 실력을 한 단계 끌어올리는 데 도움이 되는 표준 기법이 몇 가지 더 있어요.
예를 들어, Chinook 데이터베이스의 Customer 테이블에서 Country가 'Canada'인 모든 레코드를 가져오고 싶다고 해볼게요. SQL에서는 다음과 같이 SELECT 문 뒤에 WHERE 절을 붙여 아주 쉽게 할 수 있어요:
SELECT * FROM Customer WHERE Country = 'Canada'
사실 WHERE 절을 사용하면 어떤 조건이든 SELECT 문을 필터링할 수 있어요. 이를 레코드를 필터링한다고 해요.
이번 인터랙티브 연습에서는 Employee 테이블에서 'EmployeeId'가 6보다 크거나 같은 모든 레코드를 선택해 볼 거예요.
패키지는 이미 다음과 같이 임포트되어 있어요:
import pandas as pd
from sqlalchemy import create_engine
그럼 쿼리를 실행해 보세요!
이 연습은 강의의 일부입니다
Python에서 데이터 가져오기 입문
연습 안내
- SQLite 데이터베이스
'Chinook.sqlite'용 엔진이 생성되도록create_engine()의 인수를 완성하세요. Employee테이블에서'EmployeeId'가6보다 크거나 같은 레코드를 모두 선택하는 쿼리를 실행하세요.>=연산자를 사용하고 결과를rs에 할당하세요.rs에fetchall()메서드를 적용해 모든 레코드를 가져오고, 이를 DataFramedf에 저장하세요.rs객체를 사용해 DataFrame의 열 이름을 테이블 열 이름과 동일하게 설정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create engine: engine
engine = create_engine(____)
# Open engine in context manager
# Perform query and save results to DataFrame: df
with engine.connect() as con:
rs = con.execute(____)
df = pd.DataFrame(____)
df.columns = ____
# Print the head of the DataFrame df
print(df.head())