So sánh chuỗi có dấu trong sql năm 2024
Mytour tự hào giới thiệu chuỗi bài viết về toán tử so sánh LIKE và IN trong SQL, mang đến cho bạn cái nhìn độc đáo và thú vị Show Nâng cao kỹ năng SQL của bạn với các từ khóa so sánh như 'BETWEEN...AND', 'ISNULL', 'LIKE', và 'IN'. Bài viết này Mytour sẽ hướng dẫn chi tiết về BETWEEN...AND, IS NULL, LIKE, và IN trong SQL. Khám phá bảng danh sách toán tử so sánh như BETWEEN...AND, IS NULL, LIKE, IN trong SQL để nắm vững kiến thức và kỹ năng truy vấn của bạn. Toán tử LIKE trong SQL Toán tử LIKE trong SQL là công cụ mạnh mẽ để liệt kê tất cả các hàng trong bảng khớp với mẫu đã chỉ định. Sử dụng toán tử LIKE khi bạn cần tìm kiếm các hàng phù hợp với một mẫu cụ thể hoặc khi bạn không biết giá trị chính xác. Ký tự đại diện % làm cho nó trở nên linh hoạt. Ví dụ về toán tử LIKE trong SQL Ví dụ 1 Để lựa chọn tất cả học viên trong một lớp có tên bắt đầu bằng chữ 'S', câu lệnh LIKE được viết như sau: CHỌN tên_học_sinh, họ_học_sinh TỪ chi_tiết_học_sinh Ở ĐÂU tên_học_sinh NHƯ 'S%'; Kết quả được hiển thị như sau: Lệnh SELECT dưới đây tìm kiếm tất cả các dòng trong cột tên có tên bắt đầu bằng chữ S và các ký tự phía sau là bất kỳ. Bên cạnh đó, bạn có thể sử dụng ký tự đại diện gạch dưới (_) với toán tử LIKE trong SQL. Trong chuỗi tìm kiếm, gạch dưới chỉ đại diện cho một ký tự duy nhất. Ví dụ số 2 Để hiển thị tất cả tên bắt đầu bằng chữ 'a', lệnh LIKE trong SQL được viết như sau: CHỌN tên_học_sinh, họ_học_sinh TỪ chi_tiết_học_sinh Ở ĐÂU tên_học_sinh NHƯ '_a%'; Kết quả hiển thị như sau: Một số điều cần lưu ý về toán tử LIKE trong SQL Dấu gạch dưới đóng vai trò giữ chỗ cho một ký tự. Do đó, bạn có thể sử dụng nhiều dấu gạch dưới. Ví dụ: '__i%' có 2 dấu gạch dưới bên trái hoặc 'S__j%' có hai dấu gạch dưới nằm giữa 'S' và 'i'. Toán tử BETWEEN ... AND trong SQL Toán tử BETWEEN ... AND trong SQL được dùng để so sánh dữ liệu trong một khoảng giá trị cụ thể. Ví dụ về toán tử BETWEEN ... AND trong SQL Để tìm tên của học sinh có độ tuổi từ 10 đến 15, lệnh BETWEEN ... AND trong SQL được viết như sau: CHỌN tên_học_sinh, họ_học_sinh, tuổi TỪ chi_tiết_học_sinh Ở ĐÂU tuổi NẰM TRONG KHOẢNG 10 VÀ 15 Kết quả hiển thị như sau: Toán tử IN trong SQL Toán tử IN trong SQL được sử dụng khi bạn muốn so sánh một cột với nhiều giá trị, tương tự như điều kiện OR trong SQL. Ví dụ về toán tử IN trong SQL Nếu bạn muốn tìm tên các sinh viên đăng ký môn Toán hoặc Khoa học, lệnh IN trong SQL sẽ được viết như sau: CHỌN tên_học_sinh, họ_học_sinh, môn_học TỪ chi_tiết_học_sinh Ở ĐÂU môn_học TRONG ('Toán', 'Khoa học'); Bạn cũng có thể thêm nhiều môn học khác nhau vào danh sách như ('Toán', 'Khoa học', 'Lịch sử'). Chú ý khi sử dụng lệnh IN trong SQL Dữ liệu được sử dụng để so sánh với sự phân biệt giữa chữ hoa và chữ thường. Toán tử IS NULL trong SQL Giá trị của cột là NULL nếu nó không tồn tại. Toán tử IS NULL trong SQL được sử dụng để hiển thị tất cả các hàng chứa cột không có giá trị. Ví dụ về toán tử IS NULL trong SQL Nếu bạn muốn tìm tên của những học sinh không tham gia bất kỳ trò chơi nào, lệnh IS NULL trong SQL sẽ được viết như sau: CHỌN tên_học_sinh, họ_học_sinh TỪ chi_tiết_học_sinh Ở ĐÂU trò_chơi IS NULL Nếu tất cả sinh viên đều tham gia trò chơi, không có kết quả trả về. Nếu không, nó sẽ hiển thị tên của những sinh viên không tham gia trò chơi. Đây là một số toán tử so sánh trong SQL như BETWEEN...AND, IS NULL, LIKE, IN. Để tìm hiểu thêm về các câu lệnh như RENAME, UPDATE, CREATE ... hay các điều kiện như WHERE, ... trong SQL, bạn có thể xem các bài viết trên Mytour như cài đặt SQL Server trên Ubuntu để thiết lập môi trường SQL Server trên máy tính của mình. Nội dung được phát triển bởi đội ngũ Mytour với mục đích chăm sóc và tăng trải nghiệm khách hàng. Các thao tác truy xuất dữ liệu được thực hiện thông qua việc sử dụng các từ khóa và ký tự đặc biệt, chúng được sử dụng để thực hiện các phép toán số học, phép toán logic, phép toán so sánh, ghép chuỗi và nhiều phép toán khác. Trong viết này, hãy cùng DATAPOT tìm hiểu về SET Operators trong SQL bạn nhé! Mục lục Set Operators (Toán tử tập hợp) được sử dụng để kết hợp hoặc loại trừ kết quả của hai hay nhiều câu lệnh SELECT. Cách hoạt động của SET Operators là chúng kết hợp các hàng từ hai hoặc nhiều bảng (mở rộng theo chiều dọc, từ trên xuống), khác biệt hoàn toàn so với phép nối (JOIN) sử dụng các cột (mở rộng theo chiều ngang, từ trái sang phải). Sử dụng SET Operators trong SQLNgày nay, hầu hết các hệ quản trị cơ sở dữ liệu khi sử dụng T-SQL để truy vấn dữ liệu đều hỗ trợ Set Operators. Cần đặc biệt lưu ý rằng: Set Operators sẽ kết hợp hai hay nhiều bảng theo hàng, còn phép nối (JOIN) sẽ kết hợp theo cột từ các bảng khác nhau. Một số quy tắc cần tuân thủ khi sử dụng Set Operators
Các loại Set Operators trong SQLCó 4 loại Set Operators trong SQL:
Toán tử Union (Hợp nhất)Có thể hợp nhất kết quả từ hai hay nhiều câu lệnh truy vấn khác nhau thành một tập kết quả duy nhất bằng cách sử dụng toán tử UNION. Tên của các cột trong các câu lệnh truy vấn này có thể khác tên, tuy nhiên cần phải có cùng số lượng và kiểu dữ liệu. Cú pháp cho toán tử Union:
Ví dụ: Có thông tin hai bảng Founders và Employees như sau: Yêu cầu: Viết câu lệnh truy vấn kết hợp hai bảng Founders, Employees, sử dụng cột FirstName và LastName SELECT FirstName, LastName FROM Founders UNION SELECT FirstName, LastName FROM Employees; Kết quả: Có thể thấy được, câu lệnh trên sẽ lấy ra toàn bộ dữ liệu hai cột FirstName và LastName của cả 2 bảng và loại bỏ giá trị trùng lặp. Nếu sử dụng UNION ALL, tất cả các hàng sẽ được chọn, bao gồm giá trị trùng lặp. Cụ thể: SELECT FirstName, LastName FROM Founders UNION ALL SELECT FirstName, LastName FROM Employees; Kết quả: Tóm lại, khi sử dụng UNION, các giá trị trùng lặp sẽ bị loại bỏ trong tập kết quả trả về, trong trường hợp sử dụng UNION ALL, tập kết quả trả về sẽ bao gồm các giá trị trùng lặp. Toán tử Intersect (Giao)Toán tử Intersect có chức năng tìm kiếm những dòng dữ liệu chung trong hai hoặc nhiều câu truy vấn. Để thực hiện thành công câu lệnh sử dụng toán tử Intersect, số cột và kiểu dữ liệu phải giống nhau trong các bảng. Kết quả trả về khi sử dụng toán tử này là các dòng chung trong các câu lệnh. Cú pháp cho toán tử Intersect:
Ví dụ: Sử dụng Intersect để tìm các dòng dữ liệu có trong cả hai bảng Founders, Employees SELECT FirstName, LastName FROM Founders INTERSECT SELECT FirstName, LastName FROM Employees; Kết quả: Toán tử Minus/ExceptToán tử Minus/Except cho phép lọc ra các kết quả có trong truy vấn đầu tiên nhưng không có trong truy vấn thứ hai. Để thực hiện sử dụng được toán tử Minus/Except, số cột và kiểu dữ liệu trong cả hai bảng phải giống nhau. Sau khi thực hiện thao tác Minus/Except, dữ liệu/bản ghi không có trong câu lệnh Select hoặc truy vấn thứ hai sẽ được hiển thị. Lưu ý: Toán tử Minus chỉ được áp dụng khi sử dụng Oracle Database, đối với các hệ quản trị cơ sở dữ liệu khác như SQL Server, PostgreSQL, có thể sử dụng toán tử Except với chức năng tương tự. Cú pháp của toán tử Minus/Except:
Ví dụ: Sử dụng toán tử Except để tìm các dòng dữ liệu có trong bảng Founders mà không có trong bảng Employees SELECT FirstName, LastName FROM Founders EXCEPT SELECT FirstName, LastName FROM Employees Kết quả: Một số lưu ý khác để sử dụng SET Operators trong SQL hiệu quảSự khác nhau giữa Set Operators EXCEPT và NOT IN trong SQLXét các bảng Car1 và Car2 với thông tin như sau:
Cụ thể, xét ví dụ sau: Đầu tiên, sử dụng toán tử EXCEPT để lọc tất cả các bản ghi từ bảng Cars1 có trong bảng Cars2. SELECT id, name, company, power FROM Cars1 EXCEPT SELECT id, name, company, power FROM Cars2 Kết quả: Từ tập kết quả trả về có thể thấy được: mặc dùng trong bảng Car1, dòng dữ liệu thứ 1 và thứ 11 đều không có trong bảng Car2, nhưng kết quả trả về chỉ là một hàng duy nhất. Tiếp theo, sử dụng toán tử NOT IN thực hiện yêu cầu tương tự: SELECT id, name, company, power FROM Cars1 WHERE id NOT IN (SELECT id from Cars2) Kết quả: NOT IN trả về tập kết quả có dữ liệu bị trùng lặp.
Cụ thể, xét ví dụ sau: SELECT id, name, company, power FROM Cars1 EXCEPT SELECT id, name, power FROM Cars2 Kết quả: Trong câu lệnh trên, mệnh đề SELECT bảng Car1 đang nhiều hơn mệnh đề SELECT bảng Car2 một cột, khi thực thi câu lệnh sử dụng EXCEPT sẽ nhận được thông báo lỗi như trên. Đối với NOT IN: SELECT FirstName, LastName FROM Founders UNION SELECT FirstName, LastName FROM Employees; 0 Kết quả: Trong câu lệnh trên, mệnh đề SELECT trong sub-query đang có hai cột, khi thực thi câu lệnh sử dụng NOT IN sẽ nhận được thông báo lỗi như trên. Sự khác nhau giữa UNION và JOIN trong SQLJOIN UNION Mục đích Kết hợp các bảng liên quan Kết hợp những câu truy vấn độc lập Mối quan hệ Yêu cầu một trường chung Không yêu cầu trường chung cụ thể Kết quả Mở rộng kết quả truy vấn theo chiều ngang với các dữ liệu thỏa điều kiện Mở rộng kết quả truy vấn theo chiều dọc UNION kết hợp kết quả của hai hoặc nhiều truy vấn vào một tập kết quả duy nhất bao gồm tất cả các hàng thuộc về tất cả các truy vấn. Với JOIN, có thể truy xuất dữ liệu từ hai hoặc nhiều bảng dựa trên mối quan hệ logic giữa các bảng. Các phép nối cho biết cách SQL nên sử dụng dữ liệu từ một bảng để chọn các hàng trong bảng khác. Cụ thể, xét các ví dụ sau: Ví dụ 1: Bảng “Orders” chứa thông tin về các đơn đặt hàng và bảng “Customers” chứa thông tin về khách hàng. Bạn muốn kết hợp thông tin về đơn đặt hàng và khách hàng, với điều kiện là ID khách hàng. Câu truy vấn có dạng: SELECT FirstName, LastName FROM Founders UNION SELECT FirstName, LastName FROM Employees; 1 Ví dụ 2: Giả sử bạn có hai bảng “MaleEmployees” và “FemaleEmployees”. Bạn muốn lấy danh sách tất cả nhân viên (nam và nữ). Câu truy vấn có dạng: SELECT FirstName, LastName FROM Founders UNION SELECT FirstName, LastName FROM Employees; 2 Đọc thêm về: Hai kiểu gộp bảng bằng JOIN và UNION trong SQL Server Trên đây là tổng hợp cách sử dụng cũng như sự khác biệt giữa SET Operators và các toán tử khác trong SQL. Hi vọng bài viết có thể cung cấp thêm thông tin để có thể ứng dụng trong các bài toán thực tế. |