0Pricing
Learn AI with Python · บทเรียน

SQLite ด้วยโมดูล sqlite3 ของ Python

สร้างฐานข้อมูลและตาราง ใช้ INSERT/SELECT/UPDATE คำสั่งสืบค้นแบบกำหนดพารามิเตอร์ และจัดการการเชื่อมต่อ

SQLite ด้วยโมดูล sqlite3 ของ Python เป็นบทเรียน Learn AI with Python ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Learn AI with Python และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

ทำไมต้องใช้ฐานข้อมูลสำหรับปัญญาประดิษฐ์

ไฟล์แบบแบนใช้งานได้จนกว่าข้อมูลจะมีขนาดใหญ่ขึ้น หรือจนกว่าส่วนต่าง ๆ ของโครงการจะต้องใช้ระเบียนเดียวกัน ฐานข้อมูลช่วยให้คุณสืบค้นได้รวดเร็ว มีโครงสร้างฐานข้อมูลที่เป็นระเบียบ และเข้าถึงข้อมูลพร้อมกันได้อย่างปลอดภัย

SQLite เป็นฐานข้อมูลที่ใช้ไฟล์และไม่ต้องตั้งค่า ซึ่งรวมอยู่ใน Python ผ่านโมดูล sqlite3 เหมาะอย่างยิ่งสำหรับการทดลองด้านปัญญาประดิษฐ์และโครงการขนาดเล็ก

การเชื่อมต่อด้วย sqlite3.connect

sqlite3.connect จะเปิดหรือสร้างไฟล์ฐานข้อมูล และส่งคืนการเชื่อมต่อ ใช้ :memory: สำหรับฐานข้อมูลชั่วคราวในหน่วยความจำ

import sqlite3

conn = sqlite3.connect("ml.db")   # creates ml.db if missing
print(conn)

เคอร์เซอร์และ cursor.execute

คุณเรียกใช้ SQL ผ่าน cursor ที่ได้จากการเชื่อมต่อ cursor.execute(sql) จะส่งคำสั่งไปยังฐานข้อมูล

import sqlite3

conn = sqlite3.connect("ml.db")
cur = conn.cursor()
cur.execute("SELECT sqlite_version()")
print(cur.fetchone())

CREATE TABLE IF NOT EXISTS

กำหนดตารางด้วยโครงสร้างฐานข้อมูล IF NOT EXISTS ทำให้สามารถเรียกใช้คำสั่งซ้ำได้อย่างปลอดภัย โดยจะไม่เกิดข้อผิดพลาดหากมีตารางนั้นอยู่แล้ว

cur.execute("""
CREATE TABLE IF NOT EXISTS experiments (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    accuracy REAL,
    created_at TEXT
)
""")

INSERT พร้อมตัวแทนค่า

อย่าสร้าง SQL ด้วยการจัดรูปแบบสตริง เพราะจะเปิดช่องให้เกิดการแทรก SQL และทำงานผิดพลาดเมื่อมีเครื่องหมายอัญประกาศ ให้ใช้ตัวแทนค่า ? และส่งค่าในรูปทูเพิล

cur.execute(
    "INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
    ("baseline", 0.82, "2026-05-29"),
)

การแทรกหลายแถวด้วย executemany

executemany จะแทรกรายการทูเพิลทั้งหมดด้วยการเรียกใช้ที่มีประสิทธิภาพเพียงครั้งเดียว ซึ่งเร็วกว่าการวนลูปเรียก execute มาก

rows = [
    ("rf", 0.88, "2026-05-29"),
    ("xgb", 0.91, "2026-05-29"),
]
cur.executemany(
    "INSERT INTO experiments (name, accuracy, created_at) VALUES (?, ?, ?)",
    rows,
)

conn.commit() บันทึกการเปลี่ยนแปลง

การเขียนข้อมูลจะเกิดขึ้นภายในธุรกรรม และจะยังไม่ถูกบันทึกถาวรจนกว่าคุณจะเรียกใช้ conn.commit() การลืมเรียกใช้คำสั่งนี้เป็นข้อผิดพลาดที่ผู้เริ่มต้นพบได้บ่อยที่สุด เพราะข้อมูลจะหายไปอย่างเงียบ ๆ เมื่อปิดการเชื่อมต่อ

conn.commit()   # persist all pending INSERT/UPDATE/DELETE

การสืบค้นด้วย fetchall และ fetchone

