Tác dụng của khóa chính trong cơ sở dữ liệu

Bởi Kiên Smart Data
0 Nhận xét
Primary Key có ý nghĩa gì

Khóa chính trong SQL là gì? Tác dụng của khóa chính trong cơ sở dữ liệu quan hệ là gì? Tạo khóa chính trong MySQL thế nào? Hãy cùng SmartData tìm hiểu những điều cần biết về khóa chính trong SQL với bài viết sau đây.

Xem thêm tại video sau:

Tác dụng của khóa chính trong cơ sở dữ liệu

Khóa chính (Primary Key) là gì? 

Khóa chính là tập trường dữ liệu (cột) có giá trị duy nhất giữa các hàng (record). Khóa chính để xác định chính xác Record nào đó trong bảng, nên khi ứng dụng hãy chọn một loại dữ liệu chuyên biệt nào đó làm khóa chính. Biết khóa chính sau này sẽ nhanh chóng tìm đến Record chứa khóa chính đó

Tác dụng của khóa chính

Như đã chia sẽ ở bài DDL trong SQL, bạn có thể thấy chúng ta hoàn toàn có thể tạo một bảng (table) mà không cần xác định yếu tố khóa chính.

Tùy nhiên điều này sẽ nói lên sự khác biệt giữa một bảng có khóa chính và một bảng không có khóa chính. Vấn đề ở đây là với các bảng không có khóa chính thì có thể tổn tại hai hoặc nhiều bản ghi chứa dữ liệu giống nhau ở tất cả các trường thuộc tính, không xác định được đối tượng có tồn tại hay chưa? Có là duy nhất trong một table hay không.

Như ví dụ dưới đây bảng không được xác định khóa chính dẫn đến các bản ghi bị trùng lặp.

Sau khi đánh dấu Khóa chính cho trường MAGV, và Insert 1 bản ghi có MAGV là ‘GV1’

ALTER TABLE .`giaovien`  CHANGE COLUMN `MAGV` `MAGV` CHAR(5) NOT NULL , ADD PRIMARY KEY (`MAGV`);

Ta được kết quả:

Tuy nhiên khi mình cố gắng insert 1 bản ghi khác cũng có MAGV = ‘GV1’ thì sẽ gặp lỗi 

Vậy ta thấy rõ cần tồn tại một/ một nhóm trường thuộc tính định danh cho Table gọi là KHÓA CHÍNH (primary key):

  • Chứa các giá trị không rỗng (NULL)
  • Chỉ tồn tại dữ liệu duy nhất, không trùng lặp.

Cách tạo khóa chính

  • Tạo khóa chính trong lúc khởi tạo Table

Cú pháp:

CREATE TABLE <Tên Table> (            <column1> <kiểu dữ liệu> PRIMARY KEY,              <column2> <kiểu dữ liệu>,             …    <columnn> <kiểu dữ liệu> )

Ví dụ:

CREATE TABLE HOCSINH ( MAHS CHAR(5) PRIMARY KEY, TEN NVARCHAR(30), NAM BIT, NGAYSINH DATETIME, DIACHI VARCHAR(20), DIEMTB FLOAT )
  • Tạo khóa chính sau khi khai báo tất cả column

Cú pháp:

CREATE TABLE <Tên Table> (             <column1> <kiểu dữ liệu>,             <column2> <kiểu dữ liệu>,             ...             <columnn> <kiểu dữ liệu>             PRIMARY KEY (columnKey1, columnKey2…, columnKeyn))

Ví dụ: 

CREATE TABLE GIAOVIEN ( TEN NVARCHAR(30) NOT NULL, Nam BIT, NGAYSINH DATETIME NOT NULL, DIACHI VARCHAR(20), LUONG MONEY, PRIMARY KEY (TEN, NGAYSINH) )

Như ví dụ ở trên, mình đã xác định khóa chính bằng sự kết hợp giá trị của 2 trường TEN và NGAYSINH. 

  • Tạo khóa chính cho Table sẵn có

Khóa chính có một column:

ALTER TABLE <Tên Table> ADD PRIMARY KEY(column)

Khóa chính có nhiều column:

ALTER TABLE <Tên Table> ADD PRIMARY KEY(column1,column2,…columnn)

Ví dụ:

ALTER TABLE HOCSINH ADD PRIMARY KEY(MAHS)

Tổng kết

Bài viết trên SmartData đã giới thiệu với các bạn một số tác dụng của khóa chính trong SQL

Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 6 tháng của SmartData

Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa:

Bài viết liên quan

Để lại nhận xét

Copyright @2022 – Bản quyền thuộc Học viện dữ lệu Smart Data