Mysql PRIMARY KEY là gì
Một PRIMARY KEY là một trường trong một bảng mà nhận diện một cách duy nhất mỗi hàng/bản ghi trong một bảng dữ liệu. Các PRIMARY KEY phải chứa các giá trị duy nhất. Một cột là PRIMARY KEY không có giá trị NULL. Show Một bảng có thể chỉ có một PRIMARY KEY, mà gồm một trường đơn hay nhiều trường. Khi nhiều trường được sử dụng như là một PRIMARY KEY, chúng được gọi là một Composite Key. Nếu một bảng có một PRIMARY KEY được định nghĩa trên bất kỳ trường nào, thì bạn không thể có hai bản ghi mà có cùng giá trị trong các trường đó. Ghi chú: Bạn sẽ sử dụng các khái niệm này trong khi tạo các bảng dữ liệu trong Database. Tạo PRIMARY KEY trong SQLDưới đây là cú pháp để định nghĩa thuộc tính ID như là một PRIMARY KEY trong bảng SINHVIEN. CREATE TABLE SINHVIEN( ID INT NOT NULL, TEN VARCHAR (20) NOT NULL, TUOI INT NOT NULL, KHOAHOC CHAR (25) , HOCPHI DECIMAL (18, 2), PRIMARY KEY (ID) );Để tạo một ràng buộc PRIMARY KEY trên cột ID khi bảng này đã tồn tại, sử dụng cú pháp SQL sau: ALTER TABLE CUSTOMER ADD PRIMARY KEY (ID);Quảng cáo GHI CHÚ: Nếu bạn sử dụng lệnh ALTER TABLE để thêm một PRIMARY KEY, thì cột với PRIMARY KEY phải đã được khai báo để không chứa các giá trị NULL (khi bảng được tạo lần đầu tiên). Để định nghĩa một ràng buộc PRIMARY KEY trên nhiều cột, bạn sử dụng cú pháp SQL sau: CREATE TABLE SINHVIEN( ID INT NOT NULL, TEN VARCHAR (20) NOT NULL, TUOI INT NOT NULL, KHOAHOC CHAR (25) , HOCPHI DECIMAL (18, 2), PRIMARY KEY (ID, TEN) );Để tạo một ràng buộc PRIMARY KEY trên các cột ID và TEN khi bảng này đã tồn tại, bạn sử dụng cú pháp SQL sau: ALTER TABLE SINHVIEN ADD CONSTRAINT PK_SVID PRIMARY KEY (ID, TEN);Xóa ràng buộc PRIMARY KEY trong SQLBạn có thể xóa các ràng buộc PRIMARY KEY từ một bảng bởi sử dụng cú pháp sau: ALTER TABLE SINHVIEN DROP PRIMARY KEY ;rang_buoc_trong_sql.jsp
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: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://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 lập 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 ) .
Để 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 lập 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, ( những ) 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 tiên phong ) .
Để vô hiệu 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 SQLKEY FOREIGN là một khóa ngoại dùng để link hai bảng với nhau . KHÓA NGOẠI là một trường ( hoặc tập hợp những 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: PersonIDLastNameFirstNameAge1HOÁTINH302LANTƯỚNG233XUÂNTÁ20 Bảng Orders : OrderIDOrderNumberPersonID1778953244678332245624245621 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 ngừa những hành vi tàn phá link giữa những bảng . Ràng buộc NGOẠI KHÓA cũng ngăn không cho tài 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 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 lập 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: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://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) );
Để 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 lập 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);
Để vô hiệu 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à có ích, bạn hoàn toàn có thể tham gia những kênh sau của cafedev để nhận được nhiều hơn nữa : Chào thân ái và quyết thắng ! Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!
Source: https://mindovermetal.org
Đã đăng vào thg 5 26, 2017 11:46 SA 7 phút đọc Các khoá chính và khóa ngoại là hai loại ràng buộc có thể được sử dụng để thực thi toàn vẹn dữ liệu trong các bảng SQL Server và đây là những đối tượng cơ sở dữ liệu quan trọng. Trong SQL Server, có hai khóa - khóa chính và khoá ngoại dường như giống nhau, nhưng thực tế cả hai đều khác nhau về các tính năng và hành vi. Các khoá chính và khóa ngoại là hai loại ràng buộc có thể được sử dụng để thực thi toàn vẹn dữ liệu trong các bảng SQL Server và đây là những đối tượng cơ sở dữ liệu quan trọng. Trong bài này, tôi muốn chia sẻ sự khác biệt chính giữa khóa chính và khoá ngoại. 1. Khóa chính là gì
2. Khóa ngoại là gì
3. Thiết lập khóa chính
3.1 Tạo khóa chính cho table đã tạo
3.2 Xóa khóa chính
4. Thiết lập khóa ngoại
4.1 Tạo khóa ngoại cho table đã tạo
4.2 Xóa khóa ngoại
5. Bảng so sánh
6. Tổng kết
All rights reserved |