- Empezar
- Crear proyectos
- OPC UA
- Objetos gráficos
- Objetos gráficos predefinidos
- Sesiones y configuraciones regionales
- Referencias de objetos y variables
- Extensión de proyectos
- NetLogic
- Referencia de API de C#
- Tutoriales
- Tutorial de alarmas
- Tutorial sobe objetos gráficos
- Tutorial del registrador
- Tutorial de NetLogic
- Tutorial de OPC UA
Consultas SQL
SQL (Structured Query Language) gestiona los datos almacenados en bases de datos relacionales a través de instrucciones simples y declarativas. Utilice el estándar ANSI SQL-92 para consultar bases de datos ODBC y bases de datos incrustadas.
Gramática SQL
El analizador descendente SQL se basa en una versión simplificada de la gramática SQL estándar porque:
- FactoryTalk Optix solo admite un subconjunto de SQL estándar.
- La gramática SQL estándar simplificada se ajusta mejor a la implementación del analizador descendente.
- La gramática SQL estándar simplificada facilita la legibilidad del AST resultante.
Instrucciones
FactoryTalk Optix Studio
admite estas instrucciones en las consultas SQL:- Use la instrucciónSELECTpara seleccionar datos de una base de datos. Esta instrucción admite nombres de columna y expresiones de valor, así como los cuantificadores establecidosALLyDISTINCT.Ejemplos:SELECT *, FROM Table1 SELECT *, Timestamp AS T FROM Table1 SELECT Column1 FROM Table1 SELECT *, 10 FROM Table1 SELECT 10, * FROM Table1 SELECT *, 'text value' FROM Table1 SELECT COUNT(*) FROM Table1 SELECT DINSTINCT Column1 FROM Table1OBSERVACIÓN: Las expresionesCASEyWHENno son compatibles.IMPORTANTE:El estándar SQL no permite la combinación*con columnas derivadas.SELECT *, Timestamp FROM Table1SELECT *, ROW_NUMBER() OVER (ORDER BY Timestamp) FROM DataLoggerFactoryTalk Optixadmite este estándar para permitir cualquier manipulación de consultas para diagramas de minigráficos.
- Use la instrucciónDELETEpara eliminar cualquier registro existente en una tabla.Ejemplos:SELECT * FROM Table1 WHERE ... DELETE FROM Table1 WHERE ... UPDATE Table1 SET column1 = 10 WHERE column2 > 20 ...
- Use la instrucciónUPDATEpara modificar los registros existentes en una tabla.Ejemplos:SELECT * FROM Table1 WHERE ... DELETE FROM Table1 WHERE ... UPDATE Table1 SET column1 = 10 WHERE column2 > 20 ...
FactoryTalk Optix Studio
es parcialmente compatible con estas instrucciones en las consultas SQL:- Use la instrucciónCREATEpara crear tablas o tablas en bases de datos. Esta instrucción es parcialmente compatible conTABLEyINDEX.Ejemplos: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
- La instrucciónDROPquita las bases de datos o las tablas existentes en las bases de datos.Ejemplos:DROP TABLE TemporaryTable DROP TABLE Table1
Valores literales
Tipo de valor literal | Ejemplo | Notas |
---|---|---|
Integral | 1520 | No utilice separadores de miles. Utilice el tipo Int32. |
Real | 15.025 | Utilice . como separador decimal.Use el tipo Doble. |
Científicos reales | 2.7000001072883606E-1 | |
Boolean |
| Utilice minúsculas para los valores booleanos. |
Cadena | 'string value' | Utilice comillas simples para delimitar el texto. Para insertar una comilla simple ( ' ) en una cadena de texto, incluya un carácter de escape para la comilla simple con otra comilla simple. Por ejemplo, para escribir 'string' , use dos comillas simples ''string'' en las cadenas. |
Fecha y hora | "2004-05-23T14:25:10.487" | Use el formato de ISO8601 delimitado por comillas dobles. La notación de fecha y hora no estándar es SQL ANSI estándar y se usa para evitar las palabras clave DATE , TIME y TIMESTAMP sin ambigüedad. |
Identificador regular |
| No utilice espacios. Empieza con una letra en mayúscula o minúscula. Puede contener dígitos numéricos, letras y el carácter de subrayado _ . |
Identificador delimitado |
| Use comillas dobles ( " ) como delimitador.En el identificador, utilice cualquier carácter excepto el del carácter " .Se omite cualquier espacio al final del identificador. |
Combinación
Se admite cualquier tipo de combinación, como
INNER
, UNION
, LEFT
, RIGHT
, FULL
, NATURAL
y CROSS
.
OBSERVACIÓN:
Algunas combinaciones no son totalmente compatibles con todos los DBMS.
Alias
Puede utilizar alias en los identificadores, las subconsultas de columnas derivadas y las tablas.
A continuación se muestran ejemplos de consultas 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
Referencias de tabla
La cláusula
FROM
admite las siguientes referencias de tabla.Referencia | Ejemplo |
---|---|
Referencia totalmente calificada | ... FROM table_name ... FROM schema_name.table_name ... FROM database_name.schema.name.table_name |
Subconsulta | ... FROM (SELECT * FROM Table2) WHERE ... |
OBSERVACIÓN:
También se admiten nombres completos como referencias de columnas.
Ejemplos:
... 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
Operadores
Operador | Ejemplo |
---|---|
IN |
|
BETWEEN |
|
LIKE |
|
EXISTS |
|
IS |
|
NOT |
El operador NOT se aplica a todos los demás operadores. |
OBSERVACIÓN:
Los operadores
ANY
y ALL
no son compatibles.Funciones de ventana
Función | Ejemplo |
---|---|
ROW_NUMBER |
|
RANK |
|
DENSE_RANK |
|
AVG |
|
SUM , MIN , MAX |
|
COUNT |
|
OBSERVACIÓN:
La cláusula
PARTITION BY
solo admite identificadores de columna.Tokens
Token | Expresión regular |
---|---|
regular_identifier | [a-zA-Z][a-zA-Z0-9_]* |
delimited_identifier | ".*?" |
real | |
boolean | |
Otros tokens triviales | Regex para tokens de un solo carácter o de una sola palabra |
OBSERVACIÓN:
Lexer no reconoce los valores de fecha y hora como tokens: se analizan como
delimited_identifier
. El analizador semántico extrae los valores de fecha y hora de delimited_identifier
de acuerdo con la expresión regular r
.Entregue su opinión