SQL UPPER:文字列を大文字に変換

概要:このチュートリアルでは、SQLのUPPER関数を使用して文字列を大文字に変換する方法を説明します。

SQL UPPER関数の紹介

SQLのUPPER関数は、文字列内のすべての文字を大文字に変換します。文字列を小文字に変換したい場合は、代わりにLOWER関数を使用します。

UPPER関数の構文は、以下のように非常に簡単です。

UPPER(string);Code language: SQL (Structured Query Language) (sql)

入力文字列がNULLの場合、UPPER関数はNULLを返します。それ以外の場合は、すべての文字が大文字に変換された新しい文字列を返します。

UPPER関数に加えて、一部のデータベースシステムでは、UPPER関数と同じUCASEという名前の追加関数が提供されています。これは「それを実現する方法は複数ある」ということです。

UCASE(string);Code language: SQL (Structured Query Language) (sql)

SQL UPPER関数の例

次のステートメントは、文字列sql upperSQL UPPERに変換します。

SELECT UPPER('sql upper');Code language: SQL (Structured Query Language) (sql)
        UPPER
----------------------
SQL UPPER
(1 row)Code language: SQL (Structured Query Language) (sql)

サンプルデータベースemployeesテーブルを見てみましょう。

employees table

次のクエリは、UPPER関数を使用して、従業員の姓を大文字に変換します。

SELECT 
    UPPER(last_name)
FROM
    employees
ORDER BY UPPER(last_name);Code language: SQL (Structured Query Language) (sql)

このクエリは、employeesテーブルからデータを読み取り、その場で変換しているだけです。テーブル内のデータはそのまま残ります。

データベーステーブル内のデータを大文字に変換するには、UPDATEステートメントを使用します。たとえば、次のステートメントは、従業員のメールアドレスを大文字に更新します。

UPDATE employees 
SET 
    email = UPPER(email);Code language: SQL (Structured Query Language) (sql)
SQL UPPER exmaple

UPPER関数を使用した大文字と小文字を区別しないデータクエリ

WHERE句を使用してデータをクエリする場合、データベースシステムは多くの場合、大文字と小文字を区別してデータを照合します。たとえば、リテラル文字列Brucebruceとは異なります。

次のクエリは結果を返しません。

SELECT 
    employee_id, 
    first_name
FROM
    employees
WHERE
    first_name = 'BRUCE';Code language: SQL (Structured Query Language) (sql)

大文字と小文字を区別せずにデータを照合するには、UPPER関数を使用します。たとえば、次のクエリは行を返します。

SELECT 
    employee_id, 
    first_name
FROM
    employees
WHERE
    UPPER(first_name) = 'BRUCE';Code language: SQL (Structured Query Language) (sql)
SQL UPPER function example

上記のクエリは、一致する行を見つけるためにテーブル全体をスキャンすることに注意してください。テーブルが大きい場合、クエリは非常に遅くなります。

これを克服するために、一部のデータベースシステムでは、1つまたは複数の列の関数に基づいてインデックスを定義できる関数ベースのインデックスを提供しており、クエリのパフォーマンスが向上します。

このチュートリアルでは、SQLのUPPER関数を使用して文字列を大文字に変換する方法を学びました。

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