SQL式 多くの文や式の構文の語句に、表副問合せのような式の一種があります。 式は文の定められた場所に置くことができます。 SQL expressionscolumn reference SQL expressionsconstantSQL expressionsNULLSQL expressionsdynamic parameterSQL expressionsCAST SQL expressionsscalar subquery SQL expressionstable subquery SQL expressionsconditionalSQL expressionsnumericSQL expressionscharacter SQL expressionsstring with wildcards SQL expressionsconcatenation function SQL expressionsCURRENT_DATE function SQL expressionsCURRENT_TIME function SQL expressionsCURRENT_TIMESTAMP function SQL expressionsmathematical (+ -, *, /, unary + and - )SQL expressionsLENGTH function expressionscolumn reference expressionsconstantexpressionsNULL expressionsdynamic parameter expressionsCASTexpressionsscalar subqueryexpressionstable subquery expressionsconditionalexpressionsnumeric expressionscharacterexpressionsstring with wildcardsexpressionsconcatenation functionexpressionsCURRENT_DATE functionexpressionsCURRENT_TIME functionexpressionsCURRENT_TIMESTAMP functionexpressionsmathematical (+ -, *, /, unary + and - )expressionsLENGTH function

場所によっては決められた種類の式や決められた属性を持つ式のみ置くことができます。

特別な指定がなければ、構文にてと書かれている全ての場所に式を置くことができます。 これには以下が含まれます。

  • 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 現在のタイムスタンプを返します。を参照してください。