Skip to main content
Documents
Basic SyntaxMath FunctionsDate FunctionsJSON FunctionsDatabasesTables & Schema ManagementString FunctionsTriggersIndexes

PostgreSQL LOWER

The `LOWER` function in PostgreSQL is a string function that converts all characters in a specified string to lowercase. It is useful for case-insensitive string comparisons and formatting text consistently.

Usage

The `LOWER` function is typically used when you need to ensure that text data is in lowercase for consistency, especially in search queries or data normalization processes. It takes a string as input and returns the lowercase version.

sql
LOWER(string)

In this syntax, `string` represents the text to be converted to lowercase.

Examples

1. Basic Conversion

sql
SELECT LOWER('HELLO WORLD');

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

2. Lowercasing Column Data

sql
SELECT LOWER(product_name)
FROM products;

Here, the `LOWER` function converts all values in the `product_name` column of the `products` table to lowercase, which can be useful for consistent data formatting.

3. Case-Insensitive Search

sql
SELECT *
FROM users
WHERE LOWER(email) = LOWER('Example@Domain.COM');

This query performs a case-insensitive search by converting both the column data and the search term to lowercase, ensuring accurate matches regardless of case differences.

Tips and Best Practices

  • Normalize data at the entry point. Use `LOWER` to standardize data upon insertion to reduce potential inconsistencies.
  • Combine with indexes. For case-insensitive searches, consider using functional indexes on `LOWER(column_name)` to improve query performance. Here's an example of creating such an index:
    sql
        CREATE INDEX idx_lower_email ON users (LOWER(email));
        
  • Avoid excessive use. While `LOWER` is helpful for consistency, overuse in SELECT statements can impact performance; use it judiciously, especially on large datasets.
  • Consider character encodings and special characters. Be aware that `LOWER` respects the database's character encoding settings, which is important for multi-language datasets and special characters.
  • Consider collation settings. Ensure your database's collation settings align with your locale's case-sensitivity needs for optimal results.