Skip to main content
Documents
Share
LinkedIn
Facebook
Twitter
Copy
ClausesStatementsKeywordsExpressionsFunctionsIndexesPerformance Optimization

MySQL UPPER() Function

The `UPPER()` function in MySQL is used to convert a string to uppercase letters. It is useful for ensuring uniform capitalization, especially when performing case-insensitive comparisons or formatting outputs. The `UPPER()` function is part of MySQL's string functions and is available in all standard MySQL versions.

Usage

The `UPPER()` function is typically used when you need to convert text data to uppercase for consistency or comparison purposes. It is applied to a string or column containing text data.

sql
UPPER(string)

In this syntax, `string` is the text or column value to be converted to uppercase.

Examples

1. Basic Uppercase Conversion

sql
SELECT UPPER('hello world');

This example converts the string `'hello world'` to `'HELLO WORLD'`.

2. Converting Column Data

sql
SELECT UPPER(first_name) AS uppercase_name
FROM employees;

Here, the `first_name` column values from the `employees` table are converted to uppercase, and the result is aliased as `uppercase_name`.

3. Using UPPER() with WHERE Clause

sql
SELECT * 
FROM customers
WHERE UPPER(country) = 'CANADA';

In this example, the `UPPER()` function converts the `country` column values to uppercase to perform a case-insensitive comparison with the string `'CANADA'`.

4. Using UPPER() in a JOIN Condition

sql
SELECT a.id, a.name, b.category
FROM products a
JOIN categories b ON UPPER(a.category_name) = UPPER(b.category_name);

This example demonstrates using `UPPER()` in a `JOIN` condition to ensure the category names are compared case-insensitively across both tables.

Tips and Best Practices

  • Consistent Comparison. Use `UPPER()` to standardize text data for case-insensitive comparisons in `WHERE` clauses.
  • Avoid Unnecessary Conversion. Apply `UPPER()` only when necessary to prevent additional computation overhead.
  • Index Consideration. Be mindful that applying `UPPER()` to indexed columns can affect performance, as it may prevent MySQL from using the index efficiently. Consider using generated columns for indexing purposes if consistent case conversion is required.
  • Use Aliases for Clarity. When converting column data, use column aliases to clearly indicate the purpose of the transformed data.

To understand how `UPPER()` fits within MySQL's string functions, see also the `LOWER()` function for converting strings to lowercase.