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の構文に慣れてから、関数の使い方についても調べてみると良いでしょう。