- 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 de vínculos dinámicos
- 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.
Gramática SQL
El analizador SQL de
FactoryTalk Optix
se basa en una versión simplificada de la gramática SQL 2003 estándar. No se admiten dialectos específicos, como comandos específicos de la plataforma para MySQL, SQL Server o InfluxDB.
CONSEJO:
Para aprovechar las consultas avanzadas o los procedimientos almacenados, considere la posibilidad de usar el paquete NuGet Microsoft.Data.SqlClient en NetLogics personalizado.
Rockwell Automation
no se hace responsable de ningún software de terceros, incluidos, entre otros, su rendimiento, seguridad, actualizaciones o compatibilidad con nuestros productos. Cualquier uso de software de terceros es bajo su propio riesgo, y no proporcionamos soporte o garantías para dicho software. Los usuarios deben consultar con los respectivos proveedores externos para obtener asistencia y términos de licencia.Para obtener más información, consulte NetLogic.
Instrucciones
CONSEJO:
Escape los nombres de columna con caracteres especiales de esta manera:
SELECT MAX(
"/Variable1"
) FROM mystore.recipeschema1;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 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 > 5OBSERVACIÓ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, escape 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 es SQL ANSI no 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
.sql
query
Entregue su opinión