Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi
    solution
    Đăng nhập
    Đăng nhập

    Đề bài: [SQL 7.1] Khóa chính của các bảng

    📖Cần ôn lý thuyết? Đọc bài giảng Buổi 7: Mối quan hệ giữa bảng & Normal Form — khóa SQL

    Trong ER Diagram của hệ thống chứng khoán, việc đầu tiên là xác định khóa chính (PK) của từng bảng. Thay vì đọc lược đồ bằng mắt, hãy để CSDL tự trả lời: dùng INFORMATION_SCHEMA để liệt kê mọi cột thuộc khóa chính của mọi bảng dữ liệu trong CSDL hiện tại.

    • Với khóa chính gồm nhiều cột (composite key), mỗi cột là một dòng, theo thứ tự cột trong khóa.
    • Sắp xếp theo tên bảng (không phân biệt hoa/thường: dùng LOWER(TABLE_NAME)), sau đó theo ORDINAL_POSITION.
    • Chỉ lấy bảng của CSDL hiện tại (MySQL: nhớ lọc TABLE_SCHEMA = DATABASE(), vì INFORMATION_SCHEMA của MySQL chứa cả các CSDL khác).
    • Định dạng đầu vào:

      INFORMATION_SCHEMA.TABLE_CONSTRAINTS, INFORMATION_SCHEMA.KEY_COLUMN_USAGE (nối bằng CONSTRAINT_NAME + TABLE_NAME).

    • Định dạng đầu ra:

      TABLE_NAME, COLUMN_NAME (phân cách TAB); sắp theo LOWER(TABLE_NAME), ORDINAL_POSITION.

    Ví dụ:

    Đầu vào:

    Đầu ra:

    Accounts	account_id
    AuditLog	log_id
    Customers	customer_id
    CustomerStats	customer_id
    MarketPrices	symbol
    MarketPrices	trade_date
    Orders	order_id
    Portfolio	account_id
    Portfolio	symbol
    Securities	symbol
    Trades	trade_id

    Giải thích:

    Dữ liệu gốc: 9 bảng; MarketPrices và Portfolio có khóa chính gồm 2 cột nên mỗi bảng chiếm 2 dòng.

    Chủ đề

    📊 SQLSQLSQL: Buổi 7 – Quan hệ bảng & Normal FormTất cả môn học

    Đang tải editor...