Cơ sở dữ liệu là một thành phần quan trọng trong phát triển phần mềm, là một bộ sưu tập dữ liệu có hệ thống, được lưu trữ bằng điện tử. Bạn có thể tương tác với cơ sở dữ liệu như: lưu trữ, truy xuất và chỉnh sửa dữ liệu bằng các lệnh đọc, viết, cập nhật và xóa.

SQLite là gì?

SQLite là một thư viện công cụ cơ sở dữ liệu SQL (Ngôn ngữ truy vấn có cấu trúc) nhúng hoạt động với nhiều ngôn ngữ.

Theo trang web chính thức , văn bản SQL được biên dịch thành mã byte, sau đó được chạy bởi một máy ảo. Do đó, nó cực kỳ nhanh và có thể xử lý các truy vấn phức tạp một cách hiệu quả.

Cơ sở dữ liệu SQLite được lưu trữ dưới dạng tệp đĩa, tương tự như tệp CSV (các giá trị được phân tách bằng dấu phẩy). Nhưng SQLite có nhiều lợi thế hơn so với việc sử dụng tệp CSV:

  • Nó được viết bằng C. Đây là một ngôn ngữ được biên dịch, được gõ tĩnh, nhanh hơn nhiều so với hầu hết các ngôn ngữ, kể cả Python.
  • Nó rất nhẹ, vì vậy nó hoạt động tốt hơn và nhanh hơn so với đọc từ tệp CSV.
  • Dễ dàng để thiết lập
  • Nó có thể xử lý các truy vấn phức tạp hơn.
  • Sẽ hữu ích hơn khi tìm hiểu, trong trường hợp bạn được giao nhiệm vụ sử dụng SQL hoặc MySQL trong tương lai.

Cách thiết lập SQLite

Đây là một ví dụ về việc sử dụng SQLite với Python. Ví dụ dưới đây đang sử dụng IDE trực tuyến của Replit , nhưng bạn có thể theo dõi bất kỳ IDE nào bạn thích.

Đầu tiên, bạn tạo một dự án Python với một file main.py. Bạn sẽ sử dụng thư viện SQL của CS50, bạn có thể cài đặt thư viện này bằng cách chạy pip3 install cs50.

Bước đầu tiên là tạo tệp database.db trong thư mục gốc, bạn có thể thực hiện thao tác này bằng cách nhập lệnh sau vào terminal:

touch database.db

Tại thời điểm này, đoạn mã sau sẽ được thêm vào main.py:

from cs50 import SQL

db = SQL("sqlite:///database.db")

Cách tạo bảng cơ sở dữ liệu

Bước tiếp theo là tạo một bảng trong cơ sở dữ liệu. SQL lưu trữ dữ liệu trong các bảng, tương tự như các bảng được tìm thấy trong Excel hoặc Google Trang tính. Mã cho việc này là:

db.execute("CREATE TABLE IF NOT EXISTS users (name TEXT, age NUMBER, fav_food STRING)")

Để phá vỡ điều này, db là cơ sở dữ liệu mà dữ liệu được ghi vào. Tiếp theo, một lệnh được thực thi. Nếu bảng users không tồn tại, hãy tạo một bảng có tên người dùng, có tên cột name, age fav_food, với các loại dữ liệu cho từng giá trị được chỉ định.

Cách ghi vào cơ sở dữ liệu

Bạn có thể sử dụng thao tác INSERT để thêm người dùng.

db.execute("INSERT INTO users (name, age, fav_food) VALUES(?, ?, ?)", "eesa", 14, "pizza")

Giá trị “eesa” được chèn vào cột tên, giá trị 14 được chèn vào cột tuổi và giá trị “pizza” được chèn vào cột fav_food.

Đoạn code để thêm người dùng khác (trong trường hợp này là Bob), sẽ là:

db.execute("INSERT INTO users (name, age, fav_food) VALUES(?, ?, ?)", "bob", 20, "burgers")

Cách đọc từ cơ sở dữ liệu

Sau này, bạn có thể thử đọc tất cả người dùng từ cơ sở dữ liệu. Bạn có thể làm điều này bằng cách chạy đoạn mã sau.

people = db.execute("SELECT * FROM users")

print(people) # [{'name': 'eesa', 'age': 14, 'fav_food': 'pizza'}]

Đoạn mã trên khá đơn giản. Dấu * trong câu lệnh SELECT chọn mọi thứ có trong cơ sở dữ liệu.

Để chỉ chọn các giá trị cụ thể, bạn có thể sử dụng câu lệnh DISTINCT. Ví dụ, bạn chỉ muốn món ăn yêu thích của từng người dùng. Bạn có thể làm điều này bằng cách chạy đoạn mã sau:

people = db.execute("SELECT DISTINCT fav_food FROM users")

print(people)

Bạn cũng có thể phân tách các giá trị bằng dấu phẩy trong truy vấn SELECT DISTINCT:

people = db.execute("SELECT DISTINCT age, fav_food FROM users")

print(people)

Điều gì sẽ xảy ra nếu chúng ta chỉ muốn đọc dữ liệu cho Bob và bỏ qua những người khác? Bạn có thể làm điều này bằng cách sử dụng Mệnh đề SQL WHERE:

people = db.execute("SELECT * FROM users WHERE name='bob'")

print(people)

Làm thế nào về các truy vấn phức tạp hơn? Bạn có thể thực hiện việc này bằng cú pháp AND, OR và NOT. Bạn có thể tách các mệnh đề WHERE bằng các từ khóa này cho các truy vấn phức tạp hơn.

people = db.execute("SELECT * FROM users WHERE name='bob' AND age=20")

print(people)

Thao tác này sẽ in ra dữ liệu cho Bob, vì Bob 20 tuổi.

Cách cập nhật một hàng trong cơ sở dữ liệu

Để cập nhật một hàng, bạn có thể sử dụng câu lệnh UPDATE như sau:

db.execute("UPDATE users SET fav_food='shawarma' WHERE name='eesa'")

Cách xóa một hàng trong cơ sở dữ liệu

Để xóa một hàng, hãy sử dụng Cú pháp XÓA (như bạn có thể đã đoán). 

db.execute("DELETE FROM users WHERE name='bob'") # goodbye bob

people = db.execute("SELECT * FROM users")

print(people) # [{'name': 'eesa', 'age': 14, 'fav_food': 'shawarma'}]

Để xóa tất cả các hàng trong bảng, chỉ cần xóa mệnh đề WHERE:

db.execute("DELETE FROM users")

people = db.execute("SELECT * FROM users")

print(people)

Với những hướng dẫn sử dụng SQLite cơ bản trên bằng Python sẽ giúp bạn có thêm kiến thức cơ bản về cơ sơ dữ liệu này.

Nguồn: https://www.freecodecamp.org

VietnamWorks inTECH