เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การกรองข้อมูลจากตาราง - Expressions

นอกจาก Python comparators มาตรฐานแล้ว ยังสามารถใช้เมธอดอย่าง in_() เพื่อสร้าง where() clause ที่ทรงพลังยิ่งขึ้นได้อีกด้วย ดู expression ทั้งหมดได้ที่ SQLAlchemy Documentation

เมธอด in_() เมื่อใช้กับคอลัมน์ จะช่วยให้ดึงเฉพาะเรคคอร์ดที่ค่าของคอลัมน์นั้นตรงกับค่าใดค่าหนึ่งในลิสต์ที่กำหนด ตัวอย่างเช่น where(census.columns.age.in_([20, 30, 40])) จะคืนค่าเฉพาะเรคคอร์ดของคนที่มีอายุ 20, 30 หรือ 40 ปีเท่านั้น

ในแบบฝึกหัดนี้ จะทำงานกับตาราง census ต่อไป โดยเลือกเรคคอร์ดของผู้คนจาก 3 รัฐที่มีความหนาแน่นของประชากรสูงที่สุด ซึ่งได้เตรียมลิสต์ของรัฐเหล่านั้นไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Python เบื้องต้นสำหรับฐานข้อมูล

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เลือกทุกเรคคอร์ดจากตาราง census
  • แก้ไข argument ของ where clause ให้ใช้ in_() เพื่อดึงเรคคอร์ดทั้งหมดที่ค่าในคอลัมน์ census.columns.state อยู่ในลิสต์ states
  • วนลูปผ่าน ResultProxy connection.execute(stmt) และพิมพ์คอลัมน์ state และ pop2000 จากแต่ละเรคคอร์ด

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Define a list of states for which we want results
states = ['New York', 'California', 'Texas']

# Create a query for the census table: stmt
stmt = select(____)

# Append a where clause to match all the states in_ the list states
stmt = stmt.where(____)

# Loop over the ResultProxy and print the state and its population in 2000
for ____ in connection.execute(____):
    print(____, ____)
แก้ไขและรันโค้ด