SQL の基本的な演算は、割り当てと比較です。 割り当て操作は、INSERT、 UPDATE、FETCH、SELECT INTO、VALUES INTO および SET 変換変数ステートメントの実行時に行われます。
関数の引き数も、関数の呼び出し時に割り当てられます。 比較演算は、MAX、MIN、DISTINCT、GROUP BY、 ORDER BY のような述部およびその他の言語要素を含むステートメントの実行時に行われます。
両方の演算に適用される基本的な規則は、
関係するオペランドのデータ・タイプは互換でなければならないということです。
この互換性規則は集合演算にも適用されます (結果のデータ・タイプに関する規則を参照)。
互換性について一覧表にまとめると以下のようになります。
オペランド | 2 進整数 | 10 進数 | 浮動小数点数 | 文字ストリング | 漢字ストリング | 日付 | 時刻 | タイム・スタンプ | 2 進ストリング | UDT | ||
---|---|---|---|---|---|---|---|---|---|---|---|---|
2 進整数 | Yes | Yes | Yes | No | No | No | No | No | No | 2 | ||
10 進数 | Yes | Yes | Yes | No | No | No | No | No | No | 2 | ||
浮動小数点数 | Yes | Yes | Yes | No | No | No | No | No | No | 2 | ||
文字ストリング | No | No | No | Yes | No | 1 | 1 | 1 | No 3 | 2 | ||
漢字ストリング | No | No | No | No | Yes | No | No | No | No | 2 | ||
日付 | No | No | No | 1 | No | Yes | No | No | No | 2 | ||
時刻 | No | No | No | 1 | No | No | Yes | No | No | 2 | ||
タイム・スタンプ | No | No | No | 1 | No | No | No | Yes | No | 2 | ||
2 進ストリング | No | No | No | No 3 | No | No | No | No | Yes | 2 | ||
UDT | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | Yes | ||
|
割り当て操作の基本的な規則は、 ヌル値を入れることができない列や、 関連する標識変数がないホスト変数に、 ヌル値を割り当てることができないという規則です。
(標識変数については、ホスト変数の参照を参照。)