Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ใช้ SQL กับ Python (SQLite)

ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ SQL กับ Python ผ่านฐานข้อมูล SQLite Python มีโมดูล built-in สำหรับเชื่อมต่อ SQLite เราจะใช้โมดูล sqlite3

ขั้นตอนเชื่อมต่อ SQLite กับ Python:

  • นำเข้าโมดูล sqlite3
  • สร้างการเชื่อมต่อด้วย sqlite3.connect(db_name) รับชื่อ database เป็นอาร์กิวเมนต์ สร้างไฟล์ใหม่หากยังไม่มี มิฉะนั้นเปิดไฟล์ที่มีอยู่
  • ดึง cursor object จาก connection ด้วย conn.cursor() เป็นตัวกลางระหว่าง Python และ SQLite ใช้ cursor นี้รันคำสั่ง SQL

สามขั้นตอนข้างต้นช่วยสร้างการเชื่อมต่อกับ SQLite เหมือนกับ database อื่นๆ ใน Python ดูโค้ดด้านล่างหากสับสน

ตัวอย่าง

# นำเข้าโมดูล
import sqlite3
# สร้างการเชื่อมต่อ
conn = sqlite3.connect("tutorialspoint.db")
# Cursor object
cursor = conn.cursor()

ตอนนี้เรามีการเชื่อมต่อกับ database แล้ว มาสร้างตารางด้วยคำสั่ง SQL

  • เขียนโค้ด SQL สร้างตารางพร้อมชื่อคอลัมน์และชนิดข้อมูล
  • รันโค้ดด้วย cursor.execute() เพื่อสร้างตารางใน database
  • เขียน SQL insert ข้อมูลลงตาราง รันคล้ายข้างต้น
  • Commit การเปลี่ยนแปลงด้วย conn.commit()
  • ปิดการเชื่อมต่อด้วย conn.close()

ตัวอย่าง

# นำเข้าโมดูล
import sqlite3
# สร้างการเชื่อมต่อ
conn = sqlite3.connect("tutorialspoint.db")
# Cursor object
cursor = conn.cursor()
# SQL สร้างตาราง
create_table_sql = """
CREATE TABLE students (
    id INTEGER PRIMARY KEY,
    first_name VARCHAR(20),
    last_name VARCHAR(30),
    gender CHAR(1)
);
"""
# รัน SQL
cursor.execute(create_table_sql)
# Insert ข้อมูล
insert_student_one_sql = """INSERT INTO students VALUES (1, "John", "Hill", "M")"""
cursor.execute(insert_student_one_sql)
insert_student_two_sql = """INSERT INTO students VALUES (2, "Jessy", "Hill", "F")"""
cursor.execute(insert_student_two_sql)
insert_student_three_sql = """INSERT INTO students VALUES (3, "Antony", "Hill", "M")"""
cursor.execute(insert_student_three_sql)
# Commit
conn.commit()
# ปิดการเชื่อมต่อ
conn.close()

หากไม่มี error หลังรันโค้ดข้างต้น แสดงว่าเสร็จแล้ว ดูข้อมูลในตารางอย่างไร? เขียนโค้ดตามขั้นตอน

  • เชื่อมต่อ database
  • สร้าง cursor object
  • เขียน SQL query ดึงข้อมูลที่ต้องการ
  • รัน query
  • ดึงข้อมูลจาก cursor ด้วย fetchall()
  • พิมพ์ดูข้อมูล

ตัวอย่าง

# นำเข้าโมดูล
import sqlite3
# สร้างการเชื่อมต่อ
conn = sqlite3.connect("tutorialspoint.db")
# Cursor object
cursor = conn.cursor()
# SQL query ดึงข้อมูลนักเรียนทั้งหมด
fetch_students_sql = """SELECT * FROM students;"""
# รัน SQL query
cursor.execute(fetch_students_sql)
# เก็บข้อมูลในตัวแปรด้วย fetchall()
students = cursor.fetchall()  # list of tuples
# พิมพ์ข้อมูล
print(students)

ผลลัพธ์

การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้

[(1, 'John', 'Hill', 'M'), (2, 'Jessy', 'Hill', 'F'), (3, 'Antony', 'Hill', 'M')]

สรุป

ตอนนี้คุณพร้อมทำงานกับ database ใน Python แล้ว ลองฝึกเพิ่มเติม หากมีข้อสงสัย กรุณาแจ้งในส่วนความคิดเห็น