MySQLのお勉強!

MySQL TOP

第 12 章 関数と演算子

目次

12.1 関数と演算子のリファレンス
12.2 式評価での型変換
12.3 演算子
12.3.1 演算子の優先順位
12.3.2 比較関数と演算子
12.3.3 論理演算子
12.3.4 割り当て演算子
12.4 制御フロー関数
12.5 文字列関数
12.5.1 文字列比較関数
12.5.2 正規表現
12.6 数値関数と演算子
12.6.1 算術演算子
12.6.2 数学関数
12.7 日付および時間関数
12.8 MySQL で使用されるカレンダー
12.9 全文検索関数
12.9.1 自然言語全文検索
12.9.2 ブール全文検索
12.9.3 クエリー拡張を使用した全文検索
12.9.4 全文ストップワード
12.9.5 全文制限
12.9.6 MySQL の全文検索の微調整
12.9.7 全文インデックス作成用の照合順序の追加
12.10 キャスト関数と演算子
12.11 XML 関数
12.12 ビット関数
12.13 暗号化関数と圧縮関数
12.14 情報関数
12.15 空間分析関数
12.15.1 空間関数のリファレンス
12.15.2 空間関数による引数処理
12.15.3 WKT 値から幾何値を作成する関数
12.15.4 WKB 値から幾何値を作成する関数
12.15.5 幾何値を作成する MySQL 固有の関数
12.15.6 幾何形式変換関数
12.15.7 幾何プロパティー関数
12.15.8 空間演算子関数
12.15.9 幾何オブジェクト間の空間関係をテストする関数
12.16 グローバルトランザクション ID とともに使用される関数
12.17 MySQL Enterprise Encryption の関数
12.17.1 Enterprise Encryption のインストール
12.17.2 Enterprise Encryption の使用法と例
12.17.3 Enterprise Encryption 関数のリファレンス
12.17.4 Enterprise Encryption 関数の説明
12.18 その他の関数
12.19 GROUP BY 句で使用される関数と修飾子
12.19.1 GROUP BY (集約) 関数
12.19.2 GROUP BY 修飾子
12.19.3 MySQL での GROUP BY の処理
12.20 高精度計算
12.20.1 数値の型
12.20.2 DECIMAL データ型の特性
12.20.3 式の処理
12.20.4 丸め動作
12.20.5 高精度計算の例

SQL ステートメントのいくつかのポイント (SELECT ステートメントの ORDER BY または HAVING 句、SELECTDELETE、または UPDATE ステートメントの WHERE 句、SET ステートメントなど) では、式を使用できます。式は、リテラル値、カラム値、NULL、組み込み関数、ストアドファンクション、ユーザー定義関数、および演算子を使用して作成できます。この章では、MySQL で式を記述する際に許可されている関数および演算子について説明します。ストアドファンクションおよびユーザー定義関数を作成する手順については、セクション20.2「ストアドルーチン (プロシージャーと関数) の使用」およびセクション24.3「MySQL への新しい関数の追加」で説明されています。各種の関数への参照をサーバーが解釈する方法を記述したルールについては、セクション9.2.4「関数名の構文解析と解決」を参照してください。

NULL を含む式では、その関数または演算子に関するドキュメントで明記されていないかぎり、常に NULL 値が生成されます。

注記

デフォルトでは、関数名とそれに続く丸括弧の間には空白を入れることはできません。これは、MySQL パーサーが、関数呼び出しと、偶然に関数と同じ名前を持つテーブルまたはカラムへの参照を区別するのに役立ちます。ただし、関数の引数の前後にスペースを入れることは許可されています。

最初に --sql-mode=IGNORE_SPACE オプションを付けると、関数名のあとの空白文字を受け入れるように MySQL サーバーに指示できます。(セクション5.1.7「サーバー SQL モード」を参照してください。)各クライアントプログラムで mysql_real_connect()CLIENT_IGNORE_SPACE オプションを使用すると、この動作をリクエストできます。どちらの場合でも、すべての関数名は予約語になります。

簡略化のため、この章で示すほとんどの例では、mysql プログラムからの出力が省略形で表示されています。例は次の書式で表示されません。

mysql> SELECT MOD(29,9);
+-----------+
| mod(29,9) |
+-----------+
|         2 |
+-----------+
1 rows in set (0.00 sec)

代わりに、次の書式が使用されます。

mysql> SELECT MOD(29,9);
        -> 2