SQLの関数③_文字列関数



SQLの関数③_文字列関数

文字列関数は、文字列を操作するための関数です。今回使用するのは国テーブル、URLテーブル、

国テーブル

URLテーブル

電話番号テーブル

1.UPPERとLOWER関数

英字を大文字に変換するのがUPPER関数、小文字に変換するのがLOWER関数です。国テーブルで見てみましょう。SQLは以下のようになります。

SELECT 国名, UPPER(国名) 大文字,LOWER(国名) 子文字 FROM 国;

結果は以下のようになります。

2.SUBSTRING関数

SUBSTRING関数を使うと文字列の一部を取り出すことができます。この関数はRDBMS毎に名称が違うので注意が必要です。(OracleはSUBSTR)。URLテーブルのURL列の4文字目から6文字分を取り出すSQLは以下のようになります。
SUBSTRING(第1引数,第2引数,第3引数)

SELECT URL,SUBSTRING(URL,4,6) FROM url;

結果は以下のようになります。

SUBSTRING関数の第3引数を省略すると第2引数以降の文字列が全て出力されます。

SELECT URL,SUBSTRING(URL,4) FROM url;

結果は以下のようになります。

SUBSTRING関数と文字列連結演算子(|| 注(MySQLではCONCAT))を使用すると、データの中に文字を挿入することができます。例えば連続されて入力されている電話番号に’-‘を挿入し、わかりやすく表示することができます。以下のようなSQLを実行すると結果は以下のようになります。

SELECT TEL,CONCAT(SUBSTRING(TEL,1,2),’-‘,SUBSTRING(TEL,3,4),’-‘,SUBSTRING(TEL,7,4)) 修正後TEL FROM 電話番号;

結果は以下のようになります。

3.LENGTH関数

LENGTH関数を使うと、文字列の長さを調べることができます。国名の各文字列の長さを調べるには以下のようにします。

SELECT 国名,LENGTH(国名) FROM 国;

結果は以下のようになります。

4.RTRIM関数とLTRIM関数

RTRIM関数とLTRIM関数は、文字列の端に入力されている空白を取り除きます。RTRIM関数は右側、LRTIM関数は左側の空白をそれぞれ取り除きます。確認してみましょう。
まず、国テーブルの内、’Germany’のデータの両端に空白を2文字分挿入します。SQLは以下のようになります。

UPDATE 国 SET 国名 = ‘ Germany ‘ Where 国名 = ‘Germany’

結果は以下のようになります。’Germany’のみ実際には、’  Germany  ‘となっています。

次にこの’Germany’の両端の空白を取り除きます。SQLは以下のようになります。

SELECT 国名,LTRIM(国名),RTRIM(国名) FROM 国 Where 国名 = ‘ Germany ‘;

結果は以下のようになります。

ちょっとわかりにくいですが、Germanyの両端の空白が取り除かれています。

文字列関数は以上となります。次回はSELECT文の句についてさらにいろいろは機能を見ていきます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です