Python - ฐานข้อมูลและ SQL

ภาษาโปรแกรม Python มีคุณสมบัติที่มีประสิทธิภาพสำหรับการเขียนโปรแกรมฐานข้อมูล Python รองรับฐานข้อมูลต่างๆเช่น SQLite, MySQL, Oracle, Sybase, PostgreSQL เป็นต้น Python ยังรองรับ Data Definition Language (DDL), Data Manipulation Language (DML) และ Data Query Statements มาตรฐาน Python สำหรับอินเทอร์เฟซฐานข้อมูลคือ Python DB-API อินเทอร์เฟซฐานข้อมูล Python ส่วนใหญ่เป็นไปตามมาตรฐานนี้

นี่คือรายการสินค้าจากอินเตอร์เฟซฐานข้อมูลหลาม: งูหลามการเชื่อมต่อฐานข้อมูลและ API คุณต้องดาวน์โหลดโมดูล DB API แยกต่างหากสำหรับแต่ละฐานข้อมูลที่คุณต้องการเข้าถึง

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

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

ตามโค้ด Python แสดงวิธีการเชื่อมต่อกับฐานข้อมูลที่มีอยู่ ถ้าฐานข้อมูลไม่มีอยู่ฐานข้อมูลนั้นจะถูกสร้างขึ้นและในที่สุดก็จะส่งคืนวัตถุฐานข้อมูล

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";

ที่นี่คุณสามารถระบุชื่อฐานข้อมูลเป็นชื่อพิเศษได้ :memory:เพื่อสร้างฐานข้อมูลใน RAM ตอนนี้ให้เรียกใช้โปรแกรมด้านบนเพื่อสร้างฐานข้อมูลของเราtest.dbในไดเร็กทอรีปัจจุบัน คุณสามารถเปลี่ยนเส้นทางของคุณได้ตามความต้องการของคุณ เก็บรหัสด้านบนไว้ในไฟล์ sqlite.py และดำเนินการตามที่แสดงด้านล่าง หากสร้างฐานข้อมูลสำเร็จก็จะแสดงข้อความต่อไปนี้

$chmod +x sqlite.py $./sqlite.py
Open database successfully

สร้างตาราง

โปรแกรม Python ต่อไปนี้จะใช้สร้างตารางในฐานข้อมูลที่สร้างไว้ก่อนหน้านี้

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
conn.execute('''CREATE TABLE COMPANY
         (ID INT PRIMARY KEY     NOT NULL,
         NAME           TEXT    NOT NULL,
         AGE            INT     NOT NULL,
         ADDRESS        CHAR(50),
         SALARY         REAL);''')
print "Table created successfully";
conn.close()

เมื่อโปรแกรมด้านบนทำงานโปรแกรมจะสร้างตาราง COMPANY ในไฟล์ test.db และจะแสดงข้อความต่อไปนี้ -

Opened database successfully
Table created successfully

แทรกการทำงาน

โปรแกรม Python ต่อไปนี้แสดงวิธีการสร้างระเบียนในตาราง COMPANY ที่สร้างในตัวอย่างข้างต้น

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (1, 'Paul', 32, 'California', 20000.00 )");
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 )");
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 )");
conn.execute("INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) \
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 )");
conn.commit()
print "Records created successfully";
conn.close()

เมื่อโปรแกรมด้านบนทำงานโปรแกรมจะสร้างระเบียนที่กำหนดในตาราง COMPANY และจะแสดงสองบรรทัดต่อไปนี้ -

Opened database successfully
Records created successfully

เลือกการดำเนินการ

โปรแกรม Python ต่อไปนี้จะแสดงวิธีการดึงข้อมูลและแสดงบันทึกจากตาราง COMPANY ที่สร้างขึ้นในตัวอย่างข้างต้น

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"
print "Operation done successfully";
conn.close()

เมื่อโปรแกรมข้างต้นทำงานโปรแกรมจะให้ผลลัพธ์ดังต่อไปนี้

Opened database successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000.0
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0
Operation done successfully

อัปเดตการทำงาน

รหัส Python ต่อไปนี้แสดงวิธีใช้คำสั่ง UPDATE เพื่ออัปเดตระเบียนใด ๆ จากนั้นดึงข้อมูลและแสดงระเบียนที่อัปเดตจากตาราง COMPANY

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
conn.execute("UPDATE COMPANY set SALARY = 25000.00 where ID = 1")
conn.commit
print "Total number of rows updated :", conn.total_changes
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"
print "Operation done successfully";
conn.close()

เมื่อโปรแกรมข้างต้นทำงานโปรแกรมจะให้ผลลัพธ์ดังต่อไปนี้

Opened database successfully
Total number of rows updated : 1
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 25000.0
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY = 15000.0
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0
Operation done successfully

ลบการทำงาน

รหัส Python ต่อไปนี้แสดงวิธีใช้คำสั่ง DELETE เพื่อลบระเบียนใด ๆ จากนั้นดึงข้อมูลและแสดงระเบียนที่เหลือจากตาราง COMPANY

#!/usr/bin/python
import sqlite3
conn = sqlite3.connect('test.db')
print "Opened database successfully";
conn.execute("DELETE from COMPANY where ID = 2;")
conn.commit()
print "Total number of rows deleted :", conn.total_changes
cursor = conn.execute("SELECT id, name, address, salary from COMPANY")
for row in cursor:
   print "ID = ", row[0]
   print "NAME = ", row[1]
   print "ADDRESS = ", row[2]
   print "SALARY = ", row[3], "\n"
print "Operation done successfully";
conn.close()

เมื่อโปรแกรมข้างต้นทำงานโปรแกรมจะให้ผลลัพธ์ดังต่อไปนี้

Opened database successfully
Total number of rows deleted : 1
ID = 1
NAME = Paul
ADDRESS = California
SALARY = 20000.0
ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY = 20000.0
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY = 65000.0
Operation done successfully