MS Access - Tham gia
Cơ sở dữ liệu là một tập hợp các bảng dữ liệu cho phép các mối quan hệ logic với nhau. Bạn sử dụng các mối quan hệ để kết nối các bảng theo các trường mà chúng có điểm chung. Một bảng có thể là một phần của bất kỳ số lượng mối quan hệ nào, nhưng mỗi mối quan hệ luôn có đúng hai bảng. Trong một truy vấn, một mối quan hệ được đại diện bởi mộtJoin.
Tham gia là gì
Một phép nối chỉ định cách kết hợp các bản ghi từ hai hoặc nhiều bảng trong cơ sở dữ liệu. Về mặt khái niệm, phép nối rất giống với mối quan hệ bảng. Trên thực tế, phép nối là để truy vấn mối quan hệ với các bảng.
Sau đây là hai kiểu nối cơ bản mà chúng ta sẽ thảo luận trong chương này:
- Sự tham gia bên trong
- Sự tham gia bên ngoài
Cả hai đều có thể dễ dàng được tạo từ queries design view.
Tham gia bên trong
Hãy để chúng tôi hiểu Inner Join -
- Kiểu nối phổ biến nhất là phép nối bên trong cũng là kiểu nối mặc định trong Microsoft Access.
- Tham gia bên trong sẽ chỉ hiển thị các hàng hoặc bản ghi mà các trường được kết hợp từ cả hai bảng bằng nhau.
- Kiểu kết hợp này xem xét các trường phổ biến đó và dữ liệu chứa bên trong. Nó chỉ hiển thị các trận đấu.
Tham gia bên ngoài
Bây giờ chúng ta hãy hiểu những gì một Outer Join là -
- Một phép nối bên ngoài hiển thị tất cả các hàng từ một bảng và chỉ những hàng hoặc bản ghi từ bảng khác nơi các trường được nối bằng nhau.
- Nói cách khác, một phép nối bên ngoài hiển thị tất cả các hàng từ một bảng và chỉ các hàng tương ứng từ bảng khác.
Cũng có các kiểu Tham gia khác -
Tham gia bên ngoài bên trái và bên phải tham gia bên ngoài
Hãy để chúng tôi hiểu Left Outer Join và Right Outer Join -
- Bạn có thể chọn bảng sẽ hiển thị tất cả các hàng.
- Bạn có thể tạo một phép nối bên ngoài bên trái sẽ bao gồm tất cả các hàng từ bảng đầu tiên.
- Bạn có thể tạo một liên kết bên ngoài bên phải sẽ bao gồm tất cả các hàng từ bảng thứ hai.
Bây giờ chúng ta hãy đi đến Create và tạo một truy vấn từ Design View. Lựa chọntblProjects và tblTasks và đóng hộp thoại Hiển thị Bảng như trong ảnh chụp màn hình sau.
Thêm ProjectName lĩnh vực từ tblProjectsvà TaskTitle, StartDate và DueDate từ tblTasks bàn.
Bây giờ chúng ta hãy chạy truy vấn.
Chúng tôi chỉ hiển thị các bản ghi từ một vài dự án. Một vài trong số các dự án này có rất nhiều nhiệm vụ liên quan đến dự án đó và thông tin này liên quan đếnProjectID cánh đồng.
Khi chúng tôi tạo truy vấn này trong Microsoft Access, Access đang lấy mối quan hệ này từ các mối quan hệ mà chúng tôi đã tạo.
Theo mặc định, nó đang tạo ra những gì được gọi là Inner Join between these two fields, giữa hai bảng này và đó là cách nó liên kết thông tin này với nhau từ hai bảng này.
Nó chỉ hiển thị cho chúng tôi các kết quả phù hợp, vì vậy khi chúng tôi chạy truy vấn này, có rất nhiều dự án khác được liệt kê trong tblProjects không xuất hiện như một phần của các bản ghi của chúng tôi được đặt trong truy vấn này, và đó là do cách hai bảng này được nối với nhau, thông qua phép nối bên trong đó, một lần nữa, phép nối mặc định cho bất kỳ truy vấn nào.
Tuy nhiên, nếu bạn muốn thay đổi mối quan hệ, Hãy để chúng tôi nói rằng bạn muốn tạo một liên kết bên ngoài, hay nói cách khác, hiển thị tất cả các dự án từ tblProjects, mọi bản ghi có trong bảng đó, cùng với tất cả các tác vụ từ tblTasks- Mở thuộc tính tham gia; chúng ta có thể làm điều này đơn giản bằng cách nhấp đúp vào đường quan hệ.
Access sẽ hiển thị tên bảng bên trái và tên bảng bên phải trong hộp thoại Tham gia Thuộc tính.
Tên cột bên trái và tên cột bên phải và nút radio đầu tiên chỉ bao gồm các hàng trong đó các trường nối từ cả hai bảng bằng nhau và đó là liên kết bên trong và đó là những gì được chọn theo mặc định khi tạo mối quan hệ, khi tạo liên kết trong truy vấn, nhưng, bạn có thể thay đổi nó.
Chúng tôi cũng có hai lựa chọn khác; chúng tôi có thể bao gồm tất cả các bản ghi từtblProjectsvà chỉ những bản ghi từ tblTasks trong đó các trường được nối bằng nhau và trường này là Nối Bên ngoài Bên trái.
Chúng tôi có tùy chọn thứ ba, bao gồm tất cả các bản ghi từ tblTasks và chỉ những bản ghi từ tblProjects trong đó các trường được nối bằng nhau và trường này là Tham gia Bên ngoài Phải.
Đó là những kiểu nối khác nhau mà bạn có thể tạo dễ dàng từ Chế độ xem thiết kế. Hãy để chúng tôi chọn tùy chọn thứ hai, đó là Left Outer Join và nhấp vàoOk.
Bây giờ chúng ta hãy xem xét các bước khác -
Khi bạn nhìn vào đường quan hệ, bạn sẽ thấy một mũi tên nhỏ hướng về phía ProjectID trong tblTasks. Khi bạn chạy truy vấn này, bạn sẽ thấy các kết quả sau.
Như bạn có thể thấy rằng nó đang hiển thị cho chúng ta mọi tên dự án, cho dù nó có nhiệm vụ liên quan hay không. Bạn cũng sẽ thấy một loạt các trường rỗng. Tất cả điều này sẽ trống vì không có thông tin liên quan trongtblTasks, những trường này đến từ đâu. Bây giờ chúng ta hãy đi đếnDesign View một lần nữa và nhấp đúp vào đường quan hệ.
Trong hộp thoại Thuộc tính Tham gia, hãy chọn tùy chọn thứ ba dành cho Tham gia Bên ngoài Bên phải và nhấp vào Ok.
Bây giờ hãy nhìn vào đường quan hệ của chúng ta. Bạn sẽ thấy rằng một mũi tên nhỏ hiện đang hướng tớiProjectID trong tblProjects. Khi bạn chạy truy vấn này, bạn sẽ thấy các kết quả sau.
Tự tham gia
Tự tham gia là một loại Tham gia khác. Tự nối liên quan đến các trường phù hợp từ trong cùng một bảng. Ví dụ: xem bảng của nhân viên với trường người giám sát, trường này tham chiếu đến cùng một loại số được lưu trữ trong trường khác trong cùng một bảng - ID nhân viên.
Nếu chúng tôi muốn biết người giám sát của Kaitlin Rasmussen là ai, chúng tôi sẽ phải lấy số được lưu trữ trong trường người giám sát đó và tra cứu nó trong cùng một bảng chính xác trong trường ID nhân viên đó để biết rằng Charity Hendricks là người giám sát.
Bảng này không phải là cấu trúc lý tưởng cho cơ sở dữ liệu quan hệ vì nó không được chuẩn hóa.
Nếu chúng ta gặp trường hợp muốn tạo một truy vấn chỉ liệt kê tên nhân viên cùng với tên của người giám sát của họ, thì không có cách nào dễ dàng để chúng ta có thể truy vấn trừ khi chúng ta tạo Tự tham gia.
Để xem Tự tham gia, hãy tạo một bảng với các trường sau đây và nhập một số dữ liệu.
Ở đây chúng ta muốn tạo lại một danh sách với tên của nhân viên và sau đó là tên của người giám sát. Hãy để chúng tôi tạo một truy vấn từquery design view.
Bây giờ, hãy thêm tblEmployees những cái bàn.
Đóng hộp thoại này.
Bây giờ, hãy thêm họ và tên cho nhân viên của chúng tôi.
Bây giờ chúng ta cần một cách để tạo mối quan hệ giữa bảng này và chính nó. Để làm được điều đó, chúng ta cần mởthe show table dialog box và thêm tblEprisees một lần nữa.
Chúng tôi đã tạo một bản sao khác của cùng một bảng trong dạng xem truy vấn này. Bây giờ, chúng ta cần tạo Tự tham gia. Để làm điều đó, hãy nhấp vào Người giám sát trongtblEmployees bảng và giữ nút chuột và thả nó ngay trên đầu EmployeeID trong bảng đã sao chép đó - tblEmployees_1. Sau đó, thêm tên và họ từ bảng đã sao chép đó.
Bây giờ hãy để chúng tôi chạy truy vấn của bạn và bạn sẽ thấy các kết quả sau.
Nó hiển thị tên của nhân viên cùng với tên của người giám sát của họ. Và, đây là cách bạn tạo Tự tham gia trong Microsoft Access.