การเชื่อมต่อและการสร้างตาราง
เปิดฐานข้อมูลและกำหนดโครงสร้าง
การเชื่อมต่อและการสร้างตาราง เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
sqlite3 คืออะไร
Python มาพร้อมโมดูล sqlite3 ในไลบรารีมาตรฐาน โมดูลนี้ช่วยให้คุณทำงานกับ SQLite ซึ่งเป็นฐานข้อมูล SQL แบบใช้ไฟล์ที่มีขนาดเล็กและไม่ต้องใช้เซิร์ฟเวอร์แยกต่างหาก
- ไม่ต้องติดตั้งเพิ่มเติม
- ฐานข้อมูลทั้งหมดอยู่ในไฟล์เดียว
- เหมาะอย่างยิ่งสำหรับต้นแบบ การทดสอบ และแอปขนาดเล็ก
import sqlite3
print(sqlite3.version)การเชื่อมต่อกับฐานข้อมูล
ใช้ sqlite3.connect() เพื่อเปิดฐานข้อมูล หากยังไม่มีไฟล์ SQLite จะสร้างไฟล์ให้
การส่ง ':memory:' จะสร้างฐานข้อมูลชั่วคราวในหน่วยความจำ ซึ่งจะหายไปเมื่อปิดการเชื่อมต่อ
import sqlite3
conn = sqlite3.connect(':memory:')
print('Connected:', conn)
conn.close()ออบเจ็กต์เคอร์เซอร์
หากต้องการเรียกใช้ SQL คุณต้องมี เคอร์เซอร์ เรียกใช้ conn.cursor() เพื่อรับเคอร์เซอร์ จากนั้นใช้ cursor.execute() เพื่อส่งคำสั่ง SQL
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
print('Cursor ready:', cur)
conn.close()การสร้างตาราง
กำหนดโครงสร้างด้วย CREATE TABLE โดยแต่ละคอลัมน์ต้องมีชื่อและชนิดข้อมูล เช่น INTEGER, TEXT หรือ REAL
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER, name TEXT, age INTEGER)')
print('Table created')
conn.close()คีย์หลัก
คีย์หลัก ใช้ระบุแต่ละแถวโดยไม่ซ้ำกัน การประกาศ INTEGER PRIMARY KEY จะทำให้ SQLite เพิ่มค่าให้โดยอัตโนมัติ
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE books (id INTEGER PRIMARY KEY, title TEXT)')
print('books table ready')
conn.close()IF NOT EXISTS
การเรียกใช้ CREATE TABLE สองครั้งจะทำให้เกิดข้อผิดพลาด ให้เพิ่ม IF NOT EXISTS เพื่อให้คำสั่งนี้เรียกใช้ซ้ำได้อย่างปลอดภัย
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
sql = 'CREATE TABLE IF NOT EXISTS notes (id INTEGER PRIMARY KEY, body TEXT)'
cur.execute(sql)
cur.execute(sql)
print('No error on second run')
conn.close()ข้อจำกัดของคอลัมน์
ข้อจำกัดใช้บังคับใช้กฎของข้อมูลในระดับฐานข้อมูล
NOT NULLกำหนดให้ต้องมีค่าUNIQUEป้องกันค่าซ้ำDEFAULTกำหนดค่าเริ่มต้นสำรอง
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE accounts (id INTEGER PRIMARY KEY, email TEXT NOT NULL UNIQUE, active INTEGER DEFAULT 1)')
print('accounts table with constraints')
conn.close()การตรวจสอบโครงสร้างฐานข้อมูล
SQLite จัดเก็บข้อมูลโครงสร้างฐานข้อมูลไว้ใน sqlite_master ให้สืบค้นข้อมูลนี้เพื่อแสดงรายการตารางของคุณ
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)')
cur.execute("SELECT name FROM sqlite_master WHERE type='table'")
print(cur.fetchall())
conn.close()การบันทึกลงไฟล์
หากต้องการเก็บข้อมูลไว้ถาวร ให้ส่งชื่อไฟล์ไปยัง connect() ฐานข้อมูลจะยังคงอยู่หลังจากโปรแกรมทำงานเสร็จ
คุณต้องเรียกใช้ conn.commit() เพื่อเขียนการเปลี่ยนแปลงลงดิสก์
import sqlite3
conn = sqlite3.connect('app.db')
cur = conn.cursor()
cur.execute('CREATE TABLE IF NOT EXISTS items (id INTEGER PRIMARY KEY, name TEXT)')
conn.commit()
print('Saved to app.db')
conn.close()การลบตาราง
ลบตารางด้วย DROP TABLE ใช้ IF EXISTS เพื่อหลีกเลี่ยงข้อผิดพลาดเมื่อตารางถูกลบไปแล้ว
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE temp (id INTEGER)')
cur.execute('DROP TABLE IF EXISTS temp')
print('Dropped temp table')
conn.close()ปิดการเชื่อมต่อเสมอ
การเชื่อมต่อที่เปิดอยู่จะครอบครองตัวจัดการไฟล์ ให้ปิดการเชื่อมต่อด้วย conn.close() เมื่อใช้งานเสร็จ หรือใช้บล็อก with เพื่อทำความสะอาดโดยอัตโนมัติ
import sqlite3
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
cur.execute('CREATE TABLE t (id INTEGER)')
conn.close()
print('Connection closed cleanly')ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจเกี่ยวกับการสร้างตารางของคุณ
สรุปทบทวน
คุณได้เรียนรู้พื้นฐานของ sqlite3
connect()เปิดหรือสร้างไฟล์ฐานข้อมูลcursor()คืนอ็อบเจ็กต์สำหรับเรียกใช้ SQLCREATE TABLEกำหนดโครงสร้างฐานข้อมูลพร้อมชนิดข้อมูลและข้อจำกัดcommit()บันทึกการเปลี่ยนแปลง และclose()ปล่อยการเชื่อมต่อ
ถัดไป คุณจะได้เพิ่มและอ่านแถวข้อมูล
คำถามที่พบบ่อย
บทเรียน “การเชื่อมต่อและการสร้างตาราง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเชื่อมต่อและการสร้างตาราง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเชื่อมต่อและการสร้างตาราง”
เปิดฐานข้อมูลและกำหนดโครงสร้าง คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การเชื่อมต่อและการสร้างตาราง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม
ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การเชื่อมต่อและการสร้างตาราง
- Insert, Select, Update, Delete
- คำสั่งสอบถามแบบกำหนดพารามิเตอร์
- ธุรกรรมและตัวจัดการบริบท