ประสิทธิภาพของ SQL อยู่ที่ความสัมพันธ์ระหว่างตาราง: INNER JOIN
ในแบบฝึกหัดนี้ คุณจะได้ลอง INNER JOIN เป็นครั้งแรก โดยใช้ฐานข้อมูล SQLite ที่คุ้นเคยอย่าง Chinook.sqlite เป้าหมายคือดึงข้อมูล Title จากตาราง Album พร้อมกับ Name ของศิลปินจากตาราง Artist ซึ่งต้องใช้ INNER JOIN เชื่อมสองตารางนี้เข้าด้วยกันผ่านคอลัมน์ ArtistID
สำหรับการ INNER JOIN ตาราง Orders และ Customers จากฐานข้อมูล Northwind Hugo ใช้ SQL query ดังนี้:
"SELECT OrderID, CompanyName FROM Orders INNER JOIN Customers on Orders.CustomerID = Customers.CustomerID"
โค้ดด้านล่างนี้ถูกรันไปแล้ว เพื่อนำเข้าแพ็กเกจที่จำเป็นและสร้าง engine:
import pandas as pd
from sqlalchemy import create_engine
engine = create_engine('sqlite:///Chinook.sqlite')
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Python เบื้องต้น: การนำเข้าข้อมูล
คำแนะนำการฝึกหัด
- กำหนดผลลัพธ์จาก query ต่อไปนี้ให้กับ
rs: select ทุก record โดยดึงTitleจากตารางAlbumและNameของศิลปินจากตารางArtistจากนั้นINNER JOINสองตารางนี้บนคอลัมน์ArtistIDของทั้งคู่ - เรียกใช้เมธอด
fetchall()บนrsภายในpd.DataFrame()เพื่อดึงข้อมูลทุก record ในrsแล้วเก็บผลลัพธ์ไว้ใน DataFrame ชื่อdf - กำหนดชื่อคอลัมน์ของ DataFrame ให้ตรงกับชื่อคอลัมน์ของตารางในฐานข้อมูล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Open engine in context manager
# Perform query and save results to DataFrame: df
with engine.connect() as con:
____
____
____
# Print head of DataFrame df
print(df.head())