Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql

Bài viết Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql thuộc chủ đề về Hỏi Đáp thời gian này đang được rất nhiều bạn quan tâm đúng không nào !! Hôm nay, Hãy cùng NaciHolidays.vn tìm hiểu Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql trong bài viết hôm nay nha !

XEM THÊM

Foreign Key – Khóa ngoại trong SQL

Các bạn đang xem chủ đề về : “Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql”

Khóa ngoại (Foreign Key) là gì?

Khóa ngoại là một cột (column) hoặc một nhóm những cột trong một bảng tham chiếu tới một hàng trong một bảng khác. Nói phương thức khác, khóa ngoại đc cam đoan trong bảng tham chiếu đến khóa chính của bảng khác.

Bài Viết: Foreign key là gì

Một bảng khả năng có nhiều khóa ngoại tùy theo mối quan hệ của nó với những bảng khác.

Trong PostgreSQL, bạn cam đoan khóa ngoại trải qua ràng buộc khóa ngoại. Ràng buộc khóa ngoài hiện ra rằng những chi phí trong một cột hoặc một nhóm những cột trong bảng con khớp với những chi phí trong một cột hoặc một nhóm những cột của bảng cha.

Định nghĩa khóa ngoại (Foreign Key) khi tạo bảng

XEM THÊM

Để định nghĩa 1 column là 1 khóa ngoại khi tạo bảng, các bạn áp dụng từ khóa: REFERENCES

Cú pháp:

CREATE TABLE ( REFERENCES (),);Ví dụ: Các bạn có 2 bảng users and groups có mối quan hệ như sau:

*

Với group_id của bảng users là column có rằng buộc khóa ngoại links tới khóa chính của của bảng groups

Để tạo bảng users có group_id là column có rằng buộc khóa ngoại, các bạn áp dụng câu lệnh SQL sau:

CREATE TABLE public.users( user_id integer NOT NULL, group_id integer REFERENCES groups(group_id), username character varying COLLATE pg_catalog.”default” NOT NULL, password character varying COLLATE pg_catalog.”default” NOT NULL, email character varying COLLATE pg_catalog.”default”, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone, deleted_at timestamp without time zone)Cảnh báo: Bảng groups cần phải tạo trước.

Mọi Người Cũng Xem   Lymphocytes Là Gì ? Chỉ Số Xét Nghiệm Lym Bình Thường Là Bao Nhiêu?

mặt khác khả năng áp dụng keyword: FOREIGN KEY

CREATE TABLE public.users( user_id integer NOT NULL, group_id integer NOT NULL, username character varying COLLATE pg_catalog.”default” NOT NULL, password character varying COLLATE pg_catalog.”default” NOT NULL, email character varying COLLATE pg_catalog.”default”, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone, deleted_at timestamp without time zone, FOREIGN KEY (group_id) REFERENCES groups(group_id))

Định nghĩa khóa ngoại cho một tập hợp những column

Trong tình huống khóa ngoại là một nhóm cột, các bạn định nghĩa khóa ngoại như sau:

CREATE TABLE child_table(child_column_1 INTEGER PRIMARY KEY,child_column_2 INTEGER,child_column_3 INTEGER,FOREIGN KEY (child_column_2 , child_column_3 ) REFERENCES parent_table (parent_column_1, parent_column_2));Ví dụ: Các bạn có 2 bảng CSDL là employee (Bảng con) and company (Bảng cha) có mối quan hệ như sau:

*

Lệnh SQL tạo bảng employee có khóa ngoại links tới bảng company như sau:

CREATE TABLE public.employee( employee_id integer NOT NULL PRIMARY KEY, company_id integer, company_code integer, fullname character varying, position character varying, salary money, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone, deleted_at timestamp without time zone, FOREIGN KEY (company_id , company_code ) REFERENCES company (company_id, company_code))

*

Thêm khóa ngoại vào bảng

XEM THÊM

Để thêm 1 ràng buộc khóa ngoại vào bảng hiện có, bạn áp dụng câu lệnh ALTER TABLE như sau:

ALTER TABLE child_tableADD CONSTRAINT constraint_name FOREIGN KEY (child_column_1) REFERENCES parent_table (parent_column_1);Ví dụ: Thêm column group_id vào thêm khóa ngoại links tới bảng groups

ALTER TABLE employee ADD COLUMN group_id integer;ALTER TABLE employee ADD CONSTRAINT fk_group_id FOREIGN KEY (group_id) REFERENCES groups(group_id);

*

CÁCH SỬ DỤNG RÀNG BUỘC FOREIGN KEY TRONG SQL

