Hướng dẫn CAST MySQL: Cơ bản và ứng dụng chuyển đổi kiểu

1. Khái niệm cơ bản của hàm CAST

Hàm CAST là gì

Hàm CAST của MySQL là một hàm SQL dùng để chuyển đổi kiểu dữ liệu, được sử dụng khi chuyển một biểu thức sang kiểu khác. Khi sử dụng hàm CAST, bạn có thể, ví dụ, chuyển chuỗi thành số nguyên hoặc chuyển kiểu ngày thành chuỗi. Đây là công cụ tiện lợi thường được sử dụng trong thao tác cơ sở dữ liệu để duy trì tính nhất quán của kiểu dữ liệu.

Các mục đích chính của hàm CAST

Việc sử dụng hàm CAST rất đa dạng và được áp dụng trong các tình huống sau:
  • Chuẩn hoá dữ liệu: Được sử dụng để thống nhất các dạng dữ liệu khác nhau. Ví dụ, giúp đồng nhất định dạng ngày lưu trong bảng.
  • Chuyển đổi kiểu dữ liệu: Bằng cách chuyển số nguyên thành chuỗi hoặc ngược lại, tối ưu hoá việc hiển thị và tính toán dữ liệu.
SELECT CAST('2023-09-22' AS DATE);

Sự khác biệt giữa hàm CAST và các phương pháp chuyển đổi kiểu dữ liệu khác

Hàm CAST giống với các hàm chuyển đổi khác của MySQL (ví dụ CONVERT), nhưng điểm khác biệt chính là CAST tuân thủ tiêu chuẩn SQL và được hỗ trợ trên nhiều hệ quản trị cơ sở dữ liệu hơn. CONVERT là tính năng riêng của MySQL, chủ yếu được dùng cho các mục đích đặc biệt như chuyển đổi bộ ký tự.

2. Cú pháp và cách sử dụng hàm CAST

Cú pháp hàm CAST

Cú pháp cơ bản của hàm CAST như sau:
CAST(biểu thức AS kiểu dữ liệu)
Trong cú pháp này, phần biểu thức chỉ định giá trị cần chuyển đổi, và phần kiểu dữ liệu chỉ định kiểu dữ liệu đích.

Ví dụ sử dụng hàm CAST

  • Chuyển đổi sang kiểu số nguyên: dùng khi chuyển chuỗi thành số nguyên.
SELECT CAST('123' AS SIGNED);
  • Chuyển đổi sang kiểu chuỗi: dùng khi chuyển số thành chuỗi.
SELECT CAST(123 AS CHAR);

Xử lý lỗi

Khi sử dụng hàm CAST, nếu giá trị không hợp lệ được nhập vào kiểu dữ liệu, có thể xảy ra lỗi. Ví dụ, khi cố gắng chuyển 'abc' thành số sẽ gây lỗi. Trong những trường hợp như vậy, nên kết hợp với các hàm như IFNULL để thực hiện xử lý lỗi.

3. Các kiểu dữ liệu thường được sử dụng và ví dụ chuyển đổi của chúng

Kịch bản chung cho việc chuyển đổi kiểu dữ liệu

Trong hàm CAST, thường chuyển đổi sang các kiểu dữ liệu sau:
  • kiểu INT: Chuyển đổi số sang kiểu nguyên.
  • kiểu VARCHAR: Chuyển đổi số và ngày thành chuỗi.
  • kiểu DATE: Chuyển đổi chuỗi hoặc số thành ngày.

Chuyển đổi sang kiểu INT

SELECT CAST('456' AS SIGNED);
Trong ví dụ này, chuỗi '456' được chuyển đổi sang kiểu nguyên.

Chuyển đổi sang kiểu VARCHAR

SELECT CAST(456 AS CHAR);
Đây là ví dụ chuyển đổi số nguyên thành chuỗi. Thao tác này hữu ích khi muốn hiển thị dữ liệu theo định dạng cụ thể.

Chuyển đổi sang kiểu DATE

SELECT CAST('2024-01-01' AS DATE);
Chuyển đổi chuỗi sang kiểu ngày. Nhờ đó, dữ liệu được lưu chính xác và có thể thực hiện các thao tác ngày sau này.

4. Lưu ý khi sử dụng hàm CAST và các thực tiễn tốt nhất

Lưu ý khi sử dụng hàm CAST

Khi sử dụng hàm CAST, có một số lưu ý:
  1. Khả năng tương thích kiểu:Vì việc chuyển đổi không hợp lệ có thể gây lỗi, cần kiểm tra tính tương thích kiểu trước.
  2. Mất độ chính xác dữ liệu:Đặc biệt khi chuyển đổi số thực, độ chính xác của dữ liệu có thể bị mất.

Thực tiễn tốt nhất

  • Sử dụng kiểu DECIMAL:Khi chuyển đổi số thực, việc sử dụng kiểu DECIMAL giúp ngăn ngừa mất độ chính xác.
SELECT CAST(123.456 AS DECIMAL(5,2));
  • Xử lý lỗi:Khi có các kiểu dữ liệu không mong đợi hỗn hợp, nên sử dụng các câu lệnh IFNULL hoặc CASE để thực hiện xử lý lỗi.

5. Sự khác nhau giữa hàm CAST và hàm CONVERT

So sánh hàm CAST và hàm CONVERT

CAST và CONVERT đều chuyển đổi kiểu dữ liệu, nhưng có sự khác nhau về cú pháp và mục đích sử dụng.
  • hàm CAST:Được sử dụng rộng rãi trong chuẩn SQL, cú pháp là CAST(式 AS データ型).
  • hàm CONVERT:Là hàm đặc trưng của MySQL, cú pháp là CONVERT(式, データ型).

Ví dụ sử dụng hàm CONVERT

Hàm CONVERT chủ yếu được dùng để chuyển đổi bộ ký tự.
SELECT CONVERT('abc' USING utf8);
Trong ví dụ này, bộ ký tự của chuỗi được chuyển đổi.

Nên dùng hàm nào?

Cơ bản, nên sử dụng hàm CAST vì nó được chuẩn SQL hỗ trợ rộng rãi, nhưng nếu cần chuyển đổi bộ ký tự thì nên dùng hàm CONVERT.

6. Ví dụ thực tế: Thao tác dữ liệu bằng hàm CAST

Ví dụ thực tế về thao tác dữ liệu

Ở đây, chúng tôi sẽ giới thiệu một ví dụ về việc thực hiện thao tác dữ liệu thực tế bằng hàm CAST.

Chuyển đổi số thành chuỗi để sắp xếp

Ví dụ, nếu muốn chuyển đổi số thành chuỗi rồi sắp xếp, bạn có thể viết như sau.
SELECT CAST(column_name AS CHAR) FROM table ORDER BY column_name;

Chuyển đổi chuỗi thành số để lọc

Ngoài ra, bạn cũng có thể chuyển đổi chuỗi thành số và lọc theo một khoảng nhất định.
SELECT * FROM table WHERE CAST(column_name AS SIGNED) > 100;

7. Tóm tắt

Tóm tắt bài viết

Hàm CAST là một hàm rất hữu ích để thực hiện việc chuyển đổi kiểu dữ liệu một cách hiệu quả. Trong bài viết này, chúng tôi đã giới thiệu rộng rãi từ cách sử dụng cơ bản đến các ví dụ thực tiễn cụ thể. Khi thực hiện chuyển đổi kiểu dữ liệu, hãy chú ý đến tính tương thích của kiểu và độ chính xác dữ liệu, đồng thời tận dụng hàm CAST.