Tạo khóa ngoại trong mysql phpmyadmin

Chúng ta đã có học tập các lệnhsản xuất bảng (Create Table), quan niệm về khóa chủ yếu (Primary Key) với một số trong những yếu tố khác ví như UNIQUE, AUTO_INCREMENT, tuy nhiên toàn bộ những nguyên tố này phần nhiều cách xử trí bên trên một bảng độc nhất vô nhị. Câu hỏi đề ra là nếu như có nhiều bảng thì liệu gồm mối liên hệ giữa bọn chúng hay không? Câu trả lời là có, với kia đó là khóa nước ngoài foreign key.

You watching: Tạo khóa ngoại trong mysql phpmyadmin

1. Khóa nước ngoài (Foreign Key) là gì?

Trong bài bác này tôi sẽ không trình bàicó mang khóa nước ngoài một phương pháp chi tiết nữa nhưng mà lấn sân vào tư tưởng thiết yếu của nó. Foreign key là quan hệ giữanhị bảng và quan hệ này ta tuyệt Hotline là phụ vương - nhỏ,tức thị giả dụ bảng A gồm một thuộc tính link cho tới bảng B thì hôm nay bảng B nhập vai trò là cha và bảng A nhập vai trò là con.

Khái niệm Foreign key là gìkhông chỉ là bao gồm sống MySQL cơ mà nó là một yếu tắc củatất cả cáchệ quản lí trị CSDL nhỏng Squốc lộ Server, Oracle, Access, ... Nếu chúng ta đã từng có lần học tập qua những quy mô CSLD thì không còn lạ gì khóa ngoại nữa.


*

Bài viết này được đăng trên hanggiasoc.vn, ko được copy bên dưới rất nhiều hình thức.

Đôi khi họ tất cả nhị loại khóa ngoại sẽ là khóa ngoại thân hai bảng với khóa ngoại trỏ cho thiết yếu nó (đệ quy).

Khóa ngoại giữa nhì bảng

Xét sơ đồDataBase sau đây:


Các chúng ta thấy vào bảng customers cùng orders có một quan hệ với tên gọi là "từng order làcủa một customer nào đó". đây ta hotline là mối quan hệ (1:n), tức là một customergồm thê có không ít orders cùng mỗi order chỉ thuộc về một customer nhất.Xem kỹ hơn ta thấy trong bảng orders có field customerNumber cùng nó đã trỏ cho khóa thiết yếu (Primary Key) của bảng customers.

Vậy nên ta bao gồm kế luận nlỗi sau:

Khóa ngoại ở bảng ordersđang tđắm say chiếu mang lại khóa chủ yếu của bảng customers. Lúc bấy giờ bảng customersĐiện thoại tư vấn là bảng thân phụ với bảng ordergọi là bảng bé. Đây đó là điều BẮT BUỘC của khóa ngoại.

Khóa nước ngoài trỏ đến bao gồm bảng đó

Xét sơ đồ cơ sở dữ liệu sau đây:

Trong sơ thiết bị này nó gồm một khóa nước ngoài là reportsTo với trỏ đến bao gồm khóa chính của chính nó employeeNumber. Mối quan hệ này ta nói nlỗi sau "từng nhân viên cấp dưới có thể là 1 trong những nhân viên cấp dưới bình thường Hay là bạn quản lý của một nhân viên không giống. Hằng ngày những nhân bị cai quản lýkhác đang báo cáo (reportsTo) cho tới nhân viên cai quản lý".Sơ vật dụng này ta Hotline là đệ quy, tức thị khóa ngoại vẫn ttê mê chiếu cho tới bao gồm table nó luôn luôn. Trong thực tiễn cũng xuất xắc gặp trường thích hợp này đề nghị chúng ta cầnlưu ý nhé.

2. Tạo khóa nước ngoài (Foreign Key) trong MySQL

Ta sẽ sử dụng cú pháp T-Squốc lộ để chế tạo khóa nước ngoài, bọn họ có rất nhiều các chế tác cùng tùy vào nhu yếu của ban mà thực hiện mang lại phù hợp. Tất cả những cách đều phải sở hữu thông thường một kết cấu sẽ là khai báo field của bảng A và sẽ ttê mê chiếu mang đến field nào của bảng B vì tự khóa REFERENCES.

Tạo trong lệnh sinh sản bảng create table

Chúng ta sẽ tạo nên trực tiếp trong lệnh chế tác bảng cùng cú pháp của nó cũng tương tự nlỗi lệnh tạo thành khóa chủ yếu, tức thị vẫn đặt tại cuối phần knhị báo field. Nếu sử dụng bí quyết này thì khóa ngoại sẽ không còn có tên.

See more: Giải Đuổi Hình Bắt Chữ 2 - Đáp Án Game Đuổi Hình Bắt Chữ Đầy Đủ Nhất Phần 2


