オペレーター
SQL演算子は、1つ以上の式に対して実行されるアクションを指定する記号です。演算子は、特殊文字またはキーワードによって表されます。
演算子の優先順位
複雑な式に複数の演算子がある場合、演算子の優先順位によって式内の演算の順序が決まります。たとえば、式 1 + 2 * 3 では、* は + よりも優先順位が高いため、式は 1 + (2 * 3) = 7 として評価されます。実行順序は、結果の値に大きく影響する可能性があります。
演算子には、以下の表に示す優先順位レベルがあります。優先順位が高い演算子は、低いレベルの演算子よりも前に評価されます。以下の表では、演算子は優先順位の降順で、つまり1が最高のレベルで表示されています。同じ表セルにリストされている演算子は、同じ優先順位を持ち、結合規則に基づいて左から右または右から左に評価されます。
| 優先順位 | 演算子 | 演算 | 結合規則 |
|---|---|---|---|
| 1 | . [] :: |
メンバーアクセス 要素アクセス キャスト |
左から右 |
| 2 | + - ~ |
単項プラス 単項マイナス ビット単位NOT |
右から左 |
| 3 | * / % DIV |
乗算 除算、剰余 整数除算 |
左から右 |
| 4 | + - || |
加算 減算 連結 |
左から右 |
| 5 | << >> >>> |
ビット単位左シフト ビット単位右シフト ビット単位符号なし右シフト |
左から右 |
| 6 | & | ビット単位AND | 左から右 |
| 7 | ^ | ビット単位XOR(排他的論理和) | 左から右 |
| 8 | | | ビット単位OR(包括的論理和) | 左から右 |
| 9 | =, == <>, != <, <= >, >= |
比較演算子 | 左から右 |
| 10 | NOT, ! EXISTS |
論理NOT 存在 |
右から左 |
| 11 | BETWEEN IN RLIKE, REGEXP ILIKE LIKE IS [NULL, TRUE, FALSE] IS DISTINCT FROM |
その他の述語 | 左から右 |
| 12 | AND | AND(論理積) | 左から右 |
| 13 | OR | OR(論理和) | 左から右 |