SQL LOWER()

The SQL LOWER() function converts all characters in a given string to lowercase. This function is useful for case-insensitive comparisons, data normalization, and ensuring consistent formatting for text fields.

The LOWER() function is widely supported in SQL databases, including MySQL, SQL Server, PostgreSQL, and Oracle.

In this tutorial, we will go through SQL LOWER() String function, its syntax, and how to use this function in SQL statements for string operations, with the help of well detailed examples.


Syntax of SQL LOWER() Function

The basic syntax of the SQL LOWER() function is:

</>
Copy
LOWER(string);

Each part of this syntax has a specific purpose:

  • string: The text to be converted to lowercase. This can be a column, variable, or text literal.

The LOWER() function returns the string with all characters in lowercase.


Setup for Examples: Creating the Database and Table

We’ll create a sample products table with fields product_name and description to demonstrate the LTRIM() function examples.

1. First, create a new database called store:

</>
Copy
CREATE DATABASE store;

2. Select the store database to work with:

</>
Copy
USE store;

3. Create a table named products with fields product_id, product_name, and description:

</>
Copy
CREATE TABLE products (
    product_id INT PRIMARY KEY AUTO_INCREMENT,
    product_name VARCHAR(100),
    description TEXT
);

4. Insert sample data into the products table to use with the LTRIM() function examples:

</>
Copy
INSERT INTO products (product_name, description)
VALUES 
('  Laptop Pro', '   High-performance laptop with a sleek design.'),
('Wireless Mouse  ', 'Compact and easy to use.   '),
('  Smartphone XL', '   Large screen smartphone with powerful features.'),
('Tablet', 'Versatile tablet for work and play.');

With this setup complete, we can run the LTRIM() function examples to test and view results in the products table.

SQL LOWER() - Setup for examples

Examples: Using LOWER() in SQL Queries with the Products Table

We’ll go through examples demonstrating the LOWER() function in SQL, using sample data from a products table with fields product_name and description.

SQL LOWER() - products table data for examples

1. Converting Product Names to Lowercase

To convert all values in the product_name column to lowercase:

</>
Copy
SELECT product_name, LOWER(product_name) AS lowercase_product_name
FROM products;

This query returns each product name with all characters converted to lowercase, which can be useful for displaying standardized names.

SQL LOWER() Example - Converting Product Names to Lowercase

2. Using LOWER() in Case-Insensitive Searches

To perform a case-insensitive search for product names, for example, finding all products with the name “tablet”:

</>
Copy
SELECT *
FROM products
WHERE LOWER(product_name) = 'tablet';

This query ensures that products with any case combination (e.g., “Tablet”, “TABLET”) are matched, making the search case-insensitive.

SQL LOWER() Example - Using LOWER() in Case-Insensitive Searches

Reference: SQL WHERE


3. Normalizing Descriptions for Consistency

To convert all descriptions to lowercase for uniformity:

</>
Copy
SELECT description, LOWER(description) AS normalized_description
FROM products;

This query standardizes descriptions to lowercase, useful for consistent data presentation or case-insensitive comparisons.

SQL LOWER() Example - Normalizing Descriptions for Consistency

4. Using LOWER() with CONCAT() for Custom Output

To display product names in lowercase combined with a prefix:

</>
Copy
SELECT CONCAT('Product: ', LOWER(product_name)) AS formatted_product_name
FROM products;

This query returns each product name prefixed with “Product: ” and in lowercase, such as “Product: gadget”.

SQL LOWER() Example - Using LOWER() with CONCAT() for Custom Output

FAQs for SQL LOWER()

1. What does the SQL LOWER() function do?

The LOWER() function converts all characters in a string to lowercase, standardizing text output.

2. Can LOWER() handle NULL values?

Yes, if the input is NULL, LOWER() returns NULL.

3. Is LOWER() supported in all SQL databases?

Yes, LOWER() is supported across major SQL databases, including MySQL, SQL Server, PostgreSQL, and Oracle.

4. How is LOWER() different from UPPER()?

LOWER() converts all characters to lowercase, while UPPER() converts all characters to uppercase.

5. Can LOWER() be combined with other string functions?

Yes, LOWER() can be combined with functions like CONCAT() or SUBSTRING() for more complex string operations.