0Pricing
Python Academy · บทเรียน

การเชื่อมต่อและการสร้างตาราง

เปิดฐานข้อมูลและกำหนดโครงสร้าง

การเชื่อมต่อและการสร้างตาราง เป็นบทเรียน 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() คืนอ็อบเจ็กต์สำหรับเรียกใช้ SQL
  • CREATE 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

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

  1. การเชื่อมต่อและการสร้างตาราง
  2. Insert, Select, Update, Delete
  3. คำสั่งสอบถามแบบกำหนดพารามิเตอร์
  4. ธุรกรรมและตัวจัดการบริบท
← กลับไปที่ Python Academy