Tag: sqlalchemy

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

    วิธีใช้ 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