3/18/2020
Khóa chính - primary keys là một trường hoặc tập hợp trường chứa các giá trị duy nhất xuyên suốt một bảng. Bạn có thể sử dụng các giá trị của khóa để tham chiếu tới toàn bộ các bản ghi, do mỗi bản ghi lại có một giá trị khóa khác nhau. Mỗi bảng chỉ có thể có một khóa chính (primary keys). Access có thể tự động tạo trường khóa chính cho bạn khi bạn tạo bảng hoặc bạn có thể chỉ định trường mình muốn sử dụng làm khóa chính. Bài viết này sẽ giải thích cách thức và lý do nên sử dụng khóa chính.
Tổng quan về primary keys trong Access
Access sử dụng các khóa chính - primary keys để nhanh chóng liên kết dữ liệu từ nhiều bảng và kết hợp chúng một cách có ý nghĩa. Bạn có thể thêm các trường khóa chính trong các bảng khác để tham chiếu trở lại bảng gốc là nguồn của khóa chính. Trong các bảng khác đó, các trường được gọi là khóa ngoại. Ví dụ: trường ID trong bảng Customers cũng có thể xuất hiện trong bảng Orders. Trong bảng Customers, ID là khóa chính. Trong bảng Orders, ID được gọi là khóa ngoại - foreign key. Khóa ngoại - foreign key, nói một cách dễ hiểu là khóa chính của một bảng khác.

1. Primary key
2. Foreign key
Nếu bạn đang chuyển dữ liệu hiện có vào một cơ sở dữ liệu, bạn có thể đã có sẵn một trường mà bạn có thể dùng làm khóa chính. Thông thường, khóa chính thường là số ID hoặc một số sê-ri hoặc mã. Ví dụ, bảng Customers, trường ID khách hàng là khóa chính.
Access tự động tạo một chỉ mục cho khóa chính nhằm giúp tăng tốc truy vấn và các thao tác khác. Access cũng đảm bảo rằng mọi bản ghi đều có một giá trị trong trường khóa chính và giá trị đó luôn duy nhất.
Khi bạn tạo bảng mới trong dạng xem Biểu dữ liệu, Access sẽ tự động tạo khóa chính cho bạn và gán tên trường của "ID", cũng như loại dữ liệu AutoNumber.
Thế nào là một khóa chính - primary key tốt?
Thông thường khóa chính có các đặc điểm sau:
Nếu bạn không thể xác định được một khóa chính, hãy tạo một trường AutoNumber để dùng làm khóa. Trường AutoNumber sẽ tự tạo một giá trị cho mình mỗi khi có bản ghi được lưu lần đầu. Vì vậy, trường AutoNumber sẽ đáp ứng cả ba đặc điểm của một khóa chính tốt. Để biết thêm thông tin về cách thêm trường Số Tự động, hãy xem phần

Ví dụ các primary keys kém hiệu quả
Bất kỳ trường nào thiếu một trong những đặc điểm của một khóa chính tốt sẽ bị coi là khóa chính kém. Dưới đây là một vài ví dụ về các trường bị xem như là các khóa chính kém đối với bảng Contacts kèm theo phần giải thích lý do vì sao.
|
Các khóa chính kém |
|
Lý do |
|
Tên cá nhân |
|
Có thể bị trùng tên à không là duy nhất |
|
Số điện thoại |
|
Có thể thay đổi |
|
E-mail address |
|
Có thể thay đổi |
|
Zip code |
|
Nhiều người có thể sở hữu cùng ZIP code |
|
Tổ hợp dữ liệu và con số |
|
Phần dữ liệu có thể thay đổi, gây khó khăn cho việc quản lý. Có thể gây nhầm lẫn nếu phần dữ liệu được dùng lặp lại làm một trường riêng. Ví dụ, kết hợp thành phố và một chữ số tăng dần (ví dụ, NEWYORK0579) sẽ là một lựa chọn tồi nếu thành phố đó cũng được lưu làm một trường. |
|
Số An sinh Xã hội (SSN) |
|
|
Khóa tổ hợp: có nhiều hơn 1 khóa chính trong một bảng
Trong một số trường hợp, bạn sẽ muốn sử dụng hai trường trở lên làm khóa chính trong một bảng. Ví dụ: bảng Chi tiết Đơn hàng lưu trữ các mục dòng cho đơn hàng có thể sử dụng hai trường làm khóa chính: ID Đơn hàng và ID Sản phẩm. Một khóa chứa nhiều trường được gọi là khóa tổng hợp.
Thêm khóa chính (primary key) vào bảng
Tạo khóa chính để liên kết dữ liệu giữa nhiều bảng.


Gỡ bỏ khóa chính - primary key trong Access
Khi bạn loại bỏ khóa chính, các trường trước đó được dùng làm khóa chính sẽ không cung cấp các phương tiện chính để nhận dạng một bản ghi nữa.
Loại bỏ khóa chính không xóa hẳn các trường khỏi bảng của bạn mà chỉ loại bỏ chỉ mục được tạo cho khóa chính đó.


Mẹo: Nếu bạn không nhìn thấy khung điều hướng, nhấn F11 để hiển thị nó.
Nếu khóa chính bao gồm một trường đơn lẻ, hãy bấm vào bộ chọn hàng dành cho trường đó.
Nếu khóa chính bao gồm nhiều trường, hãy bấm vào bộ chọn hàng dành cho trường bất kỳ trong khóa chính.
Các khóa được chỉ định bị xóa khỏi các trường mà trước đó bạn đã chọn làm khóa chính.
Lưu ý: Khi bạn lưu một bảng mới mà không đặt khóa chính, Access sẽ nhắc bạn tạo một khóa. Nếu bạn chọn Có, Access sẽ tạo một trường ID sử dụng kiểu dữ liệu AutoNumber để cung cấp một giá trị duy nhất cho mỗi bản ghi. Nếu bảng của bạn đã có sẵn một trường AutoNumber rồi, Access sẽ dùng trường đó làm khóa chính.
Thay đổi khóa chính trong Access
Nếu bạn quyết định thay đổi khóa chính của một bảng, bạn có thể thực hiện theo các bước sau: