- Erste Schritte
- Projekte erstellen
- OPC UA
- Grafikobjekte
- Vordefinierte Grafikobjekte
- Sitzungen und Gebietsschemata
- Objekt- und Variablenreferenzen
- Projekte erweitern
- NetLogic
- Methoden und Ereignisse in C#
- Referenz zur C#-API
- Tutorials
- Tutorial zu dynamischen Links
- Tutorial für Grafikobjekte
- Tutorial zu Logger
- Tutorial zu NetLogic
- OPC UA Tutorial
SQL-Abfragen
SQL („Structured Query Language“) verwaltet in relationalen Datenbanken gespeicherte Daten durch einfache, deklarative Anweisungen.
SQL-Grammatik
Der
FactoryTalk Optix
SQL-Parser basiert auf einer vereinfachten Version der Standard-SQL 2003-Grammatik. Bestimmte Dialekte, z. B. plattformspezifische Befehle für MySQL, SQL Server oder InfluxDB, werden nicht unterstützt.
TIPP:
Ziehen Sie für die Nutzung erweiterter Abfragen oder gespeicherter Prozeduren den Einsatz des NuGet-Pakets Microsoft.Data.SqlClient in Ihrer individuellen NetLogics in Betracht.
Rockwell Automation
übernimmt keine Verantwortung für Software von Drittanbietern, einschließlich, aber nicht beschränkt auf deren Leistung, Sicherheit, Updates oder Kompatibilität mit unseren Produkten.Jegliche Nutzung von Drittanbieter-Software erfolgt auf eigenes Risiko. Des Weiteren bieten wir für diese Software weder Support noch Gewährleistungen oder Garantien an. Benutzer sollten sich an die jeweiligen Drittanbieter wenden, um Unterstützung und Lizenzbedingungen zu erhalten.Weitere Informationen finden Sie unter NetLogic.
Anweisungen
TIPP:
Schreiben Sie Spaltennamen mit Sonderzeichen auf diese Weise:
SELECT MAX(
"/Variable1"
) FROM mystore.recipeschema1;FactoryTalk Optix Studio
unterstützt diese Anweisungen in SQL-Abfragen:- Verwenden Sie dieSELECT-Anweisung, um Daten aus einer Datenbank auszuwählen. Diese Anweisung unterstützt sowohl Spaltennamen und Wertausdrücke als auch die MengenquantifiziererALLundDISTINCT.Beispiele: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 > 5NOTIZ: Die AusdrückeCASEundWHENwerden nicht unterstützt.WICHTIG:Der SQL-Standard erlaubt keine Kombination von*mit abgeleiteten Spalten.SELECT *, Timestamp FROM Table1SELECT *, ROW_NUMBER() OVER (ORDER BY Timestamp) FROM DataLoggerFactoryTalk Optixunterstützt diesen Standard, um jede Abfragemanipulation für Sparkline-Diagramme zu ermöglichen.
- Verwenden Sie dieDELETE-Anweisung, um vorhandene Datensätze in einer Tabelle zu löschen.Beispiele:SELECT * FROM Table1 WHERE ... DELETE FROM Table1 WHERE ... UPDATE Table1 SET column1 = 10 WHERE column2 > 20 ...
- Verwenden Sie dieUPDATE-Anweisung, um vorhandene Datensätze in einer Tabelle zu ändern.Beispiele:SELECT * FROM Table1 WHERE ... DELETE FROM Table1 WHERE ... UPDATE Table1 SET column1 = 10 WHERE column2 > 20 ...
FactoryTalk Optix Studio
unterstützt diese Anweisungen in SQL-Abfragen teilweise:- Verwenden Sie dieCREATE-Anweisung, um Tabellen oder Tabellen in Datenbanken zu erstellen. Diese Anweisung unterstützt teilweiseTABLEundINDEX.Beispiele: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
- DieDROP-Anweisung löscht vorhandene Datenbanken oder Tabellen in Datenbanken.Beispiele:DROP TABLE TemporaryTable DROP TABLE Table1
Literale Werte
Literaler Werttyp | Beispiel | Hinweise |
---|---|---|
Integral | 1520 | Verwenden Sie keine Tausendertrennzeichen. Verwenden Sie den Typ Int32. |
Real | 15.025 | Verwenden Sie . als Dezimaltrennzeichen.Verwenden Sie den Typ Doppel. |
Real wissenschaftlich | 2.7000001072883606E-1 | |
Boolesch |
| Verwenden Sie Kleinbuchstaben für boolesche Werte. |
Zeichenfolge | 'string value' | Verwenden Sie einzelne Anführungszeichen zur Abgrenzung von Text. Fügen Sie ein einzelnes Anführungszeichen ( ' ) in eine Textzeichenfolge ein, indem Sie das einzelne Anführungszeichen durch ein weiteres einzelnes Anführungszeichen ausklammern. Um zum Beispiel 'string' zu schreiben, verwenden Sie zwei einfache Anführungszeichen ''string'' in den Zeichenfolgen. |
Datum und Uhrzeit | "2004-05-23T14:25:10.487" | Verwenden Sie das ISO8601-Format, das durch doppelte Anführungszeichen begrenzt ist. Bei der Datums- und Zeitschreibweise handelt es sich um nicht standardisiertes ANSI-SQL, das verwendet wird, um die Schlüsselwörter DATE , TIME und TIMESTAMP unmissverständlich zu vermeiden. |
Regulärer Bezeichner |
| Verwenden Sie keine Leerzeichen. Beginnen Sie mit einem Großbuchstaben oder einem Kleinbuchstaben. Sie können numerische Ziffern, Buchstaben und den Unterstrich _ verwenden. |
Begrenzter Bezeichner |
| Verwenden Sie doppelte Anführungszeichen ( " ) als Trennzeichen.Verwenden Sie im Bezeichner beliebige Zeichen außer dem Zeichen " .Etwaige Leerzeichen am Ende des Bezeichners werden ignoriert. |
Join
Alle Arten von Joins wie
INNER
, UNION
, LEFT
, RIGHT
, FULL
, NATURAL
und CROSS
werden unterstützt.
NOTIZ:
Einige Joins werden nicht von jedem DBMS vollständig unterstützt.
Aliasse
Sie können Aliase in den Bezeichnern, abgeleiteten Spaltenunterabfragen und Tabellen verwenden.
Im Folgenden finden Sie Beispiele für Abfragen mit Aliasen:
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
Tabellenreferenzen
Die
FROM
-Klausel unterstützt die folgenden Tabellenreferenzen.Referenz | Beispiel |
---|---|
Vollständig qualifizierter Verweis | ... FROM table_name ... FROM schema_name.table_name ... FROM database_name.schema.name.table_name |
Unterabfrage | ... FROM (SELECT * FROM Table2) WHERE ... |
NOTIZ:
Vollständig qualifizierte Namen werden auch als Spaltenreferenzen unterstützt.
Beispiele:
... 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
Operatoren
Operator | Beispiel |
---|---|
IN |
|
BETWEEN |
|
LIKE |
|
EXISTS |
|
IS |
|
NOT |
Der Operator NOT gilt für alle anderen Operatoren. |
NOTIZ:
Die Operatoren
ANY
und ALL
werden nicht unterstützt.Fensterfunktionen
Funktion | Beispiel |
---|---|
ROW_NUMBER |
|
RANK |
|
DENSE_RANK |
|
AVG |
|
SUM , MIN , MAX |
|
COUNT |
|
NOTIZ:
Die
PARTITION BY
-Klausel unterstützt nur IDs von Spalten.Token
Token | Regulärer Ausdruck |
---|---|
regular_identifier | [a-zA-Z][a-zA-Z0-9_]* |
delimited_identifier | ".*?" |
real | |
boolean | |
Andere triviale Token | Regex für einzelne Zeichen oder Einzelwort-Token |
NOTIZ:
Der Lexer erkennt Datums- und Zeitwerte nicht als Token: Sie werden als
delimited_identifier
geparst. Der semantische Analysator extrahiert alle Datums- und Zeitwerte aus delimited_identifier
entsprechend dem regulären Ausdruck r
.sql
query
Rückmeldung geben