# SQL式

多くの文や式の構文の語句に、式や表副問合せのような式の一種があります。 式は文の定められた場所に置くことができます。

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

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

- ORDER BY 節
- 選択式
- UPDATE文 (SETの部分)
- VALUES式
- WHERE節

もちろん他にも、これらの要素を構成の一部とする文はあるので、その一部として式を置くことができます。

以下の表ではSQL式と式を置くことのできる場所を示します。

#### 一般的な式

一般的な式とは何らかの型の値となる式のことです。

表 1. 一般的な式の表
式の種類 | 説明
--- | ---
列参照式 | 列への参照がある式では、列名で列の値を参照して、式の中で値を扱うことができます。 列が曖昧な場合は、列名を表名あるいは相関名で限定する必要があります。 FROM 節にて表に相関名が与えられていた場合、列名は相関名で限定される必要があります。別名として相関名が与えられている場合、表名で列を限定することはできません。 これは選択式s、UPDATE文やDML文のWHERE節におくことができます。
定数 | 多くの組込みのデータ型には関連した定数があります。(これはデータ型に記述されます。)
NULL | NULLは不明な値を表す、型のない定数です。 CAST式やINSERTのVALUES一覧およびUPDATEのSET節におくことができます。CAST式で利用することで、指定したデータ型を与えることができます。
| 動的パラメータ | 動的パラメータは、SQL文が作成された時には未だ決まっていない値へのパラメータです。その値の変わりに疑問符(?)がそれぞれの動的なパラメータのプレースホルダとしておかれます。 動的パラメータを参照してください。 動的パラメータは準備された文においてのみ、使うことができます。準備された文が実行される前に、動的パラメータの値は決められなければなりません。 また決めた値は文脈に沿った型でなければなりません。 データ型を問題なく推定できる場所では、どこでも利用することができます。動的パラメータを参照してください。
CAST 式 | NULLや動的パラメータの型を特定したり、値を他の型に変換することができます。 CAST 関数を参照してください。
スカラー副問合せ | 一列のみの一行だけを返す副問合せです。 スカラー副問合せを参照してください。
表副問合せ | 副問合せからは、一列以上、一行以上を返すことができます。 表副問合せを参照してください。 FROM句やEXISTS、INや定量比較の表式として置くことができます。

#### Boolean式

ブーリアン式はブーリアン値になる式です。多くの式は、ブーリアン値となれます。 一般的にWHERE句で用いられるブーリアン式は、SQL演算子で処理されるオペランドからなります。SQL のブーリアン演算子を参照してください。

#### 数式

数式は数値になる式です。多くの式は、数値となれます。 数値は以下の型のいずれかです。

- BIGINT
- DECIMAL
- DOUBLE PRECISION
- INTEGER
- REAL
- SMALLINT

表 1. 数式の表
条件式 | 条件式では、ブーリアン値に基づいて評価する式を選ぶことができます。
--- | ---
式の種類 | 説明
-、*、/、単一の+と-の式 | 評価されると、オペランドに対して期待される演算処理が行われます。もし両方のオペランドが同じ型であれば、結果の型が昇格されることはありません。従って整数に除算演算子が適用されると、実際の計算結果に切捨て処理が行われて整数となった値が結果となります。 もし型が混在していた場合は、データ型の記述に従い、型の昇格が行われます。 単一の+で行われる処理はありません。(例えば+4は4と同じです。)単一の-は、-1をかけることと同じで、その結果符号が反転します。
AVG | 数値の集合から平均を返します。AVG関数
SUM | 数値の集合から合計を返します。SUM関数
LENGTH | 文字列やビット列から、文字数を返します。 LENGTH関数を参照してください。
LOWER | LCASEあるいはLOWER関数を参照してください。
COUNT | 値集合の個数を返します。COUNT 関数、COUNT(*) 関数を参照してください。

#### 文字式

文字式は結果がCHARおよびVARCHARの値となる式です。多くの式の結果がCHARおよびVARCHARの値となります。

表 1. 文字式の表
式の種類 | 説明
--- | ---
ワイルドカードのあるCHARやVARCHARの値 | ワイルドカードの%や_を使って、LIKE演算子が一致する情報を探すパターン文字列を作ります。
連結式 | 連結式にて、連結演算子の"||"は、右辺のオペランドを左辺のオペランドの末尾に連結します。これは文字列やビット列に対して利用できます。 Concatenationを参照してください。
組込みの文字列関数 | 組込みの文字列関数は文字列に作用して、文字列を返します。 LTRIM関数、LCASEあるいはLOWER関数、RTRIM関数、TRIM 関数、SUBSTR関数それとrrefsqlj29930.html#rrefsqlj29930.ditaを参照してください。
USER関数 | User関数は現在のユーザに関する情報を文字列で返します。CURRENT_USER関数、SESSION_USER関数それと USER関数を参照してください。

#### 日付/時刻式

日付/時刻式は、結果がDATE、TIMEやTIMESTAMPの値となる式です。 多くの式の結果が日付/時刻の値となります。

表 1. 日付/時刻式の表
式の種類 | 説明
--- | ---
CURRENT_DATE | 現在の日付を返します。CURRENT_DATE関数を参照してください。
CURRENT_TIME | 現在の時刻を返します。CURRENT_TIME関数を参照してください。
CURRENT_TIMESTAMP | 現在のタイムスタンプを返します。CURRENT_TIMESTAMP関数を参照してください。

- 選択式
- TableExpression
- VALUES式
- 式に関する優先順位
- 真偽式
- 動的パラメータ

親トピック: SQL言語のリファレンス
関連概念
SQLの識別子
文
組込みシステム関数
JDBC リファレンス
関連資料
大文字小文字と特殊文字
SQL 節
JOIN 演算
SQL 問い合わせ
組み込み関数
SQL予約語
DerbyのサポートするSQL-92の機能
Derbyのシステム表
Derbyの例外メッセージとSQL state
java.sql.BatchUpdateException クラス
Connected Device ConfigurationおよびFoundation Profile向けのJDBCパッケージ(JSR169)
JDBC 3.0の機能
JDBC 4.0の機能
JDBCエスケープの構文