Mẹo nhỏ: Để tìm kiếm chính xác các ấn phẩm của tuyengiaothudo.vn, hãy search trên Google với cú pháp: "Từ khóa" + "tuyengiaothudo". (Ví dụ: vong tay tram huong tuyengiaothudo). Tìm kiếm ngay
30 lượt xem

JOIN trong SQL Server

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.

sql-join-1SQL 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.

sql-join-2Cá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.
READ  Hình nền đẹp ô tô: Tuyển chọn những hình nền đẹp đáng yêu nhất

sql-join-3Cá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:

sql-join-4Có 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.

sql-join-5Lệ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:

READ  Discord là gì? Hướng dẫn cách sử dụng Discord cho người mới

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

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:

sql-join-7Ví 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

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:

sql-join-9Ví 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

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 Google

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:

sql-join-11Ví 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 Google
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 giá trị ở những nơi không đáp ứng được điều kiện.

Cú pháp của lệnh FULL JOIN như sau:

cột CHỌN

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:

sql-join-13Ví 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 . Dòng 10004 của nhacung_id vẫn nằm trong bảng kết quả, tuy nhiên nhacung_ten và nhacung_id 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:

READ  5 Bước chụp ảnh nghệ thuật bằng smartphone cực đỉnh

Thông báo chính thức: Ninh Bình Web (thuộc GiuseArt) không hợp tác với bất kỳ ai để bán giao diện Wordpress và cũng không bán ở bất kỳ kênh nào ngoại trừ Facebookzalo chính thức.

Chúng tôi chỉ support cho những khách hàng mua source code chính chủ. Tiền nào của nấy, khách hàng cân nhắc không nên ham rẻ để mua phải source code không rõ nguồn gốc và không có support về sau! Xin cám ơn!