1. Ràng buộc FOREIGN KEY trong SQL

Ràng buộc FOREIGN KEY hay khóa ngoại được sử dụng để ngăn các hành động sẽ làm hủy bỏ liên kết giữa các bảng.

Một FOREIGN KEY là một trường (hoặc tập hợp các trường) trong một bảng, đề cập đến PRIMARY KEY trong một bảng khác.

Một bảng với khóa ngoại được gọi là bảng con và bảng với khóa chính được gọi là bảng cha hay bảng tham chiếu.

Để dễ hình dung, bạn hãy nhìn vào ví dụ dưới đây:

Chú ý đến cột PersonID của bảng Orders, bạn sẽ thấy cột này trỏ đến cột PersonID của bảng Persons.

Cột PersonID trong bảng Persons là PRIMARY KEY trong bảng Persons.

Cột PersonID trong bảng Orders là FOREIGN KEY trong bảng Orders.

Ràng buộc FOREIGN KEY ngăn các dữ liệu không hợp lệ được chèn vào cột khóa ngoại, bởi vì nó phải là một trong những giá trị có trong bảng cha.

2. Tạo ràng buộc FOREIGN KEY

Có hai cách để tạo ràng buộc trong SQL, cách thứ nhất là thêm ràng buộc khi tạo bảng bằng câu lệnh CREATE TABLE. Cách thứ hai để tạo ràng buộc là sử dụng câu lệnh ALTER TABLE, cách này thường dùng để chỉnh sửa ràng buộc có sẵn hoặc thêm mới.

Để thực hiện các ví dụ này, bạn cần nhập cơ sở dữ liệu mẫu Northwind vào SQL Server Management Studio. Hãy xem bài viết hướng dẫn ngay dưới đây:

Mọi Người Cũng Xem   Spoil Là Gì - Spoil Phim, Truyện Là Gì, Spoiler Là Gì

Sử dụng CREATE TABLE

Đầu tiên, bạn cần tạo một bảng Persons có ràng buộc PRIMARY KEY trên cột PersonID bằng cú pháp sau:

CREATE TABLE Persons (

PersonID int NOT NULL PRIMARY KEY,

LastName varchar(255) NOT NULL,

FirstName varchar(255),

Age int

);

Tiếp theo, dùng câu lệnh SQL dưới đây để tạo ra một FOREIGN KEY trên cột “PersonID” khi tạo bảng “OrderTest”:

CREATE TABLE OrderTest (

OrderID int NOT NULL PRIMARY KEY,

OrderNumber int NOT NULL,

PersonID int FOREIGN KEY REFERENCES Persons(PersonID)

);

Lưu ý: Nếu bạn sử dụng cơ sở dữ liệu mẫu Northwind, đã có một bảng tên là Orders, nên bạn không thể tạo thêm bảng cùng tên. Bạn có thể đặt một tên khác cho bảng như ví dụ trên là OrderTest.

Ngoài ra, bạn cũng có thể đặt tên cho FOREIGN KEY và xác định nó trên nhiều cột bằng câu lệnh như sau:

CREATE TABLE OrderTest (

OrderID int NOT NULL,

OrderNumber int NOT NULL,

PersonID int,

PRIMARY KEY (OrderID),

CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)

REFERENCES Persons(PersonID)

);

Sau khi đã tạo bảng, bạn không thể tạo một bảng trùng tên. Vì vậy, hãy xóa bảng Persons đã tạo trên, trước khi tiếp tục thực hiện các ví dụ dưới đây. Đối với các ví dụ thêm ràng buộc bằng câu lệnh ALTER TABLE, bạn hãy tạo bảng không chứa ràng buộc PRIMARY KEY.

Khác biệt giữa khóa chính và khóa ngoại trong SQL

1. Khóa chính là gì

  • Khóa chính (hay ràng buộc khóa chính) được sử dụng để định danh duy nhất mỗi record trong table của cơ sở dữ liệu.
  • Ngoài ra, nó còn dùng để thiết lập quan hệ 1-n (hay ràng buộc tham chiếu) giữa hai table trong cơ sở dữ liệu.
  • Dữ liệu (value) của field khóa chính phải có tính duy nhất. Và không chứa các giá trị Null.
  • Mỗi table nên chỉ có một khóa chính, khóa chính có thể tạo ra từ nhiều field của table.

2. Khóa ngoại là gì

  • Khóa ngoại của một table được xem như con trỏ trỏ tới khóa chính của table khác.
  • Nếu trường MaSV của table DiemSV được sử dụng để tạo ràng buộc tham chiếu đến table HSSV, thông qua khóa chính là MaSV thì MaSV của table DiemSV được gọi là khóa ngoại của bảng này. Đây cũng chính là lý do mà ta nói, khóa ngoại được xem như con trỏ trởi tới khóa chính.
  • Để hiểu rõ hơn về ý nghĩa sử dụng của khóa chính, khóa ngoại chúng ta hãy xét ví dụ sau: Giả sử cơ sở dữ liệu QLDiemSV có hai table: HSSV và DiemSV như sau:
  • Table HSSV gồm 6 field, trong đó MaSV được chọn làm khóa chính của table này.
  • Table DiemSV gồm 6 field, trong đó STT là khóa chính và MaSV được chọn làm khóa ngoại của table này.
  • Như vậy, hai table HSSV và DiemSV quan hệ dữ liệu với nhau thông qua field MaSV của mỗi table (đây là quan hệ 1 – n). Hay nói cách khác, ràng buộc tham chiếu đã được tạo giữa hai table (từ table DiemSV đến table HSSV).
  • Với ràng buộc này thì, việc người sử dụng vô tình hay cố ý phá hủy các liên kết sẽ bị ngăn chặn. Và, người sử dụng cũng không thể nhập vào cột khóa ngoại một giá trị mà giá trị đó không xuất hiện ở cột khóa chính mà khóa này trỏ tới (không thể nhập điểm cho một sinh viên, vào table DiemSV, mà mã của họ không xuất hiện ở cột MaSV ở table HSSV).
Mọi Người Cũng Xem   The united kingdom là gì

Thể Loại: San sẻ Kiến Thức Cộng Đồng

Nguồn Blog là gì: https://hethongbokhoe.com Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql

XEM THÊM

Các câu hỏi về Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql

Nếu có bắt kỳ câu hỏi thắc mắt nào vê Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql hãy cho chúng mình biết nha, mõi thắt mắt hay góp ý của các bạn sẽ giúp mình nâng cao hơn hơn trong các bài sau nha <3

Bài viết Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql ! được mình và team xem xét cũng như tổng hợp từ nhiều nguồn. Nếu thấy bài viết Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql Cực hay ! Hay thì hãy ủng hộ team Like hoặc share.
Nếu thấy bài viết Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql rât hay ! chưa hay, hoặc cần bổ sung. Bạn góp ý giúp mình nha!!

 

Các Hình Ảnh Về Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql

Foreign Key Là Gì - Ràng Buộc Khoá Ngoại Trong Sql

Các từ khóa tìm kiếm cho bài viết #Foreign #Key #Là #Gì #Ràng #Buộc #Khoá #Ngoại #Trong #Sql

Xem thêm tin tức về Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql tại WikiPedia

Bạn hãy tra cứu thông tin về Foreign Key Là Gì – Ràng Buộc Khoá Ngoại Trong Sql từ web Wikipedia.◄

Tham Gia Cộng Đồng Tại

???? Nguồn Tin tại: https://NaciHolidays.vn/

???? Xem Thêm Chủ Đề Liên Quan tại : https://naciholidays.vn/hoi-dap/

Từ Khóa Liên Quan: thêm khóa ngoại trong sql, khóa ngoại trong sql, khóa ngoại là gì trong sql, khóa ngoại trong sql là gì, khóa ngoại là gì, foreign key là gì, khoá ngoại sql, group by trong sql, cách tạo ràng buộc khóa chính khóa ngoại trong sql, khoá ngoại là gì, foreign key trong sql, tạo khóa ngoại trong sql, khóa ngoại, tạo khóa ngoại sql, khoa ngoai sql, khóa ngoại sql, khoa ngoai la gi, khóa chính là gì, ràng buộc trong sql, add constraint trong sql, ngoại khoá là gì, sql là gì, khoá ngoại, tạo khoá ngoại sql, tạo ràng buộc khóa ngoại trong sql, foreign key la gi, pfk là gì, khóa phụ, set khóa ngoại trong sql, key in sql, khóa chính trong sql,sql group by là gì,foreign key references trong sql,constraint foreign key trong sql,thêm khóa chính trong sql,thêm ràng buộc trong sql, tạo 2 khóa ngoại trong sql, foreign key, khóa chính khóa ngoại trong sql, cách tạo khóa ngoại trong sql, primary key là gì, primary key và foreign key, constraint trong sql là gì, thêm ràng buộc not null trong sql, collate trong sql, constraint trong sql, 

Related Posts

About The Author

Add Comment