บทที่ 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, "
# บันทึกการเปลี่ยนแปลง
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 ช่วยให้เราสามารถนำไปประยุกต์ใช้ในการพัฒนาแอปพลิเคชันต่าง ๆ ได้อย่างมีประสิทธิภาพ