Làm việc với cơ sở dữ liệu quan hệ thường liên quan đến việc xử lý dữ liệu lộn xộn. Một trong những thách thức phổ biến nhất là làm sạch và xử lý dữ liệu văn bản. May mắn là SQL cung cấp các hàm chuỗi mạnh mẽ có thể giúp quá trình này hiệu quả hơn rất nhiều, tiết kiệm thời gian và công sức cho bạn.
Trong bài viết này, chúng ta sẽ khám phá những hàm chuỗi SQL quan trọng nhất có thể giúp bạn làm sạch và thao tác dữ liệu văn bản một cách dễ dàng. Hãy bắt đầu nào!
Hàm chuỗi trong SQL là gì?
Hàm chuỗi trong SQL là các hàm dựng sẵn cho phép chúng ta thao tác và xử lý dữ liệu văn bản được lưu trong cơ sở dữ liệu. Ví dụ phổ biến của các trường văn bản bao gồm tên, mô tả và địa chỉ.
Các hàm này có thể được dùng để thực hiện nhiều tác vụ, bao gồm:
Nối chuỗi
Định dạng văn bản
Trích xuất một phần của chuỗi
Tìm kiếm và thay thế đoạn văn bản cụ thể trong một chuỗi
Nối chuỗi trong SQL
Chúng ta có thể nối hai hoặc nhiều chuỗi bằng hàm concat():
SELECT CONCAT('Street Roma',', ','72',', ','Padova')AS full_addressĐược hỗ trợ bởi
Đây là kết quả:
full_address |-----------------------+
Street Roma,72, Padova|Được hỗ trợ bởi
Hàm này được dùng rộng rãi để kết hợp thông tin từ các cột khác nhau, như tên và địa chỉ.
Ngoài ra, bạn cũng có thể dùng hàm CONCAT_WS():
SELECT CONCAT_WS(',','Street Roma','72','Padova')as full_addressĐược hỗ trợ bởi
Từ cú pháp, bạn có thể nhận ra rằng cách này dễ và hiệu quả hơn trong các tình huống cần kết hợp nhiều hơn hai cột với cùng một ký tự phân tách.
Định dạng văn bản
Có một số hàm chuỗi SQL để điều chỉnh văn bản bằng cách đổi kiểu chữ, loại bỏ khoảng trắng thừa và các thao tác khác. Mỗi hàm được liệt kê kèm cú pháp và mô tả tương ứng.
Cú pháp hàm
Mô tả
LOWER(string)
Trả về văn bản với tất cả ký tự ở dạng chữ thường
UPPER(string)
Trả về văn bản với tất cả ký tự ở dạng chữ hoa
TRIM(string, [character])
Mặc định loại bỏ khoảng trắng ở cả bên trái và bên phải của chuỗi; nếu chỉ định ký tự đặc biệt thì loại bỏ ký tự đó
LTRIM(string, [character])
Mặc định loại bỏ khoảng trắng ở bên trái của chuỗi; nếu chỉ định ký tự đặc biệt thì loại bỏ ký tự đó
RTRIM(string, [character])
Mặc định loại bỏ khoảng trắng ở bên phải của chuỗi; nếu chỉ định ký tự đặc biệt thì loại bỏ ký tự đó
Bây giờ, hãy xem một số ví dụ để hiểu cách áp dụng các hàm này. Hãy tưởng tượng bạn có địa chỉ email với ký tự viết hoa và mã quốc gia viết thường, và bạn muốn chỉnh lại định dạng cho đúng ở các cột này.
email |country|-------------------+-------+
anonymous@gmail.com|IT |Được hỗ trợ bởi
Bên cạnh việc đổi kiểu chữ, việc loại bỏ khoảng trắng ở đầu hoặc cuối chuỗi cũng hữu ích. Hàm chính cho kiểu thao tác này là TRIM()để loại bỏ ở cả hai phía. Các lựa chọn khác là LTRIM() và RTRIM()để lần lượt xóa khoảng trắng ở bên trái và bên phải:
SELECT TRIM(' Street Roma, 72 ')AS trimmed_address,
LTRIM(' Street Roma, 72 ')AS ltrimmed_address,
RTRIM(' Street Roma, 72 ')AS rtrimmed_addressĐược hỗ trợ bởi
Truy vấn trả về kết quả sau:
trimmed_address|ltrimmed_address|rtrimmed_address|---------------+----------------+----------------+
Street Roma,72|Street Roma,72| Street Roma,72|Được hỗ trợ bởi
Từ kết quả, bạn có thể thấy sự khác biệt giữa mỗi hàm. Hơn nữa, TRIM() có thể được dùng để loại bỏ các ký tự đặc biệt khác ngoài khoảng trắng. Ví dụ, chúng ta muốn làm sạch trường số điện thoại bằng cách bỏ dấu +:
Như bạn thấy, số điện thoại đã được làm sạch hoàn toàn.
Trích xuất văn bản
Sau khi nối và chỉnh định dạng chuỗi, đã đến lúc tìm hiểu cách trích xuất văn bản bằng hàm SQL đặc biệt SUBSTRING(). Hãy xem các ví dụ khác nhau để nắm vững hàm này:
SELECT
SUBSTRING('Antony',1,1)AS first_character,
SUBSTRING('Antony',1,3)AS first_3characters,
SUBSTRING('Antony',1,5)AS first_5charactersĐược hỗ trợ bởi
Đây là kết quả:
first_character|first_3characters|first_5characters|---------------+-----------------+-----------------+
A |Ant |Anton |Được hỗ trợ bởi
Chúng ta cũng có thể kết hợp hàm này với các hàm trước đó để viết hoa ký tự đầu tiên, chuyển các chữ cái còn lại thành chữ thường và sau đó nối tất cả lại:
lenght_name|first_character|LAST_characters|name |-----------+---------------+---------------+------+6|A |ntony |Antony|Được hỗ trợ bởi
Bên cạnh các hàm đã thấy đến giờ, bạn có thể để ý hàm LENGTH() giúp lấy độ dài của chuỗi. Trong ngữ cảnh này, nó hữu ích để xác định chỉ số của ký tự cuối cùng.
Tìm kiếm và thay thế chuỗi trong SQL
Chúng ta có thể điểm qua những hàm chính để tìm kiếm và thay thế chuỗi:
Cú pháp hàm
Mô tả
REPLACE(string,x,y)
Thay thế giá trị x trong chuỗi bằng giá trị y
CHARINDEX(x,string)
Tìm vị trí của giá trị x trong chuỗi
Một hàm rất hữu ích là REPLACE() để thay thế một chuỗi con bằng chuỗi con khác trong chuỗi:
SELECT'Street Roma - 32'AS address,replace('Street Roma - 32','-',',')AS cleaned_addressĐược hỗ trợ bởi
Đây là kết quả:
address |cleaned_address |----------------+----------------+
Street Roma -32|Street Roma ,32|Được hỗ trợ bởi
Trong trường hợp này, chúng ta chỉ thay dấu gạch ngang bằng dấu phẩy trong địa chỉ. Chúng ta cũng có thể thử tìm vị trí của dấu gạch ngang trong địa chỉ:
SELECT'Street Roma - 32'AS address,
LENGTH('Street Roma - 32')AS length_address,
CHARINDEX('-','Street Roma - 32')AS location_dashĐược hỗ trợ bởi
Truy vấn trả về kết quả sau:
address |length_address|location_dash|----------------+--------------+-------------+
Street Roma -32|16|13|Được hỗ trợ bởi
Chúng ta có thể thấy ký hiệu - nằm ở vị trí 13 trong địa chỉ, gần cuối chuỗi.
Kết luận
Thành thạo các hàm chuỗi SQL này có thể tạo ra khác biệt trong việc làm sạch dữ liệu hiệu quả. Dĩ nhiên, bài viết không bao quát tất cả các hàm, mà chỉ là danh sách ngắn những hàm quan trọng nhất. Không phải mọi hàm SQL luôn hợp lệ và có thể thay đổi tùy theo loại cơ sở dữ liệu bạn đang dùng. Ví dụ, CHARINDEX có thể được thay bằng LOCATE() trong cơ sở dữ liệu MySQL.
Để luyện tập các hàm này, bạn có thể xem khóa học Reporting in SQL của chúng tôi. Khóa học này có thể giúp bạn trở thành chuyên gia trong việc làm sạch dữ liệu và xây dựng báo cáo phức tạp. Chúng tôi cũng khuyến nghị lộ trình kỹ năng SQL Fundamentals để bao quát mọi khía cạnh thiết yếu của SQL.
Nắm vững các kiến thức cơ bản về SQL cần thiết cho công việc kinh doanh, học cách viết các truy vấn SQL và bắt đầu phân tích dữ liệu của bạn bằng ngôn ngữ mạnh mẽ này.
Đi kèm với các truy vấn luyện tập thực hành ở mọi bước, khóa học này dạy bạn mọi điều cần biết để phân tích dữ liệu bằng chính mã SQL của bạn ngay hôm nay!
Làm việc với cơ sở dữ liệu quan hệ thường liên quan đến việc xử lý dữ liệu lộn xộn. Một trong những thách thức phổ biến nhất là làm sạch và xử lý dữ liệu văn bản. May mắn là SQL cung cấp các hàm chuỗi mạnh mẽ có thể giúp quá trình này hiệu quả hơn rất nhiều, tiết kiệm thời gian và công sức cho bạn.
Trong bài viết này, chúng ta sẽ khám phá những hàm chuỗi SQL quan trọng nhất có thể giúp bạn làm sạch và thao tác dữ liệu văn bản một cách dễ dàng. Hãy bắt đầu nào!
Hàm chuỗi trong SQL là gì?
Hàm chuỗi trong SQL là các hàm dựng sẵn cho phép chúng ta thao tác và xử lý dữ liệu văn bản được lưu trong cơ sở dữ liệu. Ví dụ phổ biến của các trường văn bản bao gồm tên, mô tả và địa chỉ.
Các hàm này có thể được dùng để thực hiện nhiều tác vụ, bao gồm:
Nối chuỗi trong SQL
Chúng ta có thể nối hai hoặc nhiều chuỗi bằng hàm
concat():Đây là kết quả:
Hàm này được dùng rộng rãi để kết hợp thông tin từ các cột khác nhau, như tên và địa chỉ.
Ngoài ra, bạn cũng có thể dùng hàm
CONCAT_WS():Từ cú pháp, bạn có thể nhận ra rằng cách này dễ và hiệu quả hơn trong các tình huống cần kết hợp nhiều hơn hai cột với cùng một ký tự phân tách.
Định dạng văn bản
Có một số hàm chuỗi SQL để điều chỉnh văn bản bằng cách đổi kiểu chữ, loại bỏ khoảng trắng thừa và các thao tác khác. Mỗi hàm được liệt kê kèm cú pháp và mô tả tương ứng.
Cú pháp hàm
Mô tả
Trả về văn bản với tất cả ký tự ở dạng chữ thường
Trả về văn bản với tất cả ký tự ở dạng chữ hoa
Mặc định loại bỏ khoảng trắng ở cả bên trái và bên phải của chuỗi; nếu chỉ định ký tự đặc biệt thì loại bỏ ký tự đó
Mặc định loại bỏ khoảng trắng ở bên trái của chuỗi; nếu chỉ định ký tự đặc biệt thì loại bỏ ký tự đó
Mặc định loại bỏ khoảng trắng ở bên phải của chuỗi; nếu chỉ định ký tự đặc biệt thì loại bỏ ký tự đó
Bây giờ, hãy xem một số ví dụ để hiểu cách áp dụng các hàm này. Hãy tưởng tượng bạn có địa chỉ email với ký tự viết hoa và mã quốc gia viết thường, và bạn muốn chỉnh lại định dạng cho đúng ở các cột này.
Kết quả như sau:
Bên cạnh việc đổi kiểu chữ, việc loại bỏ khoảng trắng ở đầu hoặc cuối chuỗi cũng hữu ích. Hàm chính cho kiểu thao tác này là
TRIM()để loại bỏ ở cả hai phía. Các lựa chọn khác làLTRIM()vàRTRIM()để lần lượt xóa khoảng trắng ở bên trái và bên phải:Truy vấn trả về kết quả sau:
Từ kết quả, bạn có thể thấy sự khác biệt giữa mỗi hàm. Hơn nữa,
TRIM()có thể được dùng để loại bỏ các ký tự đặc biệt khác ngoài khoảng trắng. Ví dụ, chúng ta muốn làm sạch trường số điện thoại bằng cách bỏ dấu +:Kết quả trả về như sau:
Như bạn thấy, số điện thoại đã được làm sạch hoàn toàn.
Trích xuất văn bản
Sau khi nối và chỉnh định dạng chuỗi, đã đến lúc tìm hiểu cách trích xuất văn bản bằng hàm SQL đặc biệt SUBSTRING(). Hãy xem các ví dụ khác nhau để nắm vững hàm này:
Đây là kết quả:
Chúng ta cũng có thể kết hợp hàm này với các hàm trước đó để viết hoa ký tự đầu tiên, chuyển các chữ cái còn lại thành chữ thường và sau đó nối tất cả lại:
Truy vấn này trả về kết quả sau:
Bên cạnh các hàm đã thấy đến giờ, bạn có thể để ý hàm
LENGTH()giúp lấy độ dài của chuỗi. Trong ngữ cảnh này, nó hữu ích để xác định chỉ số của ký tự cuối cùng.Tìm kiếm và thay thế chuỗi trong SQL
Chúng ta có thể điểm qua những hàm chính để tìm kiếm và thay thế chuỗi:
Cú pháp hàm
Mô tả
Thay thế giá trị x trong chuỗi bằng giá trị y
Tìm vị trí của giá trị x trong chuỗi
Một hàm rất hữu ích là
REPLACE()để thay thế một chuỗi con bằng chuỗi con khác trong chuỗi:Đây là kết quả:
Trong trường hợp này, chúng ta chỉ thay dấu gạch ngang bằng dấu phẩy trong địa chỉ. Chúng ta cũng có thể thử tìm vị trí của dấu gạch ngang trong địa chỉ:
Truy vấn trả về kết quả sau:
Chúng ta có thể thấy ký hiệu
-nằm ở vị trí 13 trong địa chỉ, gần cuối chuỗi.Kết luận
Thành thạo các hàm chuỗi SQL này có thể tạo ra khác biệt trong việc làm sạch dữ liệu hiệu quả. Dĩ nhiên, bài viết không bao quát tất cả các hàm, mà chỉ là danh sách ngắn những hàm quan trọng nhất. Không phải mọi hàm SQL luôn hợp lệ và có thể thay đổi tùy theo loại cơ sở dữ liệu bạn đang dùng. Ví dụ,
CHARINDEXcó thể được thay bằngLOCATE()trong cơ sở dữ liệu MySQL.Để luyện tập các hàm này, bạn có thể xem khóa học Reporting in SQL của chúng tôi. Khóa học này có thể giúp bạn trở thành chuyên gia trong việc làm sạch dữ liệu và xây dựng báo cáo phức tạp. Chúng tôi cũng khuyến nghị lộ trình kỹ năng SQL Fundamentals để bao quát mọi khía cạnh thiết yếu của SQL.