SQL LOWER:文字列を小文字に変換する

概要:このチュートリアルでは、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テーブルを参照してください。

employees table

次のクエリは、LOWER関数を使用して、部門名を小文字で返します。

SELECT 
    LOWER(department_name)
FROM
    departments
ORDER BY LOWER(department_name);Code language: SQL (Structured Query Language) (sql)

SQL LOWER example
次のステートメントは、従業員のメールアドレスを小文字に更新します。

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)
SQL LOWER function example

このクエリは、結果を取得するためにテーブル全体をスキャンすることに注意してください。大きなテーブルの場合、処理が遅くなります。

一部のデータベースシステム(Oracleデータベース、PostgreSQLなど)は、関数ベースのインデックスをサポートしています。特定の関数に基づいてインデックスを作成できます。 first_name列に関数ベースのインデックスを作成すると、クエリはインデックスを使用して非常に高速に行を検索します。

これで、LOWER関数を使用して文字列を小文字に変換する方法がわかりました。

このチュートリアルは役に立ちましたか?