intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Câu lệnh JOINNối kết và khoá Đôi khi chúng ta phải lấy dữ liệu từ hai bảng

Chia sẻ: Abcdef_45 Abcdef_45 | Ngày: | Loại File: PDF | Số trang:6

79
lượt xem
7
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Câu lệnh JOIN Nối kết và khoá Đôi khi chúng ta phải lấy dữ liệu từ hai bảng cùng một lúc, chúng ta thực hiện một kết nối. Các bảng trong CSDL có thể quan hệ ràng buộc với nhau thông qua các khoá. Một khoá chính (primary key) là một cột mà trong đó mỗi giá trị của hàng phải là duy nhất. Mục đích của khoá là kết nối dữ liệu lại với nhau, từ nhiều bảng khác nhau mà không gây trùng lắp dữ liệu giữa các bảng. Trong bảng Employees (nhân viên) ở ví dụ dưới đây...

Chủ đề:
Lưu

Nội dung Text: Câu lệnh JOINNối kết và khoá Đôi khi chúng ta phải lấy dữ liệu từ hai bảng

  1. Câu lệnh JOIN Nối kết và khoá Đôi khi chúng ta phải lấy dữ liệu từ hai bảng c ùng một lúc, chúng ta thực hiện một kết nối. Các bảng trong CSDL có thể quan hệ ràng buộc với nhau thông qua các khoá. Một khoá chính (primary key) là một cột mà trong đó m ỗi giá trị của hàng phải là duy nhất. Mục đích của khoá là kết nối dữ liệu lại với nhau, từ nhiều bảng khác nhau mà không gây trùng lắp dữ liệu giữa các bảng. Trong bảng Employees (nhân viên) ở ví dụ dưới đây có cột Employees_ID là khoá chính, bảo đảm rằng không thể có hai dòng nào có trùng Employees_ID. Employees_ID dùng để phân biệt hai nhân viên khi họ trùng tên. Trong ví dụ dưới đây: Employee_ID là khoá chính c ủa bảng Employees.  Prod_ID là khoá chính của bảng Orders.  Cột Employeed_ID trong bảng Orders đ ược sử dụng để kết nối với bảng  Employees, chỉ đến nhân vi ên trong bảng Employees. Bảng Employees: Employees_ID Name 01 Hansen, Ola 02 Svendson, Tove 03 Svendson, Stephen 04 Pettersen, Kari
  2. Bảng Orders: Prod_ID Product Employee_ID 234 Printer 01 657 Table 03 865 Chair 03 Kết nối hai bảng với nhau Chúng ta có thể lấy dữ liệu từ hai bảng bằng cách kết nối chúng, t ương tự như sau: Ví dụ: Tìm xem ai đã đặt hàng sản phẩm và họ đã đặt món hàng gì: SELECT Employees.Name, Orders.Product FROM Employees, Order s WHERE Employees.Employee_ID = Orders.Employee_ID kết quả trả về: Name Product Hansen, Ola Printer Svendson, Stephen Table Svendson, Stephen Chair Ví dụ: Tìm xem ai đã đặt hàng máy in:
  3. SELECT Employees.Name FROM Employees, Orders WHERE Employees.Employee_ID = Orders.Employee_ID AND Orders.Product = 'Printer' kết quả trả về: Name Hansen, Ola Sử dụng JOIN Ta có thể sử dụng từ khoá JOIN để kết nối dữ liệu từ hai bảng. Ví dụ: INNER JOIN Cú pháp: SELECT cột_1, cột_2, cột_3 FROM bảng_1 INNER JOIN bảng_2 ON bảng_1.khoá_chính = bảng_2.khoá_ngoại Ai đã đặt hàng và họ đã đặt món hàng nào: SELECT Employees.Name, Orders.Product FROM Employees INNER JOIN Orders ON Employees.Employee_ID = Orders.Employee_ID INNER JOIN trả về tất cả các d òng ở cả hai bảng khi chúng t ương ứng với nhau. Nếu có một dòng ở bảng Employees không ứng với dòng nào ở bảng Orders, dòng đó sẽ không được tính. kết quả trả về:
  4. Name Product Hansen, Ola Printer Svendson, Stephen Table Svendson, Ste phen Chair Ví dụ: LEFT JOIN Cú pháp: SELECT cột_1, cột_2, cột_3 FROM bảng_1 LEFT JOIN bảng_2 ON bảng_1.khoá_chính = bảng_2.khoá_ngoại Liệt kê tất cả các nhân viên và món hàng mà họ đặt (nếu có): SELECT Employees.Name, Orders.Product FROM Employees LEFT JOIN Orders ON Employees.Employee_ID = Orders.Employee_ID LEFT JOIN trả về tất cả các d òng của bảng thứ nhất (Employees), ngay cả khi các dòng đó không ứng với dòng nào ở bảng thứ hai (Orders). Nếu có một dòng nào ở bảng Employees không ứng với bất cứ d òng nào ở bảng Orders thì dòng đó cũng vẫn được tính. kết quả trả về: Name Product Hansen, Ola Printer Svendson, Tove
  5. Svendson, Stephen Table Svendson, Stephen Chair Pettersen, Kari Ví dụ: RIGHT JOIN Cú pháp: SELECT cột_1, cột_2, cột_3 FROM bảng_ 1 RIGHT JOIN bảng_2 ON bảng_1.khoá_chính = bảng_2.khoá_ngoại Liệt kê tất cả các mặt hàng được đặt và tên người đặt hàng (nếu có): SELECT Employees.Name, Orders.Product FROM Employees RIGHT JOIN Orders ON Employees.Employee_ID = Orders.Employee_ID RIGHT JOIN trả về tất cả các d òng ở bảng thứ hai (Orders), ngay cả khi các dòng đó không ứng với dòng nào ở bảng thứ nhất (Employees). Nếu có một dòng nào ở bảng Orders không ứng với bất cứ dòng nào ở bảng Employees thì dòng đó cũng vẫn được tính. kết quả trả về: Name Product Hansen, Ola Printer Svendson, Stephen Table Svendson, Stephen Chair
  6. Ví dụ: Ai đã đặt hàng máy in: SELECT Employees.Name FROM Employees INNER JOIN Orders ON Employees.Employee_ID = Orders.Employee_ID WHERE Orders.Product = 'Printer' kết quả trả về: Name Hansen, Ola Nguồn: blog.thegioiwebsite.net
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2