Bài MySQL 37: Khóa chính trong MySQL

0
149

Xin chào các bạn, trong bài học ngày hôm nay chúng ta sẽ cùng nhau tìm hiểu về cách sử dụng khóa chính trong MySQL và cách tạo khóa chính cho bảng.

Giới thiệu

Khóa chính hay còn gọi là Primary key là một cột hoặc một tập hợp các cột dùng để xác định mỗi hàng duy nhất trong bảng. Bạn phải tuân thủ các quy tắc dưới đây khi bạn xác định khóa chính cho bảng:

  • Khóa chính phải chứa các giá trị duy nhất. Nếu khóa chính bao gồm nhiều cột, kết hợp các giá trị trong các cột này cũng phải là duy nhất.
  • Cột khóa chính không thể chứa giá trị NULL. Nó có nghĩa là bạn phải khai báo cột khóa chính với thuộc tính NOT NULL. Nếu không, MySQL sẽ để cột khóa chính là NOT NULL một cách ngầm định.
  • Một bảng chỉ có một khóa chính.

Bởi vì MySQL hoạt động nhanh hơn với các số nguyên, kiểu dữ liệu của cột khóa chính phải là số nguyên, ví dụ INT, BIGINT. Tuy nhiên, bạn nên đảm bảo rằng phạm vi giá trị của loại số nguyên cho khóa chính là đủ để lưu trữ tất cả các hàng có thể có.

Cột khóa chính thường có thuộc tính AUTO_INCREMENT, khóa chính của hàng tiếp theo sẽ tự động tăng.

Khi bạn định nghĩa một khóa chính cho một bảng, MySQL sẽ tự động tạo một chỉ mục có tên là PRIMARY.

Xác định khóa chính của bảng bằng cách sử dụng câu lệnh CREATE TABLE

Bạn thường định nghĩa khóa chính khi tạo bảng bằng câu lệnh CREATE TABLE. Để tạo ra một khóa chính cho bảng, bạn cần chỉ định PRIMARY KEY trong định nghĩa của cột.

Ví dụ sau tạo bảng người dùng có khóa chính là cột user_id:

Bạn cũng có thể chỉ định PRIMARY KEY ở cuối câu lệnh CREATE TABLE như sau:

Trong trường hợp khóa chính bao gồm nhiều cột, bạn phải chỉ định chúng ở cuối câu lệnh CREATE TABLE. Bạn đặt danh sách các khóa chính phân cách nhau bằng dấu phẩy bên trong dấu ngoặc đơn theo sau các từ khóa PRIMARY KEY.

Xác định khóa chính bằng cách sử dụng câu lệnh ALTER TABLE

Nếu một bảng vì một số lý do nào đó mà không có khóa chính, bạn có thể sử dụng câu lệnh ALTER TABLE để xác định khóa chính của bảng như sau:

Ví dụ sau thêm cột id thành khóa chính.

Bước 1: các bạn tạo bảng t1 mà không có khóa chính.

Bước 2: chỉ định cột id là khóa chính của bảng t1.

Kết luận

Như vậy trong bài học ngày hôm nay mình đã giới thiệu cho các bạn về khóa chính trong MySQL.  Trong bài học tiếp theo chúng ta sẽ tìm hiểu về khóa ngoại trong MySQL.

Chúc các bạn học tập tốt!

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây