概要:このチュートリアルでは、SQL LOWER関数を使用して文字列のすべての文字を小文字に変換する方法を学習します。
SQL LOWER関数の紹介
SQL LOWER
関数は、文字列内のすべての文字を小文字に変換します。文字列内のすべての文字を大文字に変換する場合は、UPPER
関数を使用する必要があります。
LOWER
関数の構文を以下に示します。
LOWER(string);
Code language: SQL (Structured Query Language) (sql)
LOWER
関数は、すべての文字が小文字形式の文字列を返します。入力文字列がNULL
の場合は、NULL
を返します。
OracleデータベースやMySQLなどの一部のデータベースシステムは、LOWER
関数と同等のLCASE
関数を提供しています。
LCASE(string);
Code language: SQL (Structured Query Language) (sql)
SQL LOWERの例
次のステートメントは、LOWER
関数を使用して文字列を小文字に変換します。
SELECT LOWER('SQL LOWER');
Code language: SQL (Structured Query Language) (sql)
lower
----------------------
sql lower
(1 row)
Code language: SQL (Structured Query Language) (sql)
サンプルデータベースの次のemployees
テーブルを参照してください。

次のクエリは、LOWER関数を使用して、部門名を小文字で返します。
SELECT
LOWER(department_name)
FROM
departments
ORDER BY LOWER(department_name);
Code language: SQL (Structured Query Language) (sql)
次のステートメントは、従業員のメールアドレスを小文字に更新します。
UPDATE employees
SET
email = LOWER(email);
Code language: SQL (Structured Query Language) (sql)
大文字と小文字を区別しないデータのクエリ
標準SQLは、大文字と小文字を区別する照合を実行します。つまり、リテラル文字列Sarah
は、クエリの入力に関してはsarah
とは異なります。
大文字と小文字を区別せずにデータをクエリするには、LOWER
関数を使用できます。
次のクエリは、名`が`sarah`である従業員が存在しないため、空の結果セットを返します。
SELECT
employee_id, first_name, last_name, email
FROM
employees
WHERE
first_name = 'sarah';
Code language: SQL (Structured Query Language) (sql)
ただし、LOWER
関数を使用すると、行が返されます。
SELECT
employee_id,
first_name,
last_name,
email
FROM
employees
WHERE
LOWER(first_name) = 'sarah';
Code language: SQL (Structured Query Language) (sql)

このクエリは、結果を取得するためにテーブル全体をスキャンすることに注意してください。大きなテーブルの場合、処理が遅くなります。
一部のデータベースシステム(Oracleデータベース、PostgreSQLなど)は、関数ベースのインデックスをサポートしています。特定の関数に基づいてインデックスを作成できます。 first_name
列に関数ベースのインデックスを作成すると、クエリはインデックスを使用して非常に高速に行を検索します。
これで、LOWER
関数を使用して文字列を小文字に変換する方法がわかりました。