บทที่ 9: การติดต่อฐานข้อมูลเบื้องต้น

9.2 การใช้ SQLite เป็นฐานข้อมูล และบริหารจัดการข้อมูลโดย Python 

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

1. การเชื่อมต่อกับฐานข้อมูล SQLite

การเชื่อมต่อกับฐานข้อมูล SQLite ทำได้ง่ายโดยใช้ไลบรารี sqlite3 ซึ่งเป็นไลบรารีมาตรฐานของ Python ในการสร้างหรือเชื่อมต่อกับฐานข้อมูลใหม่ เราจะใช้ฟังก์ชัน connect() จาก sqlite3

ตัวอย่างการเชื่อมต่อกับฐานข้อมูล

import sqlite3

# สร้างหรือเชื่อมต่อกับฐานข้อมูล
conn = sqlite3.connect('mydatabase.db')

# สร้างตัวจัดการคำสั่ง SQL
cursor = conn.cursor()

# ตรวจสอบการเชื่อมต่อ
print("Connected to SQLite successfully")

อธิบาย: โค้ดนี้สร้างหรือเชื่อมต่อกับฐานข้อมูลชื่อ mydatabase.db หากไฟล์ฐานข้อมูลนี้ยังไม่มีอยู่ในระบบ Python จะสร้างไฟล์ฐานข้อมูลนี้ให้

2. การสร้างตารางในฐานข้อมูล

หลังจากเชื่อมต่อกับฐานข้อมูลเรียบร้อยแล้ว ขั้นตอนต่อไปคือการสร้าง ตาราง (Table) ที่จะใช้เก็บข้อมูล ตารางใน SQLite จะมีคอลัมน์ (Columns) ที่บอกประเภทข้อมูลที่เราต้องการจัดเก็บ เช่น ชื่อลูกค้า, ที่อยู่, หรือเบอร์โทรศัพท์

ตัวอย่างการสร้างตาราง

# สร้างตาราง customers
cursor.execute('''CREATE TABLE IF NOT EXISTS customers (
                    id INTEGER PRIMARY KEY AUTOINCREMENT,
                    name TEXT NOT NULL,
                    age INTEGER NOT NULL,
                    email TEXT UNIQUE)''')

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

อธิบาย: ตาราง customers นี้มี 4 คอลัมน์ ได้แก่ id (เป็น primary key และเพิ่มอัตโนมัติ), name, age, และ email โดยเรากำหนดให้ email ต้องไม่ซ้ำกันในตาราง

3. การเพิ่มข้อมูลลงในฐานข้อมูล

เราสามารถเพิ่มข้อมูลลงในตารางได้โดยใช้คำสั่ง INSERT INTO เพื่อเพิ่มแถว (Rows) ใหม่ในตาราง

ตัวอย่างการเพิ่มข้อมูลลงในตาราง

# เพิ่มข้อมูลลงในตาราง customers
cursor.execute('''INSERT INTO customers (name, age, email)
                  VALUES (?, ?, ?)''', ("Alice", 30, "This email address is being protected from spambots. You need JavaScript enabled to view it."))

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

print("Data inserted successfully")
อธิบาย: โค้ดนี้เพิ่มข้อมูลลูกค้าใหม่เข้าไปในตาราง customers โดยใช้ฟังก์ชัน execute() ในการใส่ข้อมูลของ Alice อายุ 30 ปี พร้อมอีเมล

4. การดึงข้อมูลจากฐานข้อมูล

หลังจากที่เราเพิ่มข้อมูลลงในฐานข้อมูลแล้ว เราสามารถใช้คำสั่ง SELECT เพื่อนำข้อมูลออกมาดูหรือใช้งานได้

ตัวอย่างการดึงข้อมูลจากตาราง

# ดึงข้อมูลจากตาราง customers
cursor.execute("SELECT * FROM customers")

# รับข้อมูลทั้งหมด
customers = cursor.fetchall()

# แสดงข้อมูล
for customer in customers:
    print(customer)

อธิบาย: ฟังก์ชัน fetchall() ดึงข้อมูลทั้งหมดจากตาราง customers และใช้ลูป for ในการแสดงผลแต่ละแถว

5. การอัปเดตข้อมูลในฐานข้อมูล

ถ้าต้องการเปลี่ยนแปลงข้อมูลที่มีอยู่ในฐานข้อมูล เราสามารถใช้คำสั่ง UPDATE เพื่อทำการอัปเดตข้อมูลในตารางได้

ตัวอย่างการอัปเดตข้อมูล

# อัปเดตข้อมูลของลูกค้า
cursor.execute('''UPDATE customers
                  SET age = ?
                  WHERE name = ?''', (31, "Alice"))

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

print("Data updated successfully")
อธิบาย: โค้ดนี้ทำการอัปเดตอายุของ Alice จาก 30 เป็น 31 โดยใช้คำสั่ง UPDATE และระบุเงื่อนไขว่า name ต้องเป็น "Alice"

6. การลบข้อมูลจากฐานข้อมูล

ถ้าต้องการลบข้อมูลที่ไม่ต้องการออกจากฐานข้อมูล เราสามารถใช้คำสั่ง DELETE เพื่อทำการลบข้อมูลนั้นออกจากตาราง

ตัวอย่างการลบข้อมูล

# ลบข้อมูลของลูกค้า
cursor.execute('''DELETE FROM customers
                  WHERE name = ?''', ("Alice",))

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

print("Data deleted successfully")
อธิบาย: โค้ดนี้ทำการลบข้อมูลของ Alice ออกจากตาราง customers โดยใช้คำสั่ง DELETE และระบุเงื่อนไขว่า name ต้องเป็น "Alice"

7. การปิดการเชื่อมต่อกับฐานข้อมูล

หลังจากทำงานกับฐานข้อมูลเสร็จแล้ว ควรปิดการเชื่อมต่อเพื่อให้ระบบจัดการทรัพยากรได้อย่างเหมาะสม

ตัวอย่างการปิดการเชื่อมต่อ

# ปิดการเชื่อมต่อ
conn.close()

print("Connection closed successfully")
อธิบาย: ฟังก์ชัน close() ใช้สำหรับปิดการเชื่อมต่อกับฐานข้อมูลหลังจากที่เราทำงานเสร็จแล้ว

สรุป

การใช้ SQLite ร่วมกับ Python เป็นวิธีที่ง่ายและสะดวกสำหรับการจัดการข้อมูลในฐานข้อมูล โดยในบทนี้เราได้เรียนรู้วิธีการสร้างตาราง การเพิ่มข้อมูล การอัปเดตข้อมูล และการลบข้อมูลจากฐานข้อมูล SQLite ซึ่งเป็นทักษะที่สำคัญในการพัฒนาโปรแกรมที่ทำงานร่วมกับข้อมูลจำนวนมาก การเรียนรู้ SQLite ช่วยให้เราสามารถนำไปประยุกต์ใช้ในการพัฒนาแอปพลิเคชันต่าง ๆ ได้อย่างมีประสิทธิภาพ