วิธีใช้ SQLAlchemy วิเคราะห์ข้อมูลจาก Database โดยไม่ต้องออกจาก Python

Updated: 31 Jul 2026

.

SQLAlchemy เป็น Python package ยอดนิยมสำหรับเชื่อมต่อกับ database ทั้งสำหรับพัฒนาเว็บแอปพลิเคชัน (web application) และการวิเคราะห์ข้อมูล (data analytics)

นอกจาก SQLAlchemy จะช่วยให้เราเชื่อมต่อกับ database หลากหลายประเภท ไม่ว่าจะเป็น:

  • SQLite
  • PostgreSQL
  • MySQL
  • และอีกมากมาย

SQLAlchemy ยังช่วยให้เราทำงานกับ database ได้โดยไม่ต้องรู้ SQL (Structured Query Language) ก็ได้ โดยทำหน้าที่เป็น Object-Relational Mapper (ORM) ที่แปลงข้อมูลใน database ให้เป็น Python object ที่เราใช้งานต่อได้

ในบทความนี้ ผมจะพาทุกคนไปดูวิธีใช้ SQLAlchemy คู่กับ Pandas เพื่อวิเคราะห์ข้อมูลใน database โดยไม่ต้องออกจาก Python กัน

ถ้าพร้อมแล้ว ไปเริ่มกันเลย



🚀 Overview

การทำงานกับ SQLAlchemy มีอยู่ 5 ขั้นตอน:

  1. เชื่อมต่อกับ database
  2. ดูโครงสร้าง database
  3. เขียน SQL
  4. โหลดข้อมูล
  5. วิเคราะห์ข้อมูล

เราไปดูตัวอย่าง ผ่านการทำงานกับ Chinook SQLite ที่มีข้อมูลของร้านขาย digital media (เช่น ข้อมูลลูกค้า เพลง นักร้อง) กัน


1️⃣ Step 1. เชื่อมต่อกับ Database

ในขั้นแรก เราจะเชื่อมกับ database โดยสร้าง Engine object ที่เก็บข้อมูลการเชื่อมต่อ database ไว้ให้:

Python
# Import the package
from sqlalchemy import create_engine
# Connect to the database
engine = create_engine("sqlite:///chinook.sqlite")

2️⃣ Step 2. ดูโครงสร้าง Database

ในขั้นที่ 2 เราจะสำรวจโครงสร้าง database ว่ามี table อะไรอยู่บ้าง:

Python
# Import the package
from sqlalchemy import inspect
# Get the inspector
inspector = inspect(engine)
# List the table names
table_names = inspector.get_table_names()
# Print the table names
print(table_names)

ผลลัพธ์:

[
"Album",
"Artist",
"Customer",
"Employee",
"Genre",
"Invoice",
"InvoiceLine",
"MediaType",
"Playlist",
"PlaylistTrack",
"Track",
]

3️⃣ Step 3. เขียน SQL

ในขั้นที่ 3 เราจะเขียน SQL สำหรับดึงข้อมูลจาก database:

Python
# Import the package
from sqlalchemy import text
# Set a query
query = text(
"""
SELECT
InvoiceId,
InvoiceDate,
BillingCountry,
Total
FROM Invoice;
"""
)

Note:

ถ้าใช้ SQL ไม่เป็น เราสามารถใช้ SQLAlchemy เพื่อสร้าง SQL ขึ้นมาให้เราได้ เช่น:

Python
# Import the package
from sqlalchemy import select
# Create a query
query = (
select(
invoice.c.InvoiceId,
invoice.c.InvoiceDate,
invoice.c.BillingCountry,
invoice.c.Total,
)
)

4️⃣ Step 4. โหลดข้อมูล

ในขั้นที่ 4 เราจะโหลดข้อมูลเข้ามาใน Python ด้วย Pandas:

Python
# Import the package
import pandas as pd
# Load the table
df = pd.read_sql(
query,
engine
)
# Inspect the df
df.head()

ผลลัพธ์:


5️⃣ Step 5. วิเคราะห์ข้อมูล

ในขั้นสุดท้าย เราจะวิเคราะห์ข้อมูลด้วย Pandas เช่น หาค่าเฉลี่ยต่อประเทศ:

# Find mean total by country
(
df
.groupby("BillingCountry", as_index=False)
.agg(MeanTotal=("Total", "mean"))
.sort_values("MeanTotal", ascending=False)
)

ผลลัพธ์:


💪 Summary

SQLAlchemy เป็น package ที่ช่วยให้เราทำงานกับ database ได้โดยไม่ต้องออกจาก Python และใช้งานง่ายใน 5 ขั้นตอน:

  1. เชื่อมต่อกับ database
  2. ดูโครงสร้าง database
  3. เขียน SQL
  4. โหลดข้อมูล
  5. วิเคราะห์ข้อมูล

⏭️ Next

หลังอ่านบทความจบแล้ว ลองใช้ SQLAlchemy เพื่อทำงานกับ database กันดูนะครับ:


📃 References

Comments

Leave a comment