1. Conceito Básico da Função CAST
O que é a Função CAST?
A função CAST do MySQL é uma função SQL usada para converter tipos de dados. Ela permite transformar uma expressão dada em outro tipo. Por exemplo, você pode converter uma string em um inteiro, ou alterar um tipo de data em uma string. A função CAST é uma ferramenta altamente útil frequentemente aplicada em operações de banco de dados para manter a consistência dos tipos de dados.
Principais Usos da Função CAST
A função CAST tem muitas aplicações, comumente usada nos seguintes cenários:
- Normalização de dados : Usada para unificar dados armazenados em formatos diferentes. Por exemplo, ajuda a padronizar formatos de data em uma tabela.
- Conversão de tipos de dados : Converte inteiros em strings (ou vice-versa) para otimizar a exibição e o cálculo de dados.
SELECT CAST('2023-09-22' AS DATE);
Diferença Entre CAST e Outras Conversões de Tipos de Dados
A função CAST é semelhante a outras funções de conversão do MySQL, como CONVERT, mas a diferença chave é que CAST segue o padrão SQL e é suportada por mais bancos de dados. CONVERT é específica do MySQL, principalmente usada para tarefas como conversão de conjunto de caracteres.
2. Sintaxe e Uso da Função CAST
Sintaxe da Função CAST
A sintaxe básica da função CAST é:
CAST(expression AS data_type)
Aqui, expression representa o valor a ser convertido, e data_type especifica o tipo de dados de destino.
Exemplos de Uso do CAST
- Convertendo para tipo inteiro : Usado para transformar uma string em um inteiro.
SELECT CAST('123' AS SIGNED);
- Convertendo para tipo string : Usado para converter um número em uma string.
SELECT CAST(123 AS CHAR);
Tratamento de Erros
Ao usar a função CAST, erros podem ocorrer se valores inválidos forem fornecidos para o tipo de destino. Por exemplo, tentar converter 'abc' em um número causará um erro. Em tais casos, recomenda-se combinar CAST com funções como IFNULL para lidar com erros de forma elegante.
3. Tipos de Dados Comuns e Exemplos de Conversão
Cenários Típicos de Conversão de Tipos de Dados
A função CAST é frequentemente usada para converter para os seguintes tipos de dados:
- INT : Converte números em inteiros.
- VARCHAR : Converte números ou datas em strings.
- DATE : Converte strings ou números em datas.
Convertendo para INT
SELECT CAST('456' AS SIGNED);
Este exemplo converte a string '456' em um inteiro.
Convertendo para VARCHAR
SELECT CAST(456 AS CHAR);
Este exemplo converte um inteiro em uma string, útil quando você precisa exibir dados em um formato específico.
Convertendo para DATE
SELECT CAST('2024-01-01' AS DATE);
Isso converte uma string em um tipo de data, garantindo armazenamento preciso e permitindo operações de data posteriores.

4. Considerações e Melhores Práticas para CAST
Considerações Chave
Ao usar a função CAST, mantenha estes pontos em mente:
- Compatibilidade de tipo : Conversões inválidas podem causar erros, então verifique a compatibilidade de tipo previamente.
- Perda de precisão : Converter números de ponto flutuante pode resultar em perda de precisão.
Melhores Práticas
- Use DECIMAL para precisão : Para evitar perda de precisão, use
DECIMALao converter números de ponto flutuante.
SELECT CAST(123.456 AS DECIMAL(5,2));
- Tratamento de erros : Ao lidar com tipos de dados mistos ou inesperados, use
IFNULLou instruçõesCASEpara conversões mais seguras.
5. Diferença Entre CAST e CONVERT
Comparando CAST e CONVERT
Tanto CAST quanto CONVERT realizam conversão de tipos de dados, mas sua sintaxe e uso pretendido diferem:
- CAST : Sintaxe SQL padrão:
CAST(expression AS data_type). - CONVERT : Sintaxe específica do MySQL:
CONVERT(expression, data_type).
Exemplo de Uso do CONVERT
A função CONVERT é principalmente usada para conversão de conjunto de caracteres.
SELECT CONVERT('abc' USING utf8);
Este exemplo altera o conjunto de caracteres de uma string.
Qual Usar?
Em geral, é melhor usar a função CAST padrão do SQL para maior compatibilidade. No entanto, se precisar fazer conversões de conjunto caracteres, CONVERT é a escolha apropriada.
6. Exemplos Práticos: Manipulação de Dados com CAST
Exemplos do Mundo Real
Aqui estão alguns exemplos práticos de como usar a função CAST para manipulação de dados.
Ordenando Números como Strings
Por exemplo, você pode converter números em strings antes de ordenar:
SELECT CAST(column_name AS CHAR) FROM table ORDER BY column_name;
Filtrando Strings como Números
Você também pode converter strings em números para filtrar intervalos específicos:
SELECT * FROM table WHERE CAST(column_name AS SIGNED) > 100;
7. Conclusão
Resumo
A função CAST é uma ferramenta essencial para converter tipos de dados de forma eficiente. Este artigo abordou seu uso básico, boas práticas e exemplos práticos. Ao realizar conversões de tipo, sempre considere a compatibilidade e a precisão para aproveitar ao máximo a função CAST no MySQL.