หลังจากใช้ SELECT ให้ดึงผลลัพธ์ดังนี้:

  • fetchone() — แถวถัดไปหนึ่งแถว
  • fetchall() — แถวที่เหลือทั้งหมดในรูปแบบรายการทูเพิล
  • วนซ้ำผ่าน cursor โดยตรงเมื่อผลลัพธ์มีขนาดใหญ่
cur.execute("SELECT name, accuracy FROM experiments")
for row in cur.fetchall():
    print(row)   # ("baseline", 0.82) ...

การกรองและการจัดเรียง

ให้ SQL จัดการงานหลัก: กรองด้วย WHERE เรียงลำดับด้วย ORDER BY และจำกัดจำนวนด้วย LIMIT ใช้ตัวแทนค่าสำหรับค่าที่ใช้ในการสืบค้นด้วย

cur.execute(
    "SELECT name, accuracy FROM experiments WHERE accuracy > ? ORDER BY accuracy DESC LIMIT 3",
    (0.85,),
)
print(cur.fetchall())

โรงงานแถวสำหรับการเข้าถึงด้วยชื่อ

โดยค่าเริ่มต้น แถวจะอยู่ในรูปทูเพิล ตั้งค่า conn.row_factory = sqlite3.Row เพื่อเข้าถึงคอลัมน์ด้วยชื่อ ซึ่งอ่านเข้าใจได้ง่ายกว่ามาก

import sqlite3

conn = sqlite3.connect("ml.db")
conn.row_factory = sqlite3.Row
cur = conn.cursor()
cur.execute("SELECT * FROM experiments")
row = cur.fetchone()
print(row["name"], row["accuracy"])

ตัวจัดการบริบทเพื่อความปลอดภัย

การใช้ with กับการเชื่อมต่อจะยืนยันธุรกรรมโดยอัตโนมัติเมื่อสำเร็จ และย้อนกลับธุรกรรมเมื่อเกิดข้อผิดพลาด เมื่อใช้ร่วมกับ closing จะรับรองว่ามีการทำความสะอาดทรัพยากร

import sqlite3
from contextlib import closing

with closing(sqlite3.connect("ml.db")) as conn:
    with conn:   # auto commit/rollback
        conn.execute(
            "INSERT INTO experiments (name, accuracy) VALUES (?, ?)",
            ("svm", 0.79),
        )

ตรวจสอบอย่างรวดเร็ว: การบันทึกการเขียนข้อมูลถาวร

คุณเรียกใช้คำสั่ง INSERT หลายคำสั่ง จากนั้นปิดการเชื่อมต่อ แต่ครั้งถัดไปข้อมูลกลับหายไป

ทบทวน: SQLite ด้วย sqlite3

ขณะนี้คุณสามารถใช้ฐานข้อมูลจริงจาก Python ได้แล้ว:

  • sqlite3.connect และ cursor
  • CREATE TABLE IF NOT EXISTS สำหรับโครงสร้างฐานข้อมูลที่ปลอดภัย
  • INSERT พร้อมตัวแทนค่า ? และ executemany
  • conn.commit() เพื่อบันทึกการเขียนข้อมูลถาวร
  • fetchone/fetchall, WHERE/ORDER BY/LIMIT
  • sqlite3.Row และตัวจัดการบริบทเพื่อโค้ดที่เป็นระเบียบและปลอดภัย

ถัดไป: เชื่อม pandas เข้ากับ SQL

คำถามที่พบบ่อย

บทเรียน “SQLite ด้วยโมดูล sqlite3 ของ Python” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “SQLite ด้วยโมดูล sqlite3 ของ Python” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Learn AI with Python ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Learn AI with Python มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “SQLite ด้วยโมดูล sqlite3 ของ Python”

สร้างฐานข้อมูลและตาราง ใช้ INSERT/SELECT/UPDATE คำสั่งสืบค้นแบบกำหนดพารามิเตอร์ และจัดการการเชื่อมต่อ คุณปฏิบัติ Learn AI with Python ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Learn AI with Python หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Learn AI with Python บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “SQLite ด้วยโมดูล sqlite3 ของ Python” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Learn AI with Python นี้ได้ไหม

ได้ บทเรียน Learn AI with Python ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. SQLite ด้วยโมดูล sqlite3 ของ Python
  2. การผสาน Pandas และ SQL
  3. การจัดเก็บและสืบค้นผลลัพธ์แมชชีนเลิร์นนิง
  4. บทนำสู่ฐานข้อมูลเวกเตอร์
← กลับไปที่ Learn AI with Python