目次
- 1 1. Khái niệm cơ bản của hàm CAST
- 2 2. Cú pháp và cách sử dụng hàm CAST
- 3 3. Các kiểu dữ liệu thường được sử dụng và ví dụ chuyển đổi của chúng
- 4 4. Lưu ý khi sử dụng hàm CAST và các thực tiễn tốt nhất
- 5 5. Sự khác nhau giữa hàm CAST và hàm CONVERT
- 6 6. Ví dụ thực tế: Thao tác dữ liệu bằng hàm CAST
- 7 7. Tóm tắt
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 ý:- 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.
- 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ặcCASE
để 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;