- Manuale introduttivo
- Creare progetti
- OPC UA
- Oggetti grafici
- Oggetti grafici predefiniti
- Sessioni e impostazioni locali
- Riferimenti a oggetti e variabili
- Estensione dei progetti
- NetLogic
- Riferimento API C#
- Esercitazioni
- Esercitazione sugli allarmi
- Esercitazione sui collegamenti dinamici
- Esercitazione sugli oggetti grafici
- Esercitazione sui logger
- Esercitazione sulle NetLogic
- Esercitazione su OPC UA
Query SQL
SQL (Structured Query Language) gestisce i dati memorizzati nei database relazionali attraverso semplici istruzioni dichiarative.
Grammatica SQL
Il parser SQL
FactoryTalk Optix
si basa su una versione semplificata della grammatica 2003 SQL standard. Non sono supportati dialetti specifici, ad esempio comandi specifici della piattaforma per MySQL, SQL Server o InfluxDB.
SUGGERIMENTO:
Per sfruttare le query avanzate o le procedure archiviate, prendere in considerazione l'uso del pacchetto NuGet Microsoft.Data.SqlClient nelle NetLogic personalizzate.
Rockwell Automation
non è responsabile di alcun software di terze parti, inclusi, a titolo esemplificativo ma non esaustivo, le prestazioni, la sicurezza, gli aggiornamenti o la compatibilità con i nostri prodotti. Qualsiasi utilizzo di software di terze parti è a rischio dell'utente e non forniamo supporto, garanzie o assicurazioni per tale software. Gli utenti devono fare riferimento ai rispettivi fornitori di terze parti per assistenza e termini di licenza.Per ulteriori informazioni, vedere NetLogic.
Istruzioni
SUGGERIMENTO:
Eseguire l'escape dei nomi delle colonne con caratteri speciali in questo modo:
SELECT MAX(
"/Variable1"
) FROM mystore.recipeschema1;FactoryTalk Optix Studio
supporta queste istruzioni in query SQL:- Utilizzare l'istruzioneSELECTper selezionare dati da un database. Questa istruzione supporta sia i nomi di colonna che le espressioni di valore, nonché i quantificatori di insiemiALLeDISTINCT.Esempi: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 > 5NOTA: Le espressioniCASEeWHENnon sono supportate.IMPORTANTE:Lo standard SQL non consente la combinazione di*con colonne derivate.SELECT *, Timestamp FROM Table1SELECT *, ROW_NUMBER() OVER (ORDER BY Timestamp) FROM DataLoggerFactoryTalk Optixsupporta questo standard per consentire qualsiasi manipolazione delle query per i grafici sparkline.
- Utilizzare l'istruzioneDELETEper eliminare tutti i record esistenti in una tabella.Esempi:SELECT * FROM Table1 WHERE ... DELETE FROM Table1 WHERE ... UPDATE Table1 SET column1 = 10 WHERE column2 > 20 ...
- Utilizzare l'istruzioneUPDATEper modificare tutti i record esistenti in una tabella.Esempi:SELECT * FROM Table1 WHERE ... DELETE FROM Table1 WHERE ... UPDATE Table1 SET column1 = 10 WHERE column2 > 20 ...
FactoryTalk Optix Studio
supporta parzialmente queste istruzioni in query SQL:- Utilizzare l'istruzioneCREATEper creare tabelle o tabelle nei database. Questa istruzione supporta parzialmenteTABLEeINDEX.Esempi: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
- L'istruzioneDROPelimina tutti i database o le tabelle esistenti nei database.Esempi:DROP TABLE TemporaryTable DROP TABLE Table1
Valori letterali
Tipo di valore letterale | Esempio | Note |
---|---|---|
Integrale | 1520 | Non utilizzare separatori delle migliaia. Utilizzare il tipo Int32. |
Reale | 15.025 | Utilizzare . come separatore decimale.Utilizzare il tipo Doppio. |
Reale scientifica | 2.7000001072883606E-1 | |
Boolean |
| Usare caratteri minuscoli per valori booleani. |
Stringa | 'string value' | Utilizzare le virgolette singole per delimitare il testo. Inserire una virgoletta singola ( ' ) in una stringa di testo utilizzando un carattere di escape a virgoletta singola per una virgoletta singola. Ad esempio, per scrivere 'string' , usare due virgolette singole ''string'' nelle stringhe. |
Data e ora | "2004-05-23T14:25:10.487" | Utilizzare il formato ISO8601 delimitato da virgolette doppie. La notazione per data e ora è ANSI SQL non standard, utilizzata per evitare le parole chiave DATE , TIME e TIMESTAMP senza ambiguità. |
Identificatore regolare |
| Non usare spazi. Iniziare con una lettera maiuscola o minuscola. È possibile utilizzare cifre, lettere e il carattere di sottolineatura _ . |
Identificatore delimitato |
| Utilizzare virgolette doppie ( " ) come delimitatore.Nell'identificatore, utilizzare qualsiasi carattere, ad eccezione del carattere " .Eventuali spazi in coda dell'identificatore vengono ignorati. |
Join
È supportato qualsiasi tipo di join, ad esempio
INNER
, UNION
, LEFT
, RIGHT
, FULL
, NATURAL
e CROSS
.
NOTA:
Alcuni join non sono completamente supportati da tutti i DBMS.
Alias
È possibile usare alias negli identificatori, nelle sottoquery delle colonne derivate e nelle tabelle.
Di seguito sono riportati alcuni esempi di query con alias:
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
Riferimenti tabella
La clausola
FROM
supporta i riferimenti tabella riportati di seguito.Riferimento | Esempio |
---|---|
Riferimento completo | ... FROM table_name ... FROM schema_name.table_name ... FROM database_name.schema.name.table_name |
Sottoquery | ... FROM (SELECT * FROM Table2) WHERE ... |
NOTA:
I nomi pienamente qualificati sono supportati anche come riferimenti colonna.
Esempi:
... 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
Operatori
Operatore | Esempio |
---|---|
IN |
|
BETWEEN |
|
LIKE |
|
EXISTS |
|
IS |
|
NOT |
L'operatore NOT si applica a tutti gli altri operatori. |
NOTA:
Gli operatori
ANY
e ALL
non sono supportati.Funzioni della finestra
Funzione | Esempio |
---|---|
ROW_NUMBER |
|
RANK |
|
DENSE_RANK |
|
AVG |
|
SUM , MIN , MAX |
|
COUNT |
|
NOTA:
La clausola
PARTITION BY
supporta solo identificatori di colonna.Token
Token | Espressione regolare |
---|---|
regular_identifier | [a-zA-Z][a-zA-Z0-9_]* |
delimited_identifier | ".*?" |
real | |
boolean | |
Altri token facili | Espressione regolare per token a carattere singolo o a parola singola |
NOTA:
Il lexer non riconosce i valori di data e ora come token: vengono analizzati come
delimited_identifier
. L'analizzatore semantico estrae tutti i valori di data e ora dal delimited_identifier
in base all'espressione regolarer
.sql
query
Fornire un feedback