lấy ví dụ như
CREATE TABLE Groups (groupid INT(11) NOT NULL PRIMARY KEY,title INT(11) NOT NULL,LEVEL TINYINT(1) DEFAULT 1 NOT NULL);CREATE TABLE Users(userid INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL ,tin nhắn VARCHAR (50) NOT NULL ,groupid INT(11),FOREIGN KEY (groupid) REFERENCES Groups(groupid));

Các bạn thấy tôi đang thực hiện trường đoản cú khóaFOREIGN KEY (groupid) REFERENCES Groups(groupid) để chế tạo ra khóa ngoại, trong đó:

FOREIGN KEY (groupid): là field được lựa chọn có tác dụng khóa ngoại sống bảng nhỏ, Có nghĩa là bảng Users.REFERENCES Groups(groupid): là khóa chính của bảng thân phụ, tức là bảng Groups.

Sau khi tạo hoàn thành bạn vào PHPMyAdminvới chọn mục database, lựa chọn diagram sinh sống tkhô giòn qui định thì lúc này bạn sẽ thấy một sơ thứ nlỗi sau:

Như vậy là các bạn đã sinh sản thành công rồi đấy.

Ví dụ gồm đặt tên:

Tương trường đoản cú nlỗi những phần trước, để tại vị tên cho khóa ngoại thì ta phải thực hiện từ bỏ khóaCONSTRAINT.


Ví dụ bao gồm đánh tên
CREATE TABLE Groups (groupid INT(11) NOT NULL PRIMARY KEY,title INT(11) NOT NULL,LEVEL TINYINT(1) DEFAULT 1 NOT NULL);CREATE TABLE Users(userid INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL ,gmail VARCHAR (50) NOT NULL ,groupid INT(11),CONSTRAINT fk_group FOREIGN KEY (groupid) REFERENCES Groups(groupid));

Tạo bởi lệnhALTER TABLE

Với cách này ta phải tạo lập hai bảng trước, tiếp nối sẽ sử dụng lệnh ALTER TABLE để thêm FOREIGN KEY.


CREATE TABLE Groups (groupid INT(11) NOT NULL PRIMARY KEY,title INT(11) NOT NULL,LEVEL TINYINT(1) DEFAULT 1 NOT NULL);CREATE TABLE Users(userid INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL ,email VARCHAR (50) NOT NULL ,groupid INT(11));ALTER TABLE Users Showroom FOREIGN KEY(groupid) REFERENCES Groups(groupid);

Hoặc:


CREATE TABLE Groups (groupid INT(11) NOT NULL PRIMARY KEY,title INT(11) NOT NULL,LEVEL TINYINT(1) DEFAULT 1 NOT NULL);CREATE TABLE Users(userid INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,username VARCHAR(50) NOT NULL,tin nhắn VARCHAR (50) NOT NULL,groupid INT(11));ALTER TABLE Users Địa Chỉ CONSTRAINT fk_group FOREIGN KEY(groupid) REFERENCES Groups(groupid);

Tạo khóa ngoại ngôi trường hòa hợp tham mê chiếu chính nó

Trường vừa lòng này ta cũng thực hiện cú pháp tương tự như, thế vị tđê mê chiếu cho tới bảng làm sao kia thì đang tmê mẩn chiếu mang lại bao gồm nó.


ví dụ như
CREATE TABLE Employee(id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,fullname VARCHAR(50) NOT NULL,gmail VARCHAR (50) NOT NULL,leader_id INT (11) NOT NULL,CONSTRAINT pk_self FOREIGN KEY (leader_id) REFERENCES Employee(id) );

3. Xóa (Drop)Foreign Key

Để xóa được Foreign Key thì bạn phải ghi nhận tên của nó là gì, mà lại tên chỉ vĩnh cửu vào trường hợp ta tất cả áp dụng tự khóaCONSTRAINT dịp sinh sản khóa,bởi vậy khuyến khích chúng ta sử dụngCONSTRAINT nhằm tạo nên khóa nước ngoài.

Sau đây là cú pháp xóa Foreign Key:


ALTER TABLE Users DROPhường FOREIGN KEY fk_group;

Trong số đó fk_group là tên gọi của khóa ngoại.

Lưu ý quan tiền trọng:

Bạn chỉ triển khai được thao tác làm việc xóa lúc không trường tồn một bảng nhỏ làm sao tsay đắm chiếu đến nó.

See more: Gift Code Kiếm Khách Ca Ca Ca Mới Nhất, Code Kiếm Khách Ca Ca

4. Lời kết

Trong bài này chủ yếu tìm hiểu quan niệm của khóa ngoại (Foreign key) cùng mày mò một số trong những phương pháp tạo thành khóa nước ngoài phổ cập, bài bác này xong trên trên đây, bài tiếp theo sau mình vẫn nói về lệnh alter table.