- プロジェクトの作成
- グラフィックオブジェクト
- オブジェクトと変数のリファレンス
- プロジェクトの拡張
- チュートリアル
- グラフィックオブジェクト チュートリアル
SQL クエリ
SQL (Structured Query Language) は、リレーショナルデータベースに格納されたデータを単純なステートメントで管理します。
SQL 文法
FactoryTalk Optix
SQL パーサーは、次の理由により、標準 SQL 2003 文法の簡略化されたバージョンに基づいています。MySQL、SQL Server、InfluxDB のプラットフォーム固有のコマンドなど、特定のダイアレクトはサポートされていません。
ヒント:
高度なクエリまたはストアド プロシージャを利用するには、カスタム NetLogics で Microsoft.Data.SqlClient NuGet パッケージの使用を検討してください。
Rockwell Automation
は、パフォーマンス、セキュリティ、更新、または当社製品との互換性を含むがこれらに限定されない、サードパーティのソフトウェアについて責任を負いません。サードパーティのソフトウェアの使用は、お客様ご自身の責任で行ってください、当社はそのようなソフトウェアに対するサポート、保証を提供しません。 ユーザーは、それぞれのサードパーティのプロバイダーでサポートとライセンス条件について確認する必要があります。詳細については、「NetLogic」を参照してください。
ステートメント
ヒント:
特殊文字を含む列名をエスケープするには、次の方法を使用します:
SELECT MAX(
"/Variable1"
) FROM mystore.recipeschema1;FactoryTalk Optix Studio
は、SQL クエリで次のステートメントをサポートします。- SELECTステートメントを使用して、データベースからデータを選択します。このステートメントは、列名と値式の両方、およびALLとDISTINCTセット量指定子をサポートしています。例:SELECT *, FROM Table1SELECT *, Timestamp AS T FROM Table1SELECT Column1 FROM Table1SELECT *, 10 FROM Table1SELECT 10, * FROM Table1SELECT *, 'text value' FROM Table1SELECT COUNT(*) FROM Table1SELECT DINSTINCT Column1 FROM Table1CREATE TEMPORARY TABLE "##TempTable" AS SELECT Column1 FROM MyTable WHERE Column1 > 5注:CASE式とWHEN式はサポートされていません。重要:SQL 標準では、*と派生列を組み合わせることはできません。SELECT *, Timestamp FROM Table1SELECT *, ROW_NUMBER() OVER (ORDER BY Timestamp) FROM DataLoggerFactoryTalk Optixは、スパークライン グラフのクエリ操作を有効にするために、この標準をサポートしています。
- DELETEステートメントを使用して、テーブル内の既存のレコードを削除します。例:SELECT * FROM Table1 WHERE ... DELETE FROM Table1 WHERE ... UPDATE Table1 SET column1 = 10 WHERE column2 > 20 ...
- UPDATEステートメントを使用して、テーブル内の既存のレコードを変更します。例:SELECT * FROM Table1 WHERE ... DELETE FROM Table1 WHERE ... UPDATE Table1 SET column1 = 10 WHERE column2 > 20 ...
FactoryTalk Optix Studio
は、SQL クエリで次のステートメントを一部サポートします。- CREATEステートメントを使用して、テーブルまたはデータベース内のテーブルを作成します。このステートメントはTABLEとINDEXを部分的にサポートしています。例:CREATE UNIQUE INDEX Table_Index ON Table1 (Column1) CREATE INDEX IF NOT EXISTS Table_Index ON Table1 (Column1)CREATE TABLE TempTable AS SELECT Column1 FROM MyTable WHERE Column1 > 5 CREATE TEMPORARY TABLE TempTable AS SELECT Column1 FROM MyTable WHERE Column1 > 5CREATE TEMPORARY TABLE Table2 AS SELECT Column1 FROM Table1 WHERE Column1 > 5 CREATE UNIQUE INDEX Column1_Index ON Table1 (Column1) DROP TABLE Table1
- DROPステートメントは、データベース内の既存のデータベースまたはテーブルをすべて削除します。例:DROP TABLE TemporaryTable DROP TABLE Table1
リテラル値
リテラル値タイプ | 例 | メモ |
---|---|---|
整数 | 1520 | 桁区切り記号は使用しないでください。 Int32 タイプを使用します。 |
実数 | 15.025 | 小数点記号として . を使用します。ダブル タイプを使用します。 |
実数科学 | 2.7000001072883606E-1 | |
ブール値 |
| ブール値には小文字を使用します。 |
文字列 | 'string value' | 一重引用符を使用して、テキストを区切ります。 一重引用符を別の一重引用符でエスケープして、テキスト文字列に一重引用符 ( ' ) を挿入します。たとえば、'string' と記述するには、文字列内に一重引用符 ''string'' を 2 つ使用します。 |
日時 | "2004-05-23T14:25:10.487" | 二重引用符で区切られた ISO8601 形式を使用します。 日時の表記は、あいまいさのない DATE 、TIME 、および TIMESTAMP キーワードを回避するために非標準の ANSI SQL を使用します。 |
標準識別子 |
| スペースは使用しないでください。 大文字または小文字で開始します。 数字、文字、およびアンダースコア文字 _ を使用できます。 |
区切られた識別子 |
| 区切り文字として二重引用符 ( " ) を使用します。識別子には、 " 文字以外の任意の文字を使用します。識別子の末尾にあるスペースはすべて無視されます。 |
結合
INNER
、UNION
、LEFT
、RIGHT
、FULL
、NATURAL
、CROSS
などのあらゆる種類の結合がサポートされています。
注:
一部の結合は、すべての DBMS で完全にサポートされているわけではありません。
エイリアス
エイリアスは、識別子、派生列のサブクエリ、およびテーブルで使用できます。
以下は、エイリアスを使用したクエリの例です。
SELECT Timestamp AS T FROM Table1 WHERE ...
SELECT * FROM Table1 AS T WHERE ...
SELECT * FROM (SELECT * FROM Table1) AS SubQuery WHERE ...
CREATE TABLE Table1 AS SELECT Timestamp, Column1 FROM Table2
テーブルリファレンス
FROM
句は、次のテーブルリファレンスをサポートしています。リファレンス | 例 |
---|---|
完全修飾リファレンス | ... FROM table_name ... FROM schema_name.table_name ... FROM database_name.schema.name.table_name |
サブクエリ | ... FROM (SELECT * FROM Table2) WHERE ... |
注:
完全修飾名は、列リファレンスとしてもサポートされています。
例:
... WHERE Table1.Column1 > 10... WHERE Table1."order id" > 10 SELECT * FROM Table1 AS T WHERE T."order id" > 10 ... WHERE "my table"."order id" > 10
オペレーター
オペレーター | 例 |
---|---|
IN |
|
BETWEEN |
|
LIKE |
|
EXISTS |
|
IS |
|
NOT |
NOT 演算子は他のすべての演算子に適用されます。 |
注:
ANY
と ALL
演算子はサポートされていません。ウィンドウ関数
関数 | 例 |
---|---|
ROW_NUMBER |
|
RANK |
|
DENSE_RANK |
|
AVG |
|
SUM 、MIN 、MAX |
|
COUNT |
|
注:
PARTITION BY
句は、列識別子のみをサポートします。トークン
トークン | 正規表現 |
---|---|
regular_identifier | [a-zA-Z][a-zA-Z0-9_]* |
delimited_identifier | ".*?" |
real | |
boolean | |
その他のトリビアルトークン | 単一文字または単一単語トークンの正規表現 |
注:
字句解析器は日付と時刻の値をトークンとして認識せず、
delimited_identifier
として解析します。意味解析ツールは、 正規表現に従って、 から日付と時刻の値を抽出します。sql
query
ご質問やご意見