Khái niệm "Bảng" và "Khóa chính"

🏛️ Phần 1: Khái niệm "Bảng" và "Khóa chính"

Hãy hình dung hình ảnh trực quan:

"Một Cơ sở dữ liệu (Database) giống như một tòa lâu đài. Trong lâu đài có nhiều căn phòng, mỗi phòng chứa một cái Bảng (Table). Hôm nay chúng ta sẽ xây căn phòng đầu tiên tên là kho_bau để cất giữ các món đồ quý giá."

Để cái bảng này gọn gàng, chúng ta cần định nghĩa các Cột (Column) làm khung xương:

  1. id (Mã số): Mỗi món đồ phải có một số định danh duy nhất (1, 2, 3...). Trong lập trình, cột này được gọi là Primary Key (Khóa chính) — giống như số Căn cước công dân vậy, không ai được trùng ai!

  2. ten_vat_pham (Tên): Chứa chữ (Ví dụ: "Kiếm kim cương", "Táo vàng").

  3. so_luong (Số lượng): Chứa số nguyên.

  4. gia_tri (Giá trị): Chứa số nguyên (Tính bằng đơn vị tiền vàng).

💻 Phần 2: Thực hành viết Code tạo Database đầu tiên

Hãy mở VS Code, tạo một file mới tên là bai1_database.py và gõ những dòng lệnh khởi tạo này:

import sqlite3  # Mượn thư viện SQLite có sẵn của Python

# 1. KẾT NỐI: Tạo ra (hoặc mở) file database tên là kho_bau.db
# Giống như việc chúng ta xây một tòa lâu đài vậy!
ket_noi = sqlite3.connect("kho_bau.db")

# 2. CON TRỎ (Cursor): Tạo ra một "người thợ" để giúp ta giao tiếp với database
nguoi_tho = ket_noi.cursor()

# 3. LỆNH SQL: Người thợ sẽ gửi câu lệnh này vào database để xây BẢNG
# Ta dùng ngôn ngữ SQL để ra lệnh: "CREATE TABLE IF NOT EXISTS" (Tạo bảng nếu chưa có)
nguoi_tho.execute("""
CREATE TABLE IF NOT EXISTS kho_bau (
    id INTEGER PRIMARY KEY AUTOINCREMENT, -- Khóa chính, tự động tăng số (1, 2, 3...)
    ten_vat_pham TEXT NOT NULL,          -- Cột tên, bắt buộc phải có chữ
    so_luong INTEGER DEFAULT 0,          -- Cột số lượng, mặc định là 0
    gia_tri INTEGER DEFAULT 0            -- Cột giá trị tiền vàng
)
""")

# 4. XÁC NHẬN: Báo với database là "Tôi đồng ý lưu những thay đổi này"
ket_noi.commit()

# 5. ĐÓNG CỬA: Làm việc xong thì đóng kết nối lại cho an toàn
ket_noi.close()

print("Chúc mừng hai con! Đã tạo thành công file kho_bau.db rồi nhé!")

🔍 Bước 3: Nghiệm thu sản phẩm (Bố cùng con kiểm tra)

Sau khi bấm Run và thấy dòng chữ chúc mừng hiện ra,  hãy làm các bước sau để thấy "phép thuật" xuất hiện:

  1. Nhìn vào thư mục chứa file code, các con sẽ thấy một file mới tinh vừa được sinh ra tên là kho_bau.db.

  2. Bố mở phần mềm DB Browser for SQLite đã cài ở đầu buổi lên.

  3. Bấm vào nút Open Database $\rightarrow$ chọn file kho_bau.db vừa tạo.

  4. Chọn tab Database Structure hoặc Browse Data.

Ta sẽ thấy ngay một cái bảng tên là kho_bau hiện ra với 4 cột: id, ten_vat_pham, so_luong, gia_tri trống trơn đang nằm chờ dữ liệu!

🏆 Thử thách tư duy:

Để khép lại Bài 1 và chuẩn bị cho Bài 2, hãy suy nghĩ và thử trả lời câu hỏi sau:

  • "Bây giờ cái tủ (Bảng) của chúng ta đã đóng xong khung và các ngăn rồi, nhưng bên trong chưa có món đồ nào cả. Đố hai con biết làm sao để dùng Python ném một cây 'Rìu chiến' và 100 'Quả táo vàng' vào trong cái tủ này mà dù chúng ta có tắt máy tính đi, ngày mai bật lên nó vẫn không bị mất?"