Cơ sở dữ liệu có cung cấp rất nhiều chức năng mà nhờ đó chúng ta có thể dễ dàng quản lý lượng lớn thông tin trên web và nhập, xuất dữ liệu khối lượng lớn qua một kiểu file điển hình, chẳng hạn như file text. SQL là một ngôn ngữ truy vấn rất phổ biến trong lĩnh vực cơ sở dữ liệu. Có rất nhiều websites sử dụng MySQL. SQLite là một phiên bản “gọn nhẹ”, hoạt động với cú pháp rất giống với SQL.

SQLite là một engine cơ sở dữ liệu SQL khép kín, có độ tin cậy cao, được nhúng vào trong nhiều nền tảng, đầy đủ tính năng, là một công cụ thuộc public-domain (miền công cộng). Nó là database engine được sử dụng nhiều nhất trong thế giới web.

Python có một thư viện để truy cập đến các cơ sở dữ liệu SQLite, được gọi là sqlite3, cung cấp khả năng làm việc với cơ sở dữ liệu này. Thư viện sqlite3 đã được tích hợp vào trong gói Python kể từ phiên bản 2.5.

Trong bài này, chúng ta sẽ cùng tìm hiểu về cách để truy vấn cơ sở dữ liệu bằng các câu lệnh như Update, Delete và cách để trực quan hóa dữ liệu thông qua các biểu đồ.

1. Thao tác Update và Delete trong cơ sở dữ liệu SQLite

Dưới đây là đoạn code Python mô tả thao tác Update bản ghi dữ liệu trong cơ sở dữ liệu SQLite:

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

# code for update operation 
import sqlite3 
  
# database name to be passed as parameter 
conn = sqlite3.connect('mydatabase.db') 
  
# update the student record 
conn.execute("UPDATE Student SET name = 'Sam' where unix='B113059'") 
conn.commit() 
  
print "Total number of rows updated :", conn.total_changes 
  
cursor = conn.execute("SELECT * FROM Student") 
for row in cursor: 
   print row, 
  
conn.close() 

Kết quả in ra là:

Total number of rows updated : 1
(u'B113053', u'Geek', u'2017-01-11 13:53:39', 21.0), 
(u'B113058', u'Saan', u'2017-01-11 13:53:39', 21.0), 
(u'B113059', u'Sam', u'2017-01-11 13:53:39', 22.0)

Tiếp theo là ví dụ về thao tác Delete bản ghi dữ liệu trong cơ sở dữ liệu SQLite:

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

# code for delete operation 
import sqlite3 
  
# database name to be passed as parameter 
conn = sqlite3.connect('mydatabase.db') 
  
# delete student record from database 
conn.execute("DELETE from Student where unix='B113058'") 
conn.commit() 
print "Total number of rows deleted :", conn.total_changes 
  
cursor = conn.execute("SELECT * FROM Student") 
for row in cursor: 
   print row, 
  
conn.close() 

Kết quả in ra là:

Total number of rows deleted : 1
(u'B113053', u'Geek', u'2017-01-11 13:53:39', 21.0),
 (u'B113059', u'Sam', u'2017-01-11 13:53:39', 22.0)

2. Insert dữ liệu do người dùng nhập vào, vào trong cơ sở dữ liệu SQLite

Trong ví dụ sau đây, chúng ta sẽ tìm hiểu về cách để Insert (thêm) các bản ghi dữ liệu mới, sử dụng dữ liệu do người dùng nhập vào, vào trong cơ sở dữ liệu SQLite:

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

# code for executing query using input data 
import sqlite3 
  
# creates a database in RAM 
con = sqlite3.connect(":memory:") 
cur = con.cursor() 
cur.execute("create table person (name, age, id)") 
  
print ("Enter 5 students names:") 
who = [raw_input() for i in range(5)] 
print ("Enter their ages respectively:") 
age = [int(raw_input()) for i in range(5)] 
print ("Enter their ids respectively:") 
p_id = [int(raw_input()) for i in range(5)] 
n = len(who) 
  
for i in range(n): 
  
    # This is the q-mark style: 
    cur.execute("insert into person values (?, ?, ?)", (who[i], age[i], p_id[i])) 
  
    # And this is the named style: 
    cur.execute("select * from person") 
  
    # Fetches all entries from table 
    print cur.fetchall() 

Kết quả in ra là:

(u'Navin', 34, 113053)
(u'Basu', 42, 113058)
(u'Firoz', 65, 113059)
(u'Tim', 47, 113060)
(u'Varun', 54, 113061)

3. Trực quan hóa dữ liệu bằng các biểu đồ với SQLite

Chúng ta sẽ sử dụng thư viện matplotlib để trực quan hóa dữ liệu thành biểu đồ:

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

# graph visualization using matplotlib library 
import matplotlib.pyplot as plt 
  
def graph_data(p_id,age): 
  
    # plotting the points     
    plt.plot(p_id, age, color='yellow', linestyle='dashed', linewidth = 3, 
    marker='*', markerfacecolor='blue', markersize=12) 
  
    # naming the x axis 
    plt.xlabel('Persons Id') 
  
    # naming the y axis 
    plt.ylabel('Ages') 
  
    # plt.plot(p_id,age) 
    plt.show() 
  
print ("Enter 5 students names:") 
who = [raw_input() for i in range(5)] 
print ("Enter their ages respectively:") 
age = [int(raw_input()) for i in range(5)] 
print ("Enter their ids respectively:") 
p_id = [int(raw_input()) for i in range(5)] 
  
# calling graph function 
graph_data(p_id,age) 

Theo cách này, chúng ta có thể thực hiện các thao tác như vậy bằng cách sử dụng truy vấn SQL để giao tiếp với Cơ sở dữ liệu và vẽ đồ thị nhằm biểu hiện rõ ràng được các đặc tính của nó.

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!