Hệ quản trị SQL Server - Khóa chính
Khóa chính trong Sql Server
Khóa chính trong SQL Server là một trường đơn hoặc nhiều trường được sử dụng để xác định duy nhất một bản ghi. Bất kỳ trường nào của khóa chính không thể chứa giá trị null. Một bảng chỉ có thể có một khóa chính.
Bạn có thể tạo khóa chính bằng câu lệnh CREATE TABLE hoặc câu lệnh ALTER TABLE
Cú pháp:
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ] [ PRIMARY KEY ],
column2 datatype [ NULL | NOT NULL ],
...
);
Hoặc
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
...
CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ... column_n)
);
Ví dụ:
Tạo một bảng "cricketers" có trường "cricketer_id" là khóa chính
CREATE TABLE cricketers
( cricketer_id INT PRIMARY KEY,
last_name VARCHAR(50) NOT NULL,
first_name VARCHAR(50) NOT NULL,
salary MONEY
);
Kết quả:
Bạn có thể xem bảng đã tạo bằng cách sử dụng lệnh SELECT:
SELECT *
FROM [javatpoint].[dbo].[cricketers]
Kết quả:
Trường cricketer_id là khóa chính.
Bạn cũng có thể tạo bảng có khóa chính bằng cách sử dụng cú pháp thứ hai:
Ví dụ:
CREATE TABLE cricketers2
( cricketer_id INT,
last_name VARCHAR(50) NOT NULL,
first_name VARCHAR(50) NOT NULL,
salary MONEY,
CONSTRAINT cricketers2_pk PRIMARY KEY (cricketer_id)
);
Kết quả:
Bạn có thể xem bảng đã tạo bằng cách sử dụng lệnh SELECT:
SELECT *
FROM [javatpoint].[dbo].[cricketers2]
Kết quả:
Cách dùng nhiều trường làm khóa chính
Ví dụ:
CREATE TABLE cricketers3
( last_name VARCHAR(50) NOT NULL,
first_name VARCHAR(50) NOT NULL,
salary MONEY,
CONSTRAINT cricketers3_pk PRIMARY KEY (last_name, first_name)
);
Kết quả:
Bạn có thể xem bảng đã tạo bằng cách sử dụng lệnh SELECT
SELECT *
FROM [javatpoint].[dbo].[cricketers3]
Kết quả:
Chúng ta lấy 2 trường last_name và first_name làm khóa chính.
Tạo khóa chính dùng lệnh ALTER TABLE
Bạn có thể sử dụng câu lệnh ALTER TABLE để tạo khóa chính chỉ trên một cột hoặc nhiều cột đã được xác định là NOT NULL.
Cú pháp:
ALTER TABLE table_name
ADD CONSTRAINT constraint_name PRIMARY KEY (column1, column2, ... column_n);
Ví dụ:
Tạo một khóa chính "cricketer_id" trong bảng "cricketers2".
ALTER TABLE [javatpoint].[dbo].[cricketers2]
ADD CONSTRAINT cricketers2_pk PRIMARY KEY (cricketer_id);
Kết quả: