Khóa chính trong SQL là gì? Tạo khóa chính trên các cơ sở dữ liệu quan hệ khác nhau như thế nào?Hãy cùng SmartData tìm hiểu cách tạo khóa chính trong Sql.
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 trường hoặc nhóm trường có 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 Tổng hợp một số câu lệnh DDL thường dùng, 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.
Tuy 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.
Chúng ta đang nói trên tổng thể là Khóa chính của bảng trong cơ sở dữ liệu quan hệ SQL. Vậy mới mỗi loại cơ sở dữ liệu quan hệ cụ thể thì thao tác với khóa chinh sẽ ra sao. Hãy cùng mình tìm hiểu sau đây
Tạo khóa chính trong sql
Tạo khóa chính trong database MySQL
- Tạo trong lệnh tạo bảng Create Table
Để chọn trường cho khóa chính ta sẽ đặt từ khóa primary key đằng sau column đó.
Ví dụ:
CREATE TABLE users ( id INT(10) UNSIGNED NOT NULL PRIMARY KEY, name VARCHAR(70) NOT NULL, email VARCHAR(70) NOT NULL )
Hoặc ta sẽ dùng lệnh PRIMARY KEY(field) đặt ở cuối các fields trong lệnh tạo bảng
Ví dụ:
CREATE TABLE users ( id INT(10) UNSIGNED NOT NULL, name VARCHAR(70) NOT NULL, email VARCHAR(70) NOT NULL, PRIMARY KEY(id))
Chọn nhiều trường để tạo một khóa chính ta sử dụng lệnh PRIMARY KEY(field1, field2, ..) và đặt nó ở cuối danh sách các field trong lệnh tạo bảng.
Ví dụ:
CREATE TABLE users ( id INT(10) UNSIGNED NOT NULL, email VARCHAR(70) NOT NULL, email VARCHAR(70) NOT NULL, PRIMARY KEY(id, email) )
- Tạo khóa chính sử dụng lệnh Alter
Cách này được sử dụng trong trường hợp bảng đã được tạo trước, rồi sau đó mới tạo khóa chính. Ta sử dụng cú pháp:
ALTER TABLE table_name ADD PRIMARY KEY(primary_key_column);
Ví dụ:
ALTER TABLE users ADD PRIMARY KEY(id)
Tạo khóa chính trong database SQL Server
- Tạo khóa chính trong quá trình khai báo column
Ví dụ:
CREATE TABLE SINHVIEN ( MASV CHAR(5) PRIMARY KEY, TEN NVARCHAR(30), NGAYSINH DATETIME, DIACHI VARCHAR(20), DIEMTB FLOAT )
Hoặc ta cũng có thể thiết lập khóa chinh sau khi đã khai báo hết các fields, khóa chính cũng có thể được tạo bởi nhiều trường.
Ví dụ:
CREATE TABLE GIAOVIEN ( TEN NVARCHAR(30) NOT NULL, NGAYSINH DATETIME NOT NULL, DIACHI VARCHAR(20), LUONG MONEY, PRIMARY KEY (TEN, NGAYSINH) )
- Tạo khóa chính trên bảng đã tạo trước đó
Ví dụ:
ALTER TABLE DUAN ADD PRIMARY KEY(MADA)
Tạo khóa chính trong database Oracle
- Tạo khóa chính trong quá trình khai báo column
Khác với 2 database ở trên, với oracle chúng ta sẽ tạo khóa chính giống như tạo một ràng buộc, phải định danh cho khóa chính và khai báo chúng khi đã khai báo hết các fields.
Ví dụ:
CREATE TABLE Test2( ID Number, NAME Varchar2 CONSTRAINT test2_pk PRIMARY KEY (ID) )
- Tạo khóa chính trên bảng đã tạo trước đó.
Ví dụ:
ALTER TABLE student ADD CONSTRAINT student_pk PRIMARY KEY(id);
Kết luận
Thông qua bài viết chúng ta đã tìm hiểu chi tiết cách khai báo khóa chính với một số cơ sở dữ liệu quan hệ thường dùng, về tổng quan chúng đều hướng đến việc khai báo một khóa chính chỉ khác nhau đôi chút về câu lệnh. Để tìm hiểu thêm các bài viết hay về SQL, bạn có thể tham khảo seri của chúng tôi.
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 3 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: