Những ai muốn trở thành lập trình viên hoặc mới bước chân vào lĩnh vực công nghệ thông tin chắc hẳn phải tìm hiểu SQL join là gì và cách sử dụng lệnh này. Bài viết sau đây sẽ chia sẻ với các bạn thông tin về Join trong SQL Server cùng với các ví dụ cụ thể để các bạn có thể hiểu một cách đơn giản hơn.
SQL Server là gì?
Đây là phần mềm do Microsoft phát triển và sử dụng cho mục đích lưu trữ và truy xuất dữ liệu theo chuẩn RDBMS. Mỗi RDBMS sẽ bao gồm một công cụ cơ sở dữ liệu (database), cơ sở dữ liệu, các ứng dụng để quản lý dữ liệu và các bộ phận liên quan, v.v.
Bạn đang xem: JOIN trong SQL Server
SQL Server là gì?
Phiên bản đầu tiên của SQL Server được Microsoft phát hành vào năm 1989. Phiên bản này chạy trên hệ điều hành 16 bit và được gọi là SQL Server 1.0. Đây là nền tảng để phát triển các phiên bản SQL Server mới cho đến ngày nay. Hiện tại, SQL Server đã được tối ưu hóa để hoạt động trong môi trường cơ sở dữ liệu lớn và phục vụ hàng nghìn người dùng cùng một lúc.
Trước khi tìm hiểu về lệnh SQL JOIN, chúng ta hãy tìm hiểu sơ qua về các thành phần, tính năng và phiên bản của SQL Server:
Các thành phần của SQL Server là gì?
SQL Server hiện tại được Microsoft thiết lập dựa trên cấu trúc dạng bảng. Nó bao gồm các hàng có thể kết nối dữ liệu liên quan trong nhiều bảng khác nhau. Do đó, nó đã loại bỏ nhu cầu lưu trữ dữ liệu ở nhiều vị trí trong cơ sở dữ liệu.
Vì vậy SQL Server có 2 thành phần: SQLOS và Database Engine:
Cơ sở dữ liệu
Đây là một thành phần chính trong SQL Server, chức năng của Database Engine là xử lý, quản lý lưu trữ và bảo mật dữ liệu. Thành phần này cũng bao gồm nhiều công cụ như quản lý tệp, lưu trữ tệp, trang, bảng, bộ đệm dữ liệu, chỉ mục và giao dịch cơ sở dữ liệu.
Các thành phần của QL Server là gì?
SQLOS
Đây là lớp cuối cùng trong cấu trúc phần mềm Database Engine. SQLOS sẽ xử lý các tác vụ chính như lập lịch tác vụ, quản lý bộ nhớ, khóa dữ liệu để tránh xung đột có thể xảy ra khi người dùng thực hiện cập nhật.
Các tính năng chính của SQL Server là gì?
Để hiểu được lệnh SQL JOIN, mọi người cần biết SQL Server bao gồm những tính năng gì? Microsoft cung cấp một số tính năng quản lý dữ liệu cho SQL Server cùng với các dịch vụ hỗ trợ lập trình như SQL Server Data Quality, SQL Server, SQL Server Master. Bên cạnh đó, SQL Server còn cung cấp 2 công cụ hỗ trợ lập trình viên và quản trị viên cơ sở dữ liệu (DBA):
- Công cụ dữ liệu: Các công cụ này hỗ trợ phát triển cơ sở dữ liệu.
- Management Studio: Công cụ này hỗ trợ triển khai, quản lý và giám sát cơ sở dữ liệu.
Các tính năng chính của SQL Server là gì?
Ngoài ra, SQL Server còn tích hợp các tính năng kinh doanh, giúp mọi người phân tích dữ liệu thông qua:
- Dịch vụ phân tích (SSAS): Tính năng phân tích dữ liệu.
- Dịch vụ báo cáo: Thiết lập báo cáo đơn giản hơn.
Có những phiên bản SQL Server nào?
Lệnh SQL JOIN hiện được áp dụng trên nhiều phiên bản SQL Server nên bạn phải tìm hiểu trước về các phiên bản này. Phần mềm SQL Server hiện được cung cấp nhiều phiên bản giúp người dùng tiết kiệm thời gian, chi phí và tăng hiệu quả công việc:
Có những phiên bản SQL Server nào?
- Enterprise: Phiên bản này tích hợp đầy đủ các tính năng từ cơ bản đến nâng cao của phần mềm SQL Server. Nó bao gồm lõi của công cụ cơ sở dữ liệu, các dịch vụ và công cụ đi kèm để hỗ trợ việc tạo và quản lý các cụm SQL Server.
- Standard: Phiên bản này có ít tính năng nâng cao hơn phiên bản Enterprise. Phù hợp với các doanh nghiệp vừa và nhỏ không cần các tính năng nâng cao.
- Workgroup: Phù hợp với các công ty lớn có nhiều văn phòng trực tuyến. Phiên bản này có tính năng cơ sở dữ liệu cốt lõi và không đi kèm các dịch vụ liên quan. Tuy nhiên, phiên bản này không còn khả dụng trong phần mềm SQL Server 2012.
- Nhà phát triển: Phiên bản này có tất cả các tính năng giống như phiên bản Enterprise và có giới hạn về số lượng người dùng có thể kết nối và truy cập Máy chủ cùng lúc. Tuy nhiên, bạn có thể nâng cấp lên phiên bản này lên Enterprise mà không cần phải cài đặt lại.
- Express: Phiên bản SQL Server khá dễ sử dụng và có các chức năng quản lý cơ sở dữ liệu cơ bản, dung lượng tối đa là một CPU, dung lượng bộ nhớ là 1GB và kích thước cơ sở dữ liệu tối đa khoảng 10GB.
SQL JOIN là gì?
Thông thường, mọi người sẽ lưu trữ dữ liệu trong nhiều loại bảng và chúng được liên kết với nhau bằng một giá trị chung trong cơ sở dữ liệu quan hệ, chẳng hạn như Oracle, SQL Server, MySQL, v.v. Vì vậy, chúng ta sẽ liên tục phải lấy dữ liệu từ hai hoặc nhiều bảng rồi kết hợp chúng thành kết quả mong muốn dựa trên một số điều kiện.
Lệnh JOIN trong SQL Server là gì?
Với lệnh JOIN trong SQL Server, chúng ta có thể đạt được kết quả này. Lệnh này cho phép lập trình viên truy cập dữ liệu từ 2 hoặc nhiều bảng có liên quan và tạo ra kết quả có ý nghĩa. Người dùng có thể nối các bảng bằng lệnh SELECT với điều kiện JOIN. Nó sẽ cho thấy cách SQL Server sử dụng dữ liệu trong một bảng và chọn các hàng từ các bảng khác. Bất kỳ bảng nào có liên quan sẽ bị ràng buộc với Khóa ngoại.
Có bao nhiêu loại SQL JOIN?
Sau đây là 4 loại lệnh JOIN trong SQL Server mà mọi người có thể tham khảo kèm theo ví dụ minh họa:
INNER JOIN trong SQL Server
Đây là dạng lệnh JOIN được sử dụng rộng rãi nhất trong SQL Server. Nó sẽ trả về tất cả các hàng trong bảng nếu điều kiện nối được đáp ứng.
Cú pháp sử dụng lệnh INNER JOIN trong SQL Server như sau:
cột CHỌN
TỪ trạng thái 1
INNER JOIN trạng thái2
Xem thêm : Cách viết, chèn chữ lên ảnh trong Word mọi phiên bản
TRÊN table1.cot = table2.cot;
Để hình dung rõ hơn, bạn có thể tham khảo ví dụ sử dụng lệnh INNER JOIN như sau:
Ví dụ, chúng ta có bảng Nhà cung cấp chứa hai thông tin: Supplier_name và Supplier_id:
tên đệm | ID nhà cung cấp |
IBM | 10000 |
hewlett Packard | 10001 |
Microsoft | 10002 |
NVIDIA | 10003 |
Ví dụ, chúng ta có bảng Order chứa 3 thông tin: nhacung_id, donhang_ngay, donhang_id:
đơn hàng_id | ngày đặt hàng | ID nhà cung cấp |
500125 | 2003/05/12 | 10000 |
500126 | 2003/05/13 | 10001 |
500127 | 2003/05/14 | 10004 |
Nếu chúng ta chạy lệnh SELECT (sử dụng lệnh SQL JOIN bổ sung từ INNER JOIN) như sau:
Ví dụ về lệnh INNER JOIN trong SQL Server
Sau đây là bảng kết quả sẽ được trả về:
ID nhà cung cấp | tên | ngày đặt hàng |
10000 | IBM | 2003/05/12 |
10001 | hewlett Packard | 2003/05/13 |
Vì vậy, chúng ta có thể thấy rằng các hàng NVDIA và Microsoft đã bị xóa vì nhacung_id (10003 và 10002) chỉ tồn tại trong một bảng. Trong bảng Orders, hàng 500127 đã bị xóa vì nhacung_id 10004 không tồn tại trong bảng Supplier.
LEFT OUTER JOIN trong SQL Server
Lệnh SQL JOIN tiếp theo mà mọi người nên học là LEFT OUTER JOIN. Hiện tại, một số cơ sở dữ liệu đang sử dụng lệnh LEFT JOIN để thay thế lệnh LEFT OUTER JOIN. Bởi vì loại kết nối này sẽ trả về kết quả về các hàng trong bảng bên trái với điều kiện ON và nó chỉ nhận được các hàng trong các bảng đáp ứng các điều kiện đã đặt.
Cú pháp sử dụng lệnh LEFT JOIN như sau:
cột CHỌN
TỪ trạng thái 1
BÊN TRÁI [OUTER] THAM GIA trạng thái2
Xem thêm : Cách viết, chèn chữ lên ảnh trong Word mọi phiên bản
TRÊN table1.cot = table2.cot;
Sau đây là một ví dụ về lệnh LEFT JOIN để mọi người hiểu rõ hơn:
Chúng tôi có bảng Nhà cung cấp bao gồm suppliers_name và suppliers_id như sau:
ID nhà cung cấp | tên đệm |
10000 | IBM |
10001 | hewlett Packard |
10002 | Microsoft |
10003 | NVIDIA |
Tiếp theo, ta có bảng Order gồm nhacung_id, donhang_ngay, donhang_id như sau:
đơn hàng_id | ID nhà cung cấp | ngày đặt hàng |
500125 | 10000 | 2003/05/12 |
500126 | 10001 | 2003/05/13 |
Nếu chúng ta chạy lệnh SQL JOIN như hiển thị bên dưới:
Ví dụ về lệnh LEFT OUTER JOIN trong SQL Server
Kết quả sẽ được hiển thị như bảng sau:
ID nhà cung cấp | tên đệm | ngày đặt hàng |
10000 | IBM | 2003/05/12 |
10001 | hewlett Packard | 2003/05/13 |
10002 | Microsoft | |
10003 | NVIDIA |
Các hàng NVIDIA và Microsoft vẫn xuất hiện trong bảng kết quả vì chúng tôi đang sử dụng LEFT OUTER JOIN. Bây giờ donhang_ngay nằm trong các bản ghi có giá trị là
RIGHT OUTER JOIN trong SQL Server
Một số cơ sở dữ liệu ngày nay sử dụng lệnh RIGHT JOIN thay vì lệnh RIGHT OUTER JOIN. Kiểu join này sẽ trả về các hàng trong bảng bên phải với điều kiện ON và chỉ truy xuất các hàng đáp ứng các điều kiện được đặt trước.
Cú pháp của lệnh SQL JOIN này được hiển thị như sau:
cột CHỌN
Xem thêm : Tải ảnh avatar đẹp cho con gái cute, dễ thương nhất
TỪ trạng thái 1
PHẢI [OUTER] THAM GIA trạng thái2
TRÊN table1.cot = table2.cot;
Chúng ta sẽ tìm hiểu thêm về hàm RIGHT JOIN thông qua ví dụ sau:
Chúng tôi có bảng Nhà cung cấp bao gồm suppliers_name và suppliers_id như sau:
ID nhà cung cấp | tên đệm |
10000 | Quả táo |
10001 |
Tiếp theo chúng ta có bảng Order bao gồm nhacung_id, donhang_ngay, donhang_id:
đơn hàng_id | cung cấp_id | ngày đặt hàng |
500125 | 10000 | 2003/08/12 |
500126 | 10001 | 2003/08/13 |
500127 | 10002 | 2003/08/14 |
Nếu chúng ta chạy lệnh SQL JOIN như hiển thị bên dưới:
Ví dụ về lệnh RIGHT OUTER JOIN trong SQL Server
Kết quả sẽ được hiển thị dưới dạng bảng sau:
đơn hàng_id | ngày đặt hàng | ID nhà cung cấp |
500125 | 2003/08/12 | Quả táo |
500126 | 2003/08/13 | |
500127 | 2003/08/14 |
Vì vậy, chúng ta thấy hàng 5000127 thuộc về donhang_id vẫn xuất hiện trong bảng kết quả. Bởi vì chúng ta đã sử dụng lệnh RIGHT OUTER JOIN.
FULL OUTER JOIN trong SQL Server
Nhiều cơ sở dữ liệu đang sử dụng FULL JOIN thay vì FULL OUTER JOIN. Kiểu join này có thể trả về tất cả các hàng trong bảng bên trái và bên phải với
Cú pháp của lệnh FULL JOIN như sau:
cột CHỌN
Xem thêm : Tải ảnh avatar đẹp cho con gái cute, dễ thương nhất
TỪ trạng thái 1
ĐẦY [OUTER] THAM GIA trạng thái2
TRÊN table1.cot = table2.cot;
Bạn có thể làm theo ví dụ này để minh họa lệnh SQL JOIN như sau:
Chúng tôi có bảng Nhà cung cấp bao gồm suppliers_name và suppliers_id:
tên đệm | ID nhà cung cấp |
IBM | 10000 |
hewlett Packard | 10001 |
Microsoft | 10002 |
NVIDIA | 10003 |
Tiếp theo chúng ta có bảng Order bao gồm nhacung_id, donhang_ngay và donhang_id:
ID nhà cung cấp | đơn hàng_id | ngày đặt hàng |
10000 | 500125 | 2003/08/12 |
10001 | 500126 | 2003/08/13 |
10004 | 500127 | 2003/08/14 |
Nếu chúng ta chạy lệnh SQL JOIN như sau:
Ví dụ về lệnh FULL OUTER JOIN trong SQL Server
Chúng ta sẽ nhận được bảng kết quả sau:
ID nhà cung cấp | tên đệm | ngày đặt hàng |
10000 | IBM | 2003/08/12 |
10001 | hewlett Packard | 2003/08/13 |
10002 | Microsoft | |
10003 | NVIDIA | |
2003/08/14 |
Do đó, các hàng NVIDIA và Microsoft vẫn xuất hiện trong tập kết quả vì lệnh FULL OUTER JOIN. Vào thời điểm đó, date_order của các bản ghi chứa các giá trị có dạng
Bài viết trên đã giới thiệu đến mọi người phần mềm SQL Server và cách sử dụng lệnh SQL JOIN trong phần mềm này. Hy vọng mọi người đã hiểu rõ hơn về lệnh này và biết cách sử dụng từng loại lệnh JOIN để liên kết các bảng dữ liệu một cách hiệu quả.
Xem các bài viết liên quan:
Nguồn: https://tuyengiaothudo.vn
Danh mục: Thủ thuật