.
1. Khái niệm Cơ bản về Hàm CAST
Hàm CAST là gì?
Hàm CAST của MySQL là một hàm SQL được dùng để chuyển đổi kiểu dữ liệu. Nó chuyển một biểu thức đã chỉ định sang một kiểu dữ liệu khác. Bằng cách sử dụng hàm CAST, bạn có thể, ví dụ, chuyển một chuỗi thành số nguyên hoặc chuyển một kiểu ngày thành chuỗi. Đây là một công cụ hữu ích thường được dùng trong các 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 Ứng Dụng Chính của Hàm CAST
Hàm CAST có phạm vi ứng dụng rộng rãi và thường được dùng trong các tình huống sau:
- Chuẩn hoá dữ liệu : Dùng để chuẩn hoá dữ liệu được lưu ở các định dạng khác nhau. Ví dụ, nó giúp thống nhất các định dạng ngày tháng được lưu trong một bảng.
- Chuyển đổi kiểu dữ liệu : Chuyển đổi số nguyên sang chuỗi hoặc ngược lại để tối ưu 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 tương tự các hàm chuyển đổi của MySQL (như 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ợ bởi nhiều hệ quản trị cơ sở dữ liệu hơn. CONVERT là hàm riêng của MySQL và 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 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(expression AS data_type)
Trong cú pháp này, bạn chỉ định giá trị cần chuyển đổi ở phần biểu thức và kiểu dữ liệu đích ở phần data_type.
Các Ví Dụ Khi Sử Dụng Hàm CAST
- Chuyển sang kiểu số nguyên : Dùng khi chuyển một chuỗi thành số nguyên.
SELECT CAST('123' AS SIGNED);
- Chuyển sang kiểu chuỗi : Dùng khi chuyển một giá trị số sang chuỗi.
SELECT CAST(123 AS CHAR);
Xử Lý Lỗi
Khi sử dụng hàm CAST, lỗi có thể xảy ra nếu giá trị cung cấp không hợp lệ cho kiểu dữ liệu đích. Ví dụ, cố gắng chuyển 'abc' thành giá trị số sẽ gây ra lỗi. Trong những trường hợp này, nên xử lý lỗi bằng cách kết hợp các hàm như IFNULL.
3. Các Kiểu Dữ Liệu Thường Dùng và Ví Dụ Chuyển Đổi
Các Kịch Bản Thông Thường cho Việc Chuyển Đổi Kiểu Dữ Liệu
Với hàm CAST, thường xuyên chuyển đổi sang các kiểu dữ liệu sau:
- Kiểu INT : Chuyển một giá trị thành kiểu số nguyên.
- Kiểu VARCHAR : Chuyển các giá trị số hoặc ngày thành chuỗi.
- Kiểu DATE : Chuyển các chuỗi hoặc giá trị số thành ngày tháng.
Chuyển Đổi sang Kiểu INT
SELECT CAST('456' AS SIGNED);
Trong ví dụ này, chuỗi '456' được chuyển thành kiểu số nguyên.
Chuyển Đổi sang Kiểu VARCHAR
SELECT CAST(456 AS CHAR);
Đây là ví dụ chuyển một số nguyên thành chuỗi. Thao tác này hữu ích khi bạn muốn hiển thị dữ liệu theo một định dạng cụ thể.
Chuyển Đổi sang Kiểu DATE
SELECT CAST('2024-01-01' AS DATE);
Điều này chuyển một chuỗi thành kiểu ngày tháng. Nhờ đó, dữ liệu được lưu một cách chính xác và có thể được sử dụng cho các thao tác ngày tháng sau này.

4. Lưu Ý Quan Trọng và Các Thực Hành Tốt Nhất cho Hàm CAST
Những Lưu Ý Khi Sử Dụng Hàm CAST
Có một số điểm quan trọng cần lưu ý khi dùng hàm CAST:
- Tương thích kiểu dữ liệu : Các chuyển đổi không hợp lệ có thể gây lỗi, vì vậy bạn phải kiểm tra tính tương thích kiểu dữ liệu trước.
- Mất độ chính xác dữ liệu : Đặc biệt khi chuyển đổi số thực, độ chính xác dữ liệu có thể bị giảm.
Các Thực Hành Tốt Nhất
- Sử dụng kiểu DECIMAL : Khi chuyển đổi số thực, dùng kiểu DECIMAL để tránh mất độ chính xác.
SELECT CAST(123.456 AS DECIMAL(5,2));
- Xử lý lỗi : Nếu có sự trộn lẫn kiểu dữ liệu không mong muốn, nên xử lý lỗi bằng các câu lệnh
IFNULLhoặcCASE.
5. Sự Khác Biệt Giữa Hàm CAST và Hàm CONVERT
So Sánh CAST và CONVERT
Cả CAST và CONVERT đều được sử dụng để chuyển đổi kiểu dữ liệu, nhưng chúng khác nhau về cú pháp và mục đích.
- Hàm CAST : Được sử dụng rộng rãi trong SQL chuẩn, với cú pháp
CAST(expression AS data_type). - Hàm CONVERT : Một hàm cụ thể của MySQL với cú pháp
CONVERT(expression, data_type).
Ví dụ về Sử dụng Hàm CONVERT
Hàm CONVERT chủ yếu được sử 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 Sử dụng Cái Nào?
Nói chung, được khuyến nghị sử dụng hàm CAST vì nó tuân theo tiêu chuẩn SQL và được hỗ trợ rộng rãi. Tuy nhiên, khi cần chuyển đổi bộ ký tự, hàm CONVERT phù hợp hơn.
6. Các Ví dụ Thực tế: Thao tác Dữ liệu Sử dụng Hàm CAST
Các Ví dụ Thao tác Dữ liệu Thực tế
Đây là các ví dụ về việc thực hiện các thao tác dữ liệu thực tế sử dụng hàm CAST.
Sắp xếp Sau Khi Chuyển Đổi Số Thành Chuỗi
Ví dụ, khi chuyển đổi các giá trị số thành chuỗi trước khi sắp xếp, bạn có thể viết truy vấn như sau:
SELECT CAST(column_name AS CHAR) FROM table ORDER BY column_name;
Lọc Sau Khi Chuyển Đổi Chuỗi Thành Số
Bạn cũng có thể chuyển đổi chuỗi thành số và lọc dựa trên một phạm vi cụ thể.
SELECT * FROM table WHERE CAST(column_name AS SIGNED) > 100;
7. Kết luận
Tóm tắt Bài viết
Hàm CAST cực kỳ hữu ích để 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 đã bao quát mọi thứ từ cách sử dụng cơ bản đến các ví dụ thực tế. Khi thực hiện chuyển đổi kiểu dữ liệu, luôn chú ý đến tính tương thích kiểu và độ chính xác dữ liệu, và tận dụng tối đa hàm CAST trong các hoạt động cơ sở dữ liệu của bạn.


