Composite key là gì

Bài này cafedev chia sẻ cho ace về cách tạo ràng buộc với khoá chính[
PRIMARY KEY], khoá ngoại[FOREIGN KEY] của bảng trong SQL như thế nào?

1. Khoá chính[PRIMARY KEY] trong SQL

Ràng buộc PRIMARY KEY xác định duy nhất từng của từng dữ liệu trong bảng.

Khóa chính phải chứa giá trị DUY NHẤT và không được chứa giá trị NULL.

Một bảng chỉ có thể có MỘT khóa chính và trong bảng, khóa chính này có thể bao gồm một hoặc nhiều cột [trường].

Ví dụ:

  • SQL PRIMARY KEY trong CREATE TABLE

SQL sau tạo một KHÓA CHÍNH trên cột “ID” khi bảng “Persons” được tạo:

MySQL:

/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: Fanpage: //www.facebook.com/cafedevn Group: //www.facebook.com/groups/cafedev.vn/ Instagram: //instagram.com/cafedevn Twitter: //twitter.com/CafedeVn Linkedin: //www.linkedin.com/in/cafe-dev-407054199/ Pinterest: //www.pinterest.com/cafedevvn/ YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ CREATE TABLE Persons [ ID int NOT NULL, LastName varchar[255] NOT NULL, FirstName varchar[255], Age int, PRIMARY KEY [ID] ];

SQL Server / Oracle / MS Access:

CREATE TABLE Persons [ ID int NOT NULL PRIMARY KEY, LastName varchar[255] NOT NULL, FirstName varchar[255], Age int ];

Để cho phép đặt tên cho ràng buộc KHÓA CHÍNH và để xác định ràng buộc KHÓA CHÍNH trên nhiều cột, hãy sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Persons [ ID int NOT NULL, LastName varchar[255] NOT NULL, FirstName varchar[255], Age int, CONSTRAINT PK_Person PRIMARY KEY [ID,LastName] ];

Lưu ý: Trong ví dụ trên chỉ có MỘT KHÓA CHÍNH [PK_Person]. Tuy nhiên, GIÁ TRỊ của khóa chính được tạo thành từ HAI CỘT [ID + LastName].

  • SQL PRIMARY KEY trong ALTER TABLE

Để tạo ràng buộc CHÍNH CHÍNH trên cột “ID” khi bảng đã được tạo, hãy sử dụng SQL sau:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD PRIMARY KEY [ID];

Để cho phép đặt tên cho ràng buộc KHÓA CHÍNH[PRIMARY KEY] và để xác định ràng buộc KHÓA CHÍNH[PRIMARY KEY] trên nhiều cột, hãy sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Persons ADD CONSTRAINT PK_Person PRIMARY KEY [ID,LastName];

Lưu ý: Nếu bạn sử dụng câu lệnh ALTER TABLE để thêm khóa chính, [các] cột khóa chính phải được khai báo không chứa giá trị NULL [khi bảng được tạo lần đầu tiên].

  • Xoá PRIMARY KEY Constraint

Để loại bỏ ràng buộc Khoá CHÍNH, hãy sử dụng SQL sau:

MySQL:

ALTER TABLE Persons DROP PRIMARY KEY;

SQL Server / Oracle / MS Access:

ALTER TABLE Persons DROP CONSTRAINT PK_Person;

2. Khoá ngoại[FOREIGN KEY] trong SQL

KEY FOREIGN là một khóa ngoại dùng để liên kết hai bảng với nhau.

KHÓA NGOẠI là một trường [hoặc tập hợp các trường] trong một bảng tham chiếu đến KHÓA CHÍNH trong một bảng khác.

Bảng chứa khóa ngoại được gọi là bảng con và bảng chứa khóa ứng viên được gọi là bảng tham chiếu hoặc bảng cha.

Nhìn vào hai bảng sau:

Bảng Persons:

PersonIDLastNameFirstNameAge
1HOÁTINH30
2LANTƯỚNG23
3XUÂN20

Bảng Orders:

OrderIDOrderNumberPersonID
1778953
2446783
3224562
4245621

Lưu ý rằng cột “PersonID” trong bảng “Order” trỏ đến cột “PersonID” trong bảng “Person”.

Cột “PersonID” trong bảng “Person” là TỪ KHÓA CHÍNH[] trong bảng “Person”.

Cột “PersonID” trong bảng “Đơn hàng” là một TỪ KHÓA NGOẠI TỆ trong bảng “Đơn hàng”.

Ràng buộc FOREIGN KEY được sử dụng để ngăn chặn các hành động phá hủy liên kết giữa các bảng.

Ràng buộc NGOẠI KHÓA cũng ngăn không cho dữ liệu không hợp lệ được chèn vào cột khóa ngoại, vì nó phải là một trong những giá trị có trong bảng mà nó trỏ tới.

  • SQL FOREIGN KEY trong CREATE TABLE

SQL sau tạo một TỪ KHÓA NGOẠI trên cột “PersonID” khi bảng “Orders” được tạo:

MySQL:

CREATE TABLE Orders [ OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY [OrderID], FOREIGN KEY [PersonID] REFERENCES Persons[PersonID] ];

SQL Server / Oracle / MS Access:

CREATE TABLE Orders [ OrderID int NOT NULL PRIMARY KEY, OrderNumber int NOT NULL, PersonID int FOREIGN KEY REFERENCES Persons[PersonID] ];

Để cho phép đặt tên cho ràng buộc NGOẠI KHÓA và để xác định ràng buộc NGOẠI KHÓA trên nhiều cột, hãy sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: Fanpage: //www.facebook.com/cafedevn Group: //www.facebook.com/groups/cafedev.vn/ Instagram: //instagram.com/cafedevn Twitter: //twitter.com/CafedeVn Linkedin: //www.linkedin.com/in/cafe-dev-407054199/ Pinterest: //www.pinterest.com/cafedevvn/ YouTube: //www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ CREATE TABLE Orders [ OrderID int NOT NULL, OrderNumber int NOT NULL, PersonID int, PRIMARY KEY [OrderID], CONSTRAINT FK_PersonOrder FOREIGN KEY [PersonID] REFERENCES Persons[PersonID] ];
  • SQL FOREIGN KEY trong ALTER TABLE

Để tạo ràng buộc NGOẠI KHÓA trên cột “PersonID” khi bảng “Orders” đã được tạo, hãy sử dụng SQL sau:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders ADD FOREIGN KEY [PersonID] REFERENCES Persons[PersonID];

Để cho phép đặt tên cho ràng buộc NGOẠI KHÓA và để xác định ràng buộc NGOẠI KHÓA trên nhiều cột, hãy sử dụng cú pháp SQL sau:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders ADD CONSTRAINT FK_PersonOrder FOREIGN KEY [PersonID] REFERENCES Persons[PersonID];
  • Xoá FOREIGN KEY Constraint

Để loại bỏ ràng buộc NGOẠI KHÓA, hãy sử dụng SQL sau:

MySQL:

ALTER TABLE Orders DROP FOREIGN KEY FK_PersonOrder;

SQL Server / Oracle / MS Access:

ALTER TABLE Orders DROP CONSTRAINT FK_PersonOrder;

Full series tự học SQL từ cơ bản tới nâng cao tại đây nha.

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

  • Group Facebook
  • Fanpage
  • Youtube
  • Instagram
  • Twitter
  • Linkedin
  • Pinterest
  • Trang chủ

Chào thân ái và quyết thắng!

Khóa chính là gì? Thông tin khóa chính dành cho người mới tiếp xúc máy tính

Khóa chính là gì? Những thao tác cơ bản của khóa chính trong cơ sở dữ liệu SQL là gì? Phân biệt khóa chính và khóa ngoại trong SQL như thế nào? Hãy cùng 123job.vn đi giải đáp thắc mắc này nhé.

Đối với tin học văn phòng và các bạn làm về công nghệ thông tin thì đã quá quen thuộc với cụm từ khóa chính trong cơ sở dữ liệu máy tính. Nhưng đa số chúng ta vẫn chưa hiểu hết được về cụm từ này cũng như chức năng của nólà gì? Vậy khóa chính là gì? Những thao tác cơ bản của nólà gì? Phân biệt khóa chính và khóa ngoại trong SQL Server như thế nào? Hãy cùng 123job.vn đi giải đáp thắc mắc này nhé.

I. Khóa chính - yếu tố thiết yếu đối với cơ sở dữ liệu

1. Khái niệm

Khóa chính là gì?

Khái niệm về khóa chính luôn là điều mà mọi người quan tâm và đặt ra rất nhiều câu hỏi xoay quanh nó. Những ai mới tiếp xúc với cơ sở dữ liệu SQL Server và mới làm quen với việc xử lý cơ sở dữ liệu SQL Serverdatabase thì chắc chưa nắm rõ được về khóa chính. Khóa chính được hiểu là khái niệm được sử dụng trong các lĩnh vực liên quan đến ngành công nghệ thông tin, toán tin, khoa học dữ liệu thuộc cơ sở dữ liệu SQL Server. Trong tiếng anh nócó tên gọi là Primary Key với ký hiệu một chiếc chìa khóa đi kèm. Qua tìm hiểu cơ bản này chúng ta có thể hiểu khóa chính theo cách như sau:

- Khóa chính hay với tên gọi khác là khóa ràng buộc chính thường được dùng để định danh mỗi một record trong bảng table duy nhất của cơ sở dữ liệu SQLServer

- Ngoài ra nó còn có thể thể hiện các giá trị trong bảng với nhau trong cơ sở dữ liệu SQL Server.

Tuy nhiên, khi sử dụng khóa chính trong cơ sở dữ liệu SQLServer thì người dùng cũng cần chú ý đến một và điều như sau:
- Mỗi một table chỉ nên sử dụng một khóa chính, thiết lập một Primary Key duy nhất, không được phép chứa các giá trị Null
- Trong cơ sử dữ liệu SQLServer thì nókhông được là các miền field rỗng, không chứa các cơ sở dữ liệu SQL Server gì hết.
- Các khóa chính trong cơ sở dữ liệu SQL Server thường được thiết lập trong mối quan hệ định dạng giống nhau về một số đặc điểm của cơ sở dữ liệu SQLServer như dữ liệu, kích thước field
- Khóa chính sẽ do người thiết lập cơ sở dữ liệu SQLServer quy định

2. Chức năng của khóa chính

Chức năng là gì?

Khóa chính cũng như khóa ngoại rất quan trọng đối với cơ sở dữ liệu SQLServer và dưới đây chính là những chức năng chính của nó:

- Khóa chính sẽ là nơi chứa các giá trị duy nhất hay cơ sở dữ liệu SQL Server duy nhất được lưu thông xuyên suốt ở nhiều table với nhau. Mỗi table sẽ ghi mỗi giá trị khác nhau và người thiết lập khóa chính sẽ sử dụng các giá trị trong các table đó vì chúng được thiết lập ở cùng một định dạng với nhau.

- Nóchỉ được thiết lập duy nhất trên mỗi table và có nhiều table chứa duy nhất một khóa chính. Khi thiết lập khóa chính thì có nhiều ứng dụng yêu cầu người dùng thiết lập khóa chính nhưng Access lại chủ động tạo khóa chính cho người dùng.

3. Phạm vi áp dụng chủ yếutrong đời sống

Phạm vi chủ yếu để áp dụng khóa chính chính là đời sống hiện tại như tin học mà đặc biệt là trong lĩnh vực tin học văn phòng. Sử dụng khóa chính sẽ giúp cho việc xử lý các giá trị trong cơ sở dữ liệu SQLServer nhanh hơn và thuận tiện hơn.

Nhưng việc sử dụng khóa chính lại rất khó, không hề đơn giản như chúng ta nghĩ, những người mới làm quen sẽ cần thời gian để học tập và học cách vận dụngtrong lĩnh vực tin học và ứng dụng điều đó vào trong cuộc sống hàng ngày.

4. Cách thiết lập khóa chính cho người mới dùng

Cách thiết lập Primary Key cho người mới dùng

Những người mới làm quen với việc sử dụng khóa chính thì cần thời gian làm quen với việc thiết lập. Dưới đây là các bước thiết lậptrong cơ sở dữ liệu SQLServer cho người mới bắt đầu chi tiết nhất:
- Dùng các câu lệnh để tạo khóa chính trong cơ sở dữ liệu SQLServer Create table như: [MaSV varchar [8] NOT NULL, Holot varchar [20], Ten varchar [8], NgaySinh Date, MaLop varchar [8] NOT NULL, Lienhe varchar [11] NOT NULL, PRIMARY KEY [MaSV]
- Nếu phải thiết lập Primary Keytrong cơ sở dữ liệu SQLServer từ nhiều miền khác nhau thì người dùng cần tạo mối quan hệ ràng buộc giữa các từ khóa chính với câu lệnh như:
[MaSV varchar [8] NOT NULL, Holot varchar [20], Ten varchar [8], NgaySinh Date, MaLop varchar [8] NOT NULL, Lienhe varchar [11] NOT NULL, …]

II. Một số thao tác thác về khoá chính

1. Cách tạo primary key

Cách tạo primary key

1.1. Tạo Primary Key bằng lệnh CREATE TABLE

CREATE TABLE ten_bang
[cot1 kieu_du_lieu [ NULL | NOT NULL ] [ PRIMARY KEY ] ,cot2 kieu_du_lieu [ NULL | NOT NULL ] ,…];

1.2. Tạo Primary Keybằng lệnh ALTER TABLE

ALTER TABLE ten_bang
ADD CONSTRAINT ten_rang_buoc PRIMARY KEY [ cot1, cot2, … cot_n]

2. Xóa Primary Key trong cơ sở dữ liệu SQL Server

Nếu trong trường lập thiết lập sai hoặc nhầm khóa chính trong cơ sở dữ liệu SQLServer thì cần xóa khóa chính bằng lệnh ALTER TABLE

ALTER TABLE ten_bang
DROP CONSTRAINT ten_rang_buoc ;

3. Vô hiệu hóa Primary Key trong cơ sở dữ liệu SQL Server

Vô hiệu hóatrong cơ sở dữ liệu SQL Server

Cú pháp để vô hiệu hóa trong cơ sở dữ liệu bằng lệnh ALTER INDEX như sau:

ALTER INDEX ten_rang_buoc ON ten_bang
DISABLE ;

4. Kích hoạt khóa chính trong cơ sở dữ liệu SQL Server

Muốn kích hoạtPrimary Key thì chúng ta sử dụng lệnh ALTER INDEX:

ALTER INDEX ten_rang_buoc ON ten_bang
REBUILD;

III. Phân biệt khóa chính và khóa ngoại trong cơ sở dữ liệu SQLServer

1. Giới thiệu chung về khóa ngoại

Khóa ngoại là gì?

Trong lĩnh vực tin học văn phòng thì ngoàiPrimary Key trong cơ sở dữ liệu SQLServer thì còn có khóa ngoại. Vậy khóa ngoại là gì? Khóa ngoại cũng được hiểu nghĩa tương đương với khóa chính với những đặc điểm như sau:

- Khóa ngoại của table là con trỏ chỉ tới các khóa chính ở các bảng khác
- Muốn xóa khóa ngoại trong cơ sở dữ liệu SQLServer thì người dùng cần sử dụng câu lệnh như sau:
ALTER TABLE DiemSV DROP FOREIGN KEY Ma

2. Phân biệt khóa chính với khóa ngoại chính xác nhất

Phân biệt khóa chính với khóa ngoại

Hiện nay, có nhiều người dùng thường bị nhầm khóa chính với khóa ngoại trong cơ sở dữ liệu SQL Server. Để có thể phân biệt được khóa chính với khóa ngoại thì người dùng cần phân biệt trên 4 phương diện như sau:

- Khóa chính được thiết lập duy nhất tại mỗi bảng còn khóa ngoại chỉ là một tập hợp trong bảng và là khóa chính của một bảng khác.
-Primary Key không nhận các giá trị dữ liệu rỗng còn khóa ngoại có chấp nhận các cơ sở dữ liệu rỗng
-Primary Key được thiết lập trong bảng cơ sở dữ liệu SQL Servertheo thứ tự dãy chỉ nhóm; khóa ngoại không thiết lập cho mục đích này
-Primary Key chỉ có duy nhất một trong bảng còn khóa ngoại thì có thể có nhiều trong bảng cơ sở dữ liệu SQLServer

IV. Một số loại khóa khác trong cơ sở dữ liệu SQL Server

Một số loại khóa khác trong cơ sở dữ liệu SQL Server

1. Super key [Siêu khóa]

Super Key hay được hiểu là siêu khóa là một tập hợp của một hoặc nhiều hơn một khóa có thể được sử dụng trong việc xác định một bảng duy nhất trong một bảng như Primary Key, Unique Key, Alternate Key là các tập hợp con của Super Key

2. Candidate key [Khóa dự tuyển]

Candidate key - khóa dự tuyển là một tập hợp của một hoặc nhiều trường cột có thể xác định một bản ghi duy nhất trong table và Candidate có thể có nhiều khóa dự tuyển trong bảng. Mỗi khóa dự tuyển có thể làm việc độc lập như một Primary Key - khóa chính.

3. Alternate Key [Khóa thay thế]

Alternate Key là một khóa thay thế có thể làm việc như một khóa chính. Theo như cơ sở dữ liệu SQL Server thì khóa thay thế có bản chất là một khóa dự tuyển chứ không phải là một khóa chính

4. Composite / Compound Key

Composite/Compound Key là tổng hợp khóa, là sự kết hợp của nhiều hơn một trường, một cột trong một table. Nó có thể là khóa Candidate Key hoặc Primary Key

5. Unique Key

Unique Key là một tập hợp của một hoặc nhiều trường, cột trong một table xác định duy nhất của một bảng ghi trong cơ sở dữ liệu SQL Server. UNique Key cũng giống như Primary Key nhưng nó có thể chấp nhận được cả những giá trị Null và nó không có các giá trị nhân bản.

V. Kết luận

Như vậy, qua bài viết trên thì 123job.vn đã cung cấp đến bạn đọc những thông tin hữu ích nhất về khóa chính như khóa chính là gì, chức năng cơ bản của khóa chính, cách thiết lập khóa chính dành cho người mới bắt đầu,... Mong bạn đọc hãy đón đọc bài viết một cách tích cực nhất nhé.

Xem tiếp: Cách đăng xuất Gmail trên máy tính tiện nhất - Bí kíp sử dụng Gmail an toàn

Tag:

Công nghệ thông tin hệ điều hành máy tính kỹ thuật máy tính Khóa chính là gì sql

Bài viết nhiều người đọc

  • +84 là gì? Cách thêm mã quốc gia [ +84] vào số điện thoại

  • Hướng dẫn cách nén file để gửi mail đầy đủ chính xác nhất

  • Hướng dẫn cách giải nén file từ A đến Z đơn giản hiệu quả nhất

  • TOP 5 phần mềm check đạo văn miễn phí tốt và cách giảm tỷ lệ đạo văn

  • Hướng dẫn chi tiết cách nén file pdf nhanh mà không cần dùng phần mềm

  • Control panel là gì? Cách sử dụng mang lại hiệu suất công việc cao [Phần 1]

  • Hướng dẫn cách xóa chữ trong file pdf cực nhanh và dễ dàng

  • Tin học văn phòng là gì? Vì sao là kỹ năng không thể thiếu trong công việc.

123job.vn - Dream jobs, great places to work, high salary

123job.vn - Trao cơ hội cho hàng triệu người với những công việc mơ ước với môi trường làm việc chuyên nghiệp và mức lương tốt nhất.

Với sứ mệnh: Cung cấp các thông tin việc làm, review công ty hấp dẫn, dịch vụ tư vấn tuyển dụng xác thực và chất lượng cho nhà tuyển dụng và người lao động, chúng tôi luôn tận tâm tận lực, không ngừng sáng tạo nhằm đem lại chất lượng dịch vụ hàng đầu, giúp tất cả mọi người có được một công việc phù hợp nhất.

Tự hào: Là trang tuyển dụng uy tín, là cầu nối của hàng triệu người tìm việc và nhà tuyển dụng.

Giá trị cốt lõi:

  • Luôn chủ động và sáng tạo, lấy công nghệ làm nền tảng cốt lõi để phát triển dịch vụ.
  • Chuyên nghiệp & tận tâm với khách hàng và người tìm việc bằng những dịch vụ tốt nhất.
  • Làm việc chính trực, tuân thủ các nguyên tắc đạo đức, không vụ lợi cá nhân và luôn đặt lợi ích của công ty lên hàng đầu.

Nếu bạn đang muốn kết nối với những nhà tuyển dụng uy tín hàng đầu Việt Nam, đừng ngần ngại hãy TẠO CV NGAY để tăng gấp 5 lần cơ hội có được công việc với mức lương tốt nhất nhé!

Video liên quan

Chủ Đề