4D で使える SQL

(No version information available, might only be in Git)

4D で使える SQLPDO および SQL 4D

説明

4D は ANSI 89 標準規格を厳密に実装しています。 使えるコマンドについて学ぶには 4D SQL ドキュメントを読むことを推奨します。 マニュアルの URL は » http://doc.4d.com/ です。以下に 4D SQL 独特の特徴をまとめました。 包括的なものではありませんが、導入としては使えるでしょう。

4D SQL 独特の特徴
特徴 代替策 注意
INTEGER INT を使うよう SQL を変更する 4Dv12.0 で整数をサポートする型は INT です。
CHAR かわりに VARCHAR を使う 4Dv12.0 ではサポートしていません。
UNION 未サポート。クエリを分割する 4Dv12.0 ではサポートしていません。
SELECT 1 + 1; SELECT 1 + 1 FROM _USER_SCHEMAS; FROM は必須です。
FLOAT FLOAT 値を SQL 4D 関数 (CAST, ROUND, TRUNC あるいは TRUNCATE) で FLOAT あるいは STRING にキャストする 現在のバージョンの PDO_4D ドライバではサポートしていません。
強い型付け SQL クエリの作成時に気をつけ、PHP のコードがきちんと期待通りの型のデータを渡すようにする 正しい型を 4D に渡さなければなりません。'1' (文字列) を INTEGER のカラムに挿入することはできません。
PDO::execute($row)() は、テーブルのすべてのカラムが TEXT 型あるいは VARCHAR 型のときのみ動作する プリペアドステートメントを使い、正しい型を渡す PDO 拡張モジュールは、execute() の実行時にすべての値を文字列へキャストします。そして SQL データベース側で値をパースさせようとします。
SELECT NULL FROM TABLE 定数 NULL を使わず、テーブルから取り出す select のリストに定数 NULL を使うことはできません。
SELECT * FROM TABLE WHERE 1 WHERE 1 = 1 を使う WHERE 句で定数を使うことはできません。
SHOW TABLES システムテーブルを使う テーブルやスキーマ、インデックスなどの一覧は、 _USER_TABLES, _USER_COLUMNS, _USER_INDEXES, _USER_CONSTRAINTS, _USER_IND_COLUMNS, _USER_CONS_COLUMNS および _USER_SCHEMAS といったシステムテーブルから取得します。
SQL 構文の区切り文字 次の関数を使って SQL の要素を保護する function sqlEscapeElement(elem) { return '[' . str_replace(']',']]', $elem) . ']'; } SQL の要素名 (テーブル、フィールド、ユーザー、グループ、 スキーマ、主キーなど) をエスケープするには、 識別子全体を角括弧で囲み、さらに閉じ角括弧 ']' は二重にしておかなければなりません。