SQLite - Python: Hướng dẫn cho người mới bắt đầu
Xin chào các nhà thuật toán tương lai! Tôi rất vui mừng được làm hướng dẫn viên cho bạn trong hành trình thú vị vào thế giới của SQLite và Python. Là một người đã dạy khoa học máy tính trong nhiều năm, tôi có thể đảm bảo rằng cuối cùng của bài hướng dẫn này, bạn sẽ manipulates cơ sở dữ liệu như một chuyên gia. Hãy cùng bắt đầu nào!
Cài đặt
Trước khi chúng ta bắt đầu cuộc phiêu lưu, chúng ta cần chắc chắn rằng chúng ta có những công cụ đúng đắn. Tin tốt là, nếu bạn đã cài đặt Python (điều tôi giả định bạn đã làm), bạn đã có SQLite! Nó được gói kèm với Python, vì vậy không cần cài đặt thêm. Thật tiện lợi phải không?
Python sqlite3 module APIs
Bây giờ, hãy nói về ngôi sao của chúng ta: module sqlite3. Module này là vé vào của bạn để làm việc với cơ sở dữ liệu SQLite trong Python. Nó cung cấp một bộ các hàm và phương thức mà chúng ta sẽ sử dụng suốt bài hướng dẫn này.
Dưới đây là bảng các phương thức chính chúng ta sẽ sử dụng:
Phương thức | Mô tả |
---|---|
connect() | Tạo một kết nối đến cơ sở dữ liệu |
cursor() | Tạo một đối tượng con trỏ để thực thi các lệnh SQL |
execute() | Thực thi một lệnh SQL đơn |
executemany() | Thực thi một lệnh SQL đối với tất cả các chuỗi tham số |
commit() | Chấp nhận giao dịch hiện tại |
rollback() | Hoàn tác bất kỳ thay đổi nào đối với cơ sở dữ liệu kể từ lần gọi commit() cuối cùng |
close() | Đóng kết nối cơ sở dữ liệu |
Đừng lo lắng nếu những điều này có vẻ bí ẩn bây giờ. Chúng ta sẽ khám phá từng phương thức một khi chúng ta tiếp tục.
Kết nối đến cơ sở dữ liệu
Hãy bắt đầu bằng cách kết nối đến một cơ sở dữ liệu. Điều này giống như gõ cửa nhà dữ liệu của bạn!
import sqlite3
# Kết nối đến cơ sở dữ liệu (hoặc tạo nó nếu không tồn tại)
conn = sqlite3.connect('my_first_db.db')
print("Kết nối cơ sở dữ liệu thành công!")
# Đừng quên đóng kết nối khi bạn hoàn thành
conn.close()
Trong ví dụ này, chúng ta đang nhập module sqlite3 và sử dụng phương thức connect()
của nó để tạo một kết nối đến cơ sở dữ liệu có tên 'my_first_db.db'. Nếu cơ sở dữ liệu này không tồn tại, SQLite sẽ tạo nó cho chúng ta. Thật tuyệt vời!
Tạo bảng
Bây giờ chúng ta đã kết nối, hãy tạo một bảng. Hãy tưởng tượng một bảng như một bảng tính trong cơ sở dữ liệu của bạn.
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Tạo một bảng
cursor.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER)''')
print("Bảng được tạo thành công!")
conn.commit()
conn.close()
Ở đây, chúng ta đang tạo một bảng có tên 'students' với ba cột: id, name và age. Câu lệnh IF NOT EXISTS
là mạng an toàn của chúng ta - nó ngăn chặn lỗi nếu chúng ta vô tình cố gắng tạo cùng một bảng两次.
Hoạt động INSERT
Đã đến lúc thêm dữ liệu vào bảng của chúng ta. Điều này giống như điền vào bảng tính của chúng ta!
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Chèn một hàng dữ liệu
cursor.execute("INSERT INTO students (name, age) VALUES (?, ?)", ("Alice", 22))
# Chèn nhiều hàng dữ liệu
students_data = [("Bob", 19), ("Charlie", 21), ("David", 20)]
cursor.executemany("INSERT INTO students (name, age) VALUES (?, ?)", students_data)
print("Dữ liệu được chèn thành công!")
conn.commit()
conn.close()
Trong ví dụ này, chúng ta đang chèn dữ liệu vào bảng 'students' của chúng ta. Chúng ta sử dụng execute()
cho một插入 đơn và executemany()
cho nhiều插入. Dấu ?
là các placeholder cho dữ liệu của chúng ta, giúp ngăn chặn các cuộc tấn công SQL injection. An toàn là trên hết!
Hoạt động SELECT
Bây giờ, hãy lấy dữ liệu của chúng ta. Điều này giống như hỏi cơ sở dữ liệu của chúng ta những gì nó nhớ!
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Chọn tất cả các hàng từ bảng students
cursor.execute("SELECT * FROM students")
# Lấy tất cả các hàng
rows = cursor.fetchall()
for row in rows:
print(f"ID: {row[0]}, Name: {row[1]}, Age: {row[2]}")
conn.close()
Ở đây, chúng ta đang chọn tất cả các hàng từ bảng 'students' và in chúng ra. Dấu *
trong truy vấn SQL của chúng ta có nghĩa là "cho tôi tất cả". Điều này giống như nói "Mở cửa ra!" với cơ sở dữ liệu của bạn.
Hoạt động UPDATE
Đôi khi, chúng ta cần thay đổi dữ liệu của mình. Hãy cập nhật tuổi của một học sinh:
import sqlite3
conn = sqlite3.connect('my_first_db.db')
cursor = conn.cursor()
# Cập nhật tuổi của một học sinh
cursor.execute("UPDATE students SET age = ? WHERE name = ?", (23, "Alice"))
print("Dữ liệu được cập nhật thành công!")
conn.commit()
conn.close()
Trong ví dụ này, chúng ta đang cập nhật tuổi của một học sinh trong bảng 'students'.
Credits: Image by storyset