場所によっては決められた種類の式や決められた属性を持つ式のみ置くことができます。
特別な指定がなければ、構文にて式と書かれている全ての場所に式を置くことができます。
これには以下が含まれます。
- ORDER BY 節
- 選択式
- UPDATE文 (SETの部分)
- VALUES式
- WHERE節
もちろん他にも、これらの要素を構成の一部とする文はあるので、その一部として式を置くことができます。
以下の表ではSQL式と式を置くことのできる場所を示します。
一般的な式
一般的な式とは何らかの型の値となる式のことです。
一般的な式の表
式の種類
説明
列参照式
列への参照がある式では、列名で列の値を参照して、式の中で値を扱うことができます。
列が曖昧な場合は、列名を表名あるいは相関名で限定する必要があります。
FROM
節にて表に相関名が与えられていた場合、列名は相関名で限定される必要があります。別名として相関名が与えられている場合、表名で列を限定することはできません。
これは選択式s、UPDATE文やDML文のWHERE節におくことができます。
定数
多くの組込みのデータ型には関連した定数があります。(これはに記述されます。)
NULL
NULLは不明な値を表す、型のない定数です。CAST式やINSERTのVALUES一覧およびUPDATEのSET節におくことができます。CAST式で利用することで、指定したデータ型を与えることができます。
動的パラメータ
動的パラメータは、SQL文が作成された時には未だ決まっていない値へのパラメータです。その値の変わりに疑問符(?)がそれぞれの動的なパラメータのプレースホルダとしておかれます。
を参照してください。
動的パラメータは準備された文においてのみ、使うことができます。準備された文が実行される前に、動的パラメータの値は決められなければなりません。
また決めた値は文脈に沿った型でなければなりません。
データ型を問題なく推定できる場所では、どこでも利用することができます。を参照してください。
CAST 式
NULLや動的パラメータの型を特定したり、値を他の型に変換することができます。
を参照してください。
スカラー副問合せ
一列のみの一行だけを返す副問合せです。
を参照してください。
表副問合せ
副問合せからは、一列以上、一行以上を返すことができます。
表副問合せを参照してください。
FROM句やEXISTS、INや定量比較の表式として置くことができます。
Boolean式
ブーリアン式はブーリアン値になる式です。多くの式は、ブーリアン値となれます。
一般的にWHERE句で用いられるブーリアン式は、SQL演算子で処理されるオペランドからなります。を参照してください。
数式
数式は数値になる式です。多くの式は、数値となれます。
数値は以下の型のいずれかです。
- BIGINT
- DECIMAL
- DOUBLE PRECISION
- INTEGER
- REAL
- SMALLINT
数式の表
条件式
条件式では、ブーリアン値に基づいて評価する式を選ぶことができます。
式の種類
説明
-、*、/、単一の+と-の式
評価されると、オペランドに対して期待される演算処理が行われます。もし両方のオペランドが同じ型であれば、結果の型が昇格されることはありません。従って整数に除算演算子が適用されると、実際の計算結果に切捨て処理が行われて整数となった値が結果となります。
もし型が混在していた場合は、の記述に従い、型の昇格が行われます。
単一の+で行われる処理はありません。(例えば+4は4と同じです。)単一の-は、-1をかけることと同じで、その結果符号が反転します。
AVG
数値の集合から平均を返します。
SUM
数値の集合から合計を返します。
LENGTH
文字列やビット列から、文字数を返します。
を参照してください。
LOWER
を参照してください。
COUNT
値集合の個数を返します。、を参照してください。
文字式
文字式は結果がCHARおよびVARCHARの値となる式です。多くの式の結果がCHARおよびVARCHARの値となります。
文字式の表
式の種類
説明
ワイルドカードのあるCHARやVARCHARの値
ワイルドカードの%や_を使って、LIKE演算子が一致する情報を探すパターン文字列を作ります。
連結式
連結式にて、連結演算子の"||"は、右辺のオペランドを左辺のオペランドの末尾に連結します。これは文字列やビット列に対して利用できます。
を参照してください。
組込みの文字列関数
組込みの文字列関数は文字列に作用して、文字列を返します。
、、、、それとを参照してください。
USER関数
User関数は現在のユーザに関する情報を文字列で返します。、それと
を参照してください。
日付/時刻式
日付/時刻式は、結果がDATE、TIMEやTIMESTAMPの値となる式です。
多くの式の結果が日付/時刻の値となります。
日付/時刻式の表
式の種類
説明
CURRENT_DATE
現在の日付を返します。を参照してください。
CURRENT_TIME
現在の時刻を返します。を参照してください。
CURRENT_TIMESTAMP
現在のタイムスタンプを返します。を参照してください。