MySQLのようなデータベースプロダクトには関数が用意されています。これらの関数を使えば文字列操作や null 値の置き換え、日付操作などを行うことができます。また、SQLにはここで取り上げるような一般的な関数以外にも、複数のレコードを集約するグループ関数と呼ばれるものも用意されています。

データベースプロダクトごとに利用可能な関数は異なるので注意してください。

upper 関数

upper 関数は引数に指定された文字列を大文字に変換します。次のSQLは courses テーブルから取得した title 列の値を大文字に変換して出力します。

MariaDB [eldb]> select id, upper(title) from courses;
+----+-----------------+
| id | upper(title)    |
+----+-----------------+
|  1 | PHP BASIC       |
|  2 | PHP DATABASE    |
|  3 | PYTHON BASIC    |
|  4 | WEB DESIGN      |
|  5 | JAPAN'S HISTORY |
+----+-----------------+
5 rows in set (0.00 sec)

MariaDB [eldb]> 

小文字に変換する lower 関数も用意されています。

length 関数

length 関数は引数に指定された文字列の長さ(バイト数)を取得します。次のSQLは courses テーブルから取得した title 列の長さを出力します。

MariaDB [eldb]> select id, length(title) from courses;
+----+---------------+
| id | length(title) |
+----+---------------+
|  1 |             9 |
|  2 |            12 |
|  3 |            12 |
|  4 |            10 |
|  5 |            15 |
+----+---------------+
5 rows in set (0.00 sec)

MariaDB [eldb]> 

ifnull 関数

ifnull 関数は第1引数に指定された値が null の場合、第2引数の値に置き換えます。次のSQLは courses テーブルから取得した category_id 列の値が null の場合、 0 に置き換えて出力します。

MariaDB [eldb]> select id, title, ifnull(category_id, 0) from courses;
+----+-----------------+------------------------+
| id | title           | ifnull(category_id, 0) |
+----+-----------------+------------------------+
|  1 | PHP Basic       |                      1 |
|  2 | PHP Database    |                      1 |
|  3 | Python Basic    |                      1 |
|  4 | Web Design      |                      2 |
|  5 | Japan's History |                      0 |
+----+-----------------+------------------------+
5 rows in set (0.00 sec)

MariaDB [eldb]> 

文字列を扱う関数には他にも、部分文字列を取得する substr 関数や、スペース文字を除去する trim 関数など様々な関数が用意されています。また日付型のデータを操作する関数も存在します。まずはSQLの構文に慣れてから、関数の使い方についても調べてみると良いでしょう。