Função UPPER() do MySQL
A função `UPPER()` do MySQL é usada para converter uma cadeia de caracteres em letras maiúsculas. É útil para garantir uma capitalização uniforme, especialmente ao realizar comparações sem distinção entre maiúsculas e minúsculas ou formatar saídas. A função `UPPER()` faz parte das funções de cadeia de caracteres do MySQL e está disponível em todas as versões padrão do MySQL.
Uso
A função `UPPER()` é normalmente usada quando você precisa converter dados de texto em letras maiúsculas para fins de consistência ou comparação. É aplicado a uma string ou coluna que contém dados de texto.
sql
UPPER(string)
Nessa sintaxe, `string` é o valor do texto ou da coluna a ser convertido em maiúsculas.
Exemplos
1. Conversão básica de letras maiúsculas
sql
SELECT UPPER('hello world');
Este exemplo converte a string `'hello world'` em `'HELLO WORLD'`.
2. Conversão de dados de coluna
sql
SELECT UPPER(first_name) AS uppercase_name
FROM employees;
Aqui, os valores da coluna `first_name` da tabela `employees` são convertidos em maiúsculas, e o resultado é chamado de `uppercase_name`.
3. Usando UPPER() com a cláusula WHERE
sql
SELECT *
FROM customers
WHERE UPPER(country) = 'CANADA';
Nesse exemplo, a função `UPPER()` converte os valores da coluna `country` em maiúsculas para realizar uma comparação sem distinção entre maiúsculas e minúsculas com a string `'CANADA'`.
4. Usando UPPER() em uma condição JOIN
sql
SELECT a.id, a.name, b.category
FROM products a
JOIN categories b ON UPPER(a.category_name) = UPPER(b.category_name);
Este exemplo demonstra o uso de `UPPER()` em uma condição `JOIN` para garantir que os nomes das categorias sejam comparados de forma insensível a maiúsculas e minúsculas em ambas as tabelas.
Dicas e práticas recomendadas
- Comparação consistente. Use `UPPER()` para padronizar dados de texto para comparações sem distinção entre maiúsculas e minúsculas em cláusulas `WHERE`.
- Evite conversões desnecessárias. Aplique `UPPER()` somente quando necessário para evitar sobrecarga adicional de computação.
- Considerações sobre o índice. Lembre-se de que a aplicação de `UPPER()` a colunas indexadas pode afetar o desempenho, pois pode impedir que o MySQL use o índice de forma eficiente. Considere o uso de colunas geradas para fins de indexação se for necessária uma conversão consistente de casos.
- Use pseudônimos para maior clareza. Ao converter dados de coluna, use aliases de coluna para indicar claramente a finalidade dos dados transformados.
Funções relacionadas
Para entender como `UPPER()` se encaixa nas funções de string do MySQL, veja também a função `LOWER()` para converter strings em minúsculas.