Primary key Constraint

Một phần của tài liệu Giáo trình cơ sở dữ liệu phần 2 SQL server đh công nghiệp tp HCM (Trang 55 - 58)

Trung Tâm CNTT - Trường ĐHCN Tp.HCM

Một bảng thường cĩ một hay nhiều cột với các giá trị riêng để nhận biết mỗi hàng trong bảng. Các cột này được gọi là khĩa chính (Primary key) của bảng và bảo đảm tính tồn vẹn thực thể của bảng.

SQL Server tự động tạo một chỉ mục cho bảng ứng với các cột tham gia primary key constraint.

Một bảng chỉ cĩ một constraint Primay key.

Một cột nằm trong constraint Primay key khơng thể chấp nhận giá trị Null, trùng lắp. Bởi vì Primay key constraint bảo đảm tính duy nhất của dữ liệu nên chúng thường được ấn định cho cột nhận dạng (identity column).

Nếu một Primay key constraint được ấn định trên nhiều cột, các giá trị cĩ thể được lặp lại trong một cột, nhưng mỗi sự kết hợp giá trị từ tất cả các cột trong Primay key constraint phải là sự kết hợp duy nhất.

Tạo Primary Key Constraint

Cĩ thể tạo constraint Primay key trong khi tạo table hoặc thêm constraint Primay key cho table cĩ sẳn

Để hiệu chỉnh constraint Primay key của một table thì bạn phải xĩa constraint Primay key và tạo lại.

Định nghĩa Primary Key Constraint khi tạo bảng:

- Định nghĩa ở mức cột

CREATE TABLE tablename

(columname datatype [ CONSTRAINT constraintname ]

PRIMARY KEY [ CLUSTERED | NONCLUSTERED ]

[ WITH FILLFACTOR = fillfactor ] [ON {filegroup | DEFAULT} ] [,...]

- Định nghĩa ở mức bảng

CREATE TABLE tablename

(columname datatype [,...], [CONSTRAINT constraintname ]

PRIMARY KEY [ CLUSTERED | NONCLUSTERED ]

{ ( column [ ASC | DESC ] [ ,...n ] ) } [ WITH FILLFACTOR = fillfactor ] [ ON { filegroup | DEFAULT } ]

Ví dụ 1: Vừa tạo bảng vừa định nghĩa Primary Key Constraint Cách 1: Định nghĩa ở mức cột

CREATE TABLE Table1

(col1 INT NOT NULL PRIMARY KEY, col2 VARCHAR(30)

)

-- Kiểm tra constraint

Trung Tâm CNTT - Trường ĐHCN Tp.HCM

Cách 2: Định nghĩa ở mức bảng CREATE TABLE Table2

(col1 INT NOT NULL, col2 VARCHAR(30)

CONSTRAINT Table2_PK PRIMARY KEY(col1) )

EXEC Sp_helpconstraint Table1

Định nghĩa Primary Key Constraint với bảng đã tồn tại:

- Định nghĩa ở mức cột

ALTER TABLE tablename ADD columname datatype [CONSTRAINT constraintname ] PRIMARY KEY [ON {filegroup | DEFAULT} ] [,...]

- Định nghĩa ở mức bảng

ALTER TABLE tablename ADD[CONSTRAINT constraintname] PRIMARY KEY { ( column [ ASC | DESC ] [ ,...n ] ) }

[ ON { filegroup | DEFAULT } ]

Ví dụ 2: Thêm một PRIMARY KEY constraint cho một bảng cĩ sẳn CREATE TABLE Table3

( col1 INT NOT NULL, col2 VARCHAR(30)

)

ALTER TABLE Table3

ADD CONSTRAINT table3_PK PRIMARY KEY (col1) EXEC Sp_helpconstraint Table3

Lưu ý: Khi một Primary Key Constraint được thêm vào một bảng với cột cĩ sẳn trong bảng thì SQL Server sẽ kiểm tra dữ liệu hiện cĩ cĩ tuân theo các qui tắc của một Primary key hay khơng: Khơng Null, Khơng trùng lắp. Nếu khơng thỏa qui tắc thì sẽ khơng tạo được Primary Key Constraint.

Xĩa một Primary Key Constraint

ALTER TABLE Table2

Trung Tâm CNTT - Trường ĐHCN Tp.HCM

Lưu ý: Khơng thể xĩa một Primary Key constraint nếu nĩ được tham chiếu bởi một Foreign key Constraint của một bảng khác, muốn xĩa thì phải xĩa Foreign key Constraint trước.

Một phần của tài liệu Giáo trình cơ sở dữ liệu phần 2 SQL server đh công nghiệp tp HCM (Trang 55 - 58)

Tải bản đầy đủ (PDF)

(147 trang)