Hướng dẫn mysql soundex

SQL DIFFERENCE và SOUNDEX là những hàm phổ biến trong SQL Server. Bài viết này giới thiệu tổng quan về các chức năng hệ thống tích hợp sẵn trong SQL Server khác biệt và SOUNDEX và đưa ra các giải thích về cách sử dụng các chức năng đó cũng như cách chúng hoạt động. Hãy cùng chúng tôi bắt đầu tìm hiểu nhé.

  • Giới thiệu về Soundex SQL Server
  • Chức năng tích hợp của SQL Server SOUNDEX
    • Các ví dụ minh họa về hàm Soundex SQL
  • DIFFERENCE là gì?
    • Các ví dụ về SQL DIFFERENCE
  • Kết luận

Giới thiệu về Soundex SQL Server

Soundex là một thuật toán ngữ âm được phát triển bởi Robert C.Russell và Margaret King Odell vào đầu những năm 1900. Thuật toán này được sử dụng để lập chỉ mục các tên khi chúng được phát âm bằng tiếng Anh. Mục tiêu chính của một thuật toán như vậy là mã hóa các từ đồng âm thành cùng một cách biểu diễn để được đối sánh ngay cả khi có một số khác biệt nhỏ về chính tả. Ví dụ, hãy xem xét các tên Smith và Smyth hoặc Mohamad và Mouhammad. Soundex chủ yếu mã hóa phụ âm và chỉ mã hóa một nguyên âm nếu đó là chữ cái đầu tiên của tên.

Là một trong những thuật toán ngữ âm phổ biến nhất, Soundex đã được triển khai trong nhiều công cụ cơ sở dữ liệu như Oracle, SQL Server, MySQL, SQLite và PostgreSQL.

Trong các phần sau, chúng tôi sẽ minh họa các chức năng của Soundex SQL Server.

Chức năng tích hợp của SQL Server SOUNDEX

Trong SQL Server, SOUNDEX () là một hàm vô hướng nhận một giá trị chuỗi làm đầu vào và trả về một chuỗi bốn ký tự. Như đã đề cập trước đây, chuỗi được trả về bởi hàm Soundex SQL được tạo dựa trên cách nói chuỗi đầu vào bằng tiếng Anh.

  • Ký tự đầu tiên của mã là ký tự đầu tiên của chuỗi đầu vào, được chuyển đổi thành chữ hoa.
  • Các ký tự còn lại của mã là số đại diện cho các chữ cái trong biểu thức.
  • Nguyên âm và HW được bỏ qua ngoại trừ nếu chúng là chữ cái đầu tiên của chuỗi đầu vào.
  • Nếu độ dài chuỗi đầu vào nhỏ hơn bốn, hàm Soundex sẽ thêm các số 0 bổ sung vào giá trị trả về.

Hàm Soundex SQL chủ yếu được sử dụng như một kỹ thuật so khớp mờ cho các mục đích tích hợp dữ liệu. Đây là một chức năng nhạy cảm với đối chiếu.

Như đã đề cập trong tài liệu chính thức, trước SQL Server 2012, hàm Soundex SQL chỉ áp dụng một tập hợp con của các quy tắc thuật toán Soundex. Trong SQL Server 2012, nhiều quy tắc hơn đã được triển khai. Bên cạnh đó, các hạn chế sau sẽ được áp dụng khi sử dụng mức tương thích cơ sở dữ liệu lớn hơn hoặc bằng 110 (SQL Server 2012):

  • Một heap (bảng không có chỉ mục được phân cụm) có chứa một cột được tính toán liên tục được xác định bằng SOUNDEX không thể được truy vấn cho đến khi heap được tạo lại bằng cách chạy câu lệnh ALTER TABLE REBUILD.
  • Ràng buộc CHECK được xác định bằng SOUNDEX bị vô hiệu hóa khi nâng cấp. Để kích hoạt ràng buộc, chúng ta nên chạy câu lệnh ALTER TABLE
  • WITH CHECK CHECK CONSTRAINT ALL.
  • Không thể truy vấn chỉ mục (bao gồm cả dạng xem được lập chỉ mục) chứa cột được tính toán liên tục được xác định bằng SOUNDEX cho đến khi chỉ mục được tạo lại bằng cách chạy câu lệnh ALTER INDEX ALL ON REBUILD.

    Các ví dụ minh họa về hàm Soundex SQL

    Để minh họa cách hoạt động của các hàm Soundex SQL, chúng tôi sẽ chạy một số ví dụ. Đầu tiên, chúng ta hãy chạy truy vấn sau:

  •  

    SELECT DIFFERENCE('H','Ha') as 'H_Ha',
    
        DIFFERENCE('Ha','Had') as 'Ha_Had',
    
        DIFFERENCE('Hd','Had') as 'Hd_Had',
    
        DIFFERENCE('Had','Hadi') as 'Had_Hadi'

    Hình ảnh bên dưới cho thấy rằng hàm Soundex trả về cùng một giá trị (H000) cho cả hai HHa chuỗi đầu vào. Như chúng ta có thể thấy, a bị bỏ qua và ba số không bổ sung đã được thêm vào kết quả.

    Ngoài ra, Hd, Had và Hadi tạo ra cùng một đầu ra (H300) vì aI nguyên âm bị bỏ qua và hai số không bổ sung được thêm vào.

    Hình 1 – Ví dụ về chức năng Soundex

    Chúng ta hãy thử chuyển nhiều từ vào hàm Soundex:

     

    SELECT SOUNDEX('Hadi') as 'Hadi',

        SOUNDEX('HadiFadlallah') as 'HadiFadlallah',

        SOUNDEX('Hadi Fadlallah') as 'Hadi Fadlallah'

    Hình ảnh dưới đây cho thấy rằng HadiHadi Fadlallah tạo ra cùng một giá trị đầu ra (H300) và các ký tự sau khi dấu cách bị bỏ qua. Trong khi xóa khoảng trắng khỏi tên sẽ thay đổi giá trị đầu ra thành H313. Bên cạnh đó, giá trị đầu ra của HadiFadlallah giống với giá trị đầu ra của bốn phụ âm đầu (Hdf).

    Hướng dẫn mysql soundex

    Hình 2 – Một ví dụ khác về chức năng Soundex

    DIFFERENCE là một hàm vô hướng tích hợp được sử dụng để đo mức độ giống nhau của hai chuỗi bằng cách sử dụng hàm Soundex SQL. Đầu tiên, SOUNDEX () được áp dụng cho mỗi đầu vào và sau đó kiểm tra độ tương đồng được thực hiện trên các kết quả này. Hàm này trả về một giá trị nguyên trong khoảng từ 0 đến 4. Khi giá trị này gần hơn 4, thì các đầu vào rất giống nhau.

    Các ví dụ về SQL DIFFERENCE

    Để minh họa cách hoạt động của các hàm SQL Difference (), chúng tôi sẽ chạy một số ví dụ. Đầu tiên, chúng ta hãy chạy truy vấn sau:

     

    SELECT DIFFERENCE('H','Ha') as 'H_Ha',

        DIFFERENCE('Ha','Had') as 'Ha_Had',

        DIFFERENCE('Hd','Had') as 'Hd_Had',

        DIFFERENCE('Had','Hadi') as 'Had_Hadi'

    Hình ảnh bên dưới cho thấy các giá trị có cùng đầu ra Soundex, chẳng hạn như HHa hoặc Hd, Had Hadi có điểm tương tự là 4. Trong khi HaHad tạo ra một điểm tương tự thấp hơn.

    Hướng dẫn mysql soundex

    Hình 3 – Ví dụ về hàm SQL khác biệt

    Bên cạnh đó, ví dụ sau cho thấy rằng việc thêm dấu cách sẽ làm cho hàm Difference () bỏ qua tất cả các ký tự ở bên phải.

     

    SELECT DIFFERENCE('Hadi','Hadi Fadlallah') as 'Hadi_Hadi Fadlallah',

        DIFFERENCE('Hadi','HadiFadlallah') as 'Hadi_HadiFadlallah'

    Như chúng ta có thể lưu ý, HadiHadi Fadlallah có điểm tương tự là 4, đồng thời xóa khoảng trắng khỏi Hadi Fadlallah sẽ giảm số điểm xuống còn 2.

    Hướng dẫn mysql soundex

    Hình 4 – Ví dụ thứ hai về hàm Difference SQL

    Bây giờ, chúng ta hãy thử so sánh hai trong số các MSSQL với một từ tương tự như MYSQL và một từ khác như POSTGRES:

     

    SELECT DIFFERENCE('MYSQL', 'MSSQL') as 'MYSQL_MSSQL',

        DIFFERENCE('MSSQL', 'POSTGRES') as 'MSSQL_POSTGRES'

    Hình ảnh dưới đây cho thấy điểm giống nhau cao như thế nào cho cả hai MYSQL và MSSQL vì chỉ có một ký tự khác nhau giữa cả hai từ, trong khi MSSQL và POSTGRES có điểm rất thấp vì chúng rất khác nhau.

    Hướng dẫn mysql soundex

    Hình 5 – Ví dụ thứ ba về hàm Difference SQL

    Kết luận

    Bài viết này giải thích ngắn gọn thuật toán Soundex và cách nó được triển khai trong SQL Server. Bên cạnh đó, nó minh họa một hàm tích hợp khác có tên Difference sử dụng hàm Soundex SQL để tính toán sự giống nhau giữa hai chuỗi đầu vào khác nhau.

    Trên đây là tất cả thông tin chi tiết nhất về hàm SQL DIFFERENCE và SOUNDEX mà bạn đang quan tâm. Hy vọng những nội dung guidesure.net cung cấp đã mang đến kiến thức hữu ích và trải nghiệm tuyệt vời cho bạn. Đừng quên Like & Share bài viết và để lại bình luận ngay bên dưới để cùng tôi cập nhật nhiều thông tin hơn nhé! 😉

    Cách sử dụng trình quản lý cấu hình SQL Server

    Cách sử dụng PowerShell để tạo máy ảo SQL trong Azure

    Cách viết truy vấn SQL với khoảng trắng trong tên cột