LOWER is a scalar string function defined in the SQL standard that returns a character value with every alphabetic character converted to its lowercase form. Non-alphabetic characters are left unchanged. The function is deterministic for single-byte character sets and most Unicode collations.LOWER is typically used to normalize text before comparison or storage. Because many databases perform case-sensitive comparisons by default, converting both operands to lowercase (or uppercase) ensures consistent, predictable matching. The function works on CHAR, VARCHAR, TEXT, and similar string types; most systems implicitly cast other data types to string if necessary.Collation and locale can affect results for characters whose lowercase representation differs between languages. For example, the Turkish dotted and dotless “I” require a Turkish collation to behave as expected. Multi-byte encodings (UTF-8, UTF-16) are fully supported in modern engines, but very old versions may only guarantee proper conversion for ASCII characters. LOWER returns NULL when the input expression is NULL.
string_expression
(STRING) - Any character or string expression to be converted to lowercase.UPPER, INITCAP, COLLATE, ILIKE, LOWER vs. LCASE (MS Access)
SQL-92
No. It leaves numbers, punctuation, and symbols unchanged and converts only alphabetic characters to lowercase.
Apply LOWER to both the column and the search term: `WHERE LOWER(column_name) = LOWER('SearchTerm')` or use `LIKE`/`ILIKE` depending on the dialect.
Modern databases fully support Unicode. However, ensure your collation handles language-specific rules (e.g., Turkish dotted I) to avoid surprises.
Yes. Create a functional index such as `CREATE INDEX idx_users_email_lc ON users (LOWER(email));` to accelerate case-insensitive lookups.