Montando Instrucciones SQL
En esta página, proporcionamos una visión general sobre las instrucciones SQL utilizadas en la configuración de la mayoría de los conectores de bases de datos de Sensedia Integrations.
En esta sección, encontrará:
Visión general
Una instrucción SQL es un comando o consulta que permite interactuar con bases de datos relacionales en un flujo de integración.
Se utilizan para manipular datos, ya sea para consultar, insertar, actualizar o eliminar registros. De esta manera, las instrucciones son fundamentales para el intercambio y gestión de información entre sistemas integrados.
Para garantizar la correcta ejecución de estas operaciones, cada instrucción debe redactarse de acuerdo con la sintaxis nativa de SQL.
Puede utilizar las Properties, ubicadas en el lado izquierdo de la pantalla, para seleccionar variables de entorno y payloads de steps anteriores que desea incluir en la instrucción.
A continuación, vea el formulario de configuración para el conector de base de datos SQL Server 2022:
Operaciones
Las operaciones SQL son instrucciones que realizan acciones sobre los datos en una base de datos, siendo las más comunes SELECT, INSERT, UPDATE y DELETE.
-
SELECT: selecciona datos de una o más tablas.
SELECT first_name, last_name, email FROM employees WHERE department = 'Sales';
La instrucción selecciona las columnas
first_name
,last_name
yemail
de la tablaemployees
para todos los empleados del departamento de ventas (Sales
). -
INSERT: agrega nuevos registros a una tabla.
INSERT INTO employees (first_name, last_name, department, hire_date) VALUES ('John', 'Doe', 'Marketing', '2024-11-01');
La instrucción inserta un nuevo registro en la tabla
employees
, con los valores proporcionados para las columnasfirst_name
,last_name
,department
yhire_date
. -
UPDATE: modifica los datos existentes en una tabla.
UPDATE employees SET department = 'Marketing', hire_date = '2024-11-01' WHERE employee_id = 123;
La instrucción actualiza la tabla
employees
con los datos del empleadoemployee_id = 123
, modificando su departamento y fecha de contratación. -
DELETE: elimina registros de una tabla.
DELETE FROM employees WHERE employee_id = 123;
La instrucción elimina el registro del empleado con
employee_id = 123
de la tablaemployees
. -
JOIN: combina registros de dos o más tablas, en base a una condición de relación entre ellas. Existen diferentes tipos de JOINs, como INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL JOIN.
SELECT employees.first_name, employees.last_name, departments.department_name FROM employees INNER JOIN departments ON employees.department_id = departments.department_id;
La instrucción realiza una unión (utilizando INNER JOIN) entre las tablas
employees
ydepartments
. La unión ocurre cuando el valor de la columnadepartment_id
es igual en las dos tablas. -
CREATE y ALTER: definen o modificam la estructura de la base de datos (creando nuevos objetos o alterando objetos existentes).
-
CREATE: crea una nueva tabla u otro objeto.
CREATE TABLE employees ( employee_id INT PRIMARY KEY, first_name VARCHAR(100), last_name VARCHAR(100), department VARCHAR(50), hire_date DATE );
La instrucción crea una tabla llamada
employees
, donde:-
employee_id
será la columna primaria y contendrá solo números enteros (integer). -
Las columnas
first_name
ylast_name
deben contener una cadena de hasta 100 caracteres. -
La columna
department
debe contener una cadena de hasta 50 caracteres. -
La columna
hire_date
debe contener una fecha.
-
-
ALTER: modifica la estructura de una tabla existente, como agregar o eliminar columnas.
ALTER TABLE employees ADD email VARCHAR(100);
La instrucción modifica la tabla
employees
añadiendo la columnaemail
, que debe contener una cadena de hasta 100 caracteres.
-
-
GROUP BY y HAVING: GROUP BY agrupa registros que tienen valores idénticos en columnas específicas, permitiendo que funciones agregadas (como COUNT, SUM, AVG) se utilicen para calcular resultados para cada grupo. HAVING se utiliza para filtrar los grupos después de aplicar el GROUP BY.
SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 5;
En la tabla
employees
, la instrucción selecciona los departamentos y cuenta el número de empleados en cada uno. Luego, agrupa los datos por departamento y muestra solo aquellos departamentos que tienen más de 5 empleados.
Elementos de sintaxis
Aquí están algunas reglas básicas de sintaxis para construir una instrucción SQL:
-
Comillas simples (') para cadenas:
Cadenas se delimitan con comillas simples.
-
Ejemplo:
SELECT * FROM users WHERE name = 'João';
La instrucción devuelve todas las columnas de los registros donde el valor de la columna
name
esJoão
.
-
-
Comillas dobles (") para identificadores:
En algunas situaciones, se pueden usar comillas dobles para identificar columnas o tablas (como "id", "users"), pero esto no es obligatorio en todos los sistemas de bases de datos y puede variar.
-
Ejemplo:
SELECT "id" FROM "users";
La instrucción selecciona solo la columna
id
de la tablausers
.
-
-
Coma (,):
La coma se usa para separar argumentos o elementos dentro de una función, lista de parámetros o concatenación de cadenas.
-
Ejemplo:
SELECT id, name FROM users WHERE age > 18;
La instrucción filtra los usuarios de la tabla
users
con más de 18 años y muestra solo susid
yname
.
-
-
Punto y coma (;):
El punto y coma indica el final de un comando, lo que permite ejecutar múltiples instrucciones dentro de un mismo bloque.
-
Ejemplo:
SELECT * FROM users; UPDATE users SET age = 30 WHERE id = 1;
La instrucción devuelve todas las columnas de la tabla
users
y actualiza el valor de la columnaage
a30
en el registro donde elid
es1
.
-
-
Escapado de comillas internas:
Si necesita usar comillas simples dentro de una cadena que también está delimitada por comillas simples, debe escapar esas comillas internas usando otras comillas simples.
-
Ejemplo:
SELECT * FROM users WHERE name = 'O''Malley';
La instrucción devuelve todas las columnas de los registros donde el valor de la columna
name
es'O’Malley'
.
-
-
Asterisco para seleccionar todas las columnas de un registro:
-
Ejemplo:
SELECT * FROM orders WHERE total_amount < 100;
La instrucción devuelve todas las columnas de la tabla
orders
donde el valor de la columnatotal_amount
es menor a100
.
-
-
WHERE
para filtrado:La cláusula
WHERE
se coloca después de la declaraciónFROM
para definir las condiciones de filtrado.-
Ejemplo:
SELECT * FROM users WHERE id = 1;
La instrucción devuelve todas las columnas de la tabla
users
donde elid
es igual a1
.
-
-
Operadores lógicos:
Los operadores lógicos AND, OR, NOT se utilizan para combinar condiciones dentro de la cláusula
WHERE
.-
Ejemplo:
SELECT * FROM users WHERE age > 18 AND status = 'active';
La instrucción devuelve todas las columnas de la tabla
users
donde la edad es mayor a18
años y el estado esactive
.
-
-
Operadores relacionales:
Los operadores relacionales: =, !=, <, >, ⇐, >=, BETWEEN, LIKE, IN se utilizan para comparar valores en las condiciones.
-
Ejemplo:
SELECT * FROM products WHERE price BETWEEN 10 AND 100;
La instrucción devuelve todas las columnas de la tabla
products
, pero solo para los registros donde el valor de la columnaprice
está entre10
y100
.
-
Ejemplos
Ahora, exploremos algunos ejemplos de cómo aplicar instrucciones en diferentes contextos en Sensedia Integrations.
-
Ejemplo 1
concat("SELECT * FROM users WHERE id = ", $.For_Each.Input.Payload.id)
-
La instrucción busca todos los datos de un usuario específico en una tabla, basándose en un valor de
id
:-
concat
: la función Concat se utiliza para unir (o concatenar) dos o más cadenas en solo una cadena. -
"SELECT * FROM users WHERE id = "
: instruye a la base de datos a:-
Seleccionar (
SELECT
) -
todas las columnas (
*
) -
de (
FROM
) -
la tabla
users
-
y filtrar la búsqueda (
WHERE
) -
para devolver solo las filas donde la columna
id
coincide con un valor específico que se indica después del signo igual (id =
). -
$.For_Each.Input.Payload.id
: valor que será filtrado por la instrucción, extraído del campoid
en el payload de entrada del step For Each.
-
-
-
-
Ejemplo 2
concat( "INSERT INTO clients (id, name, last_name) VALUES (", $.For_Each.Input.Payload.id, ", '", $.For_Each.Input.Payload.first_name, "', '", $.For_Each.Input.Payload.last_name, "') ", "ON DUPLICATE KEY UPDATE name = VALUES(name), last_name = VALUES(last_name);" )
-
La instrucción inserta un nuevo registro en la tabla
clients
con los valoresid
,name
ylast_name
. -
Los valores específicos se extraen del payload de entrada del step For Each.
-
Si el
id
(u otra clave primaria) ya existe en la tabla, la instrucción no inserta un nuevo registro, sino que actualiza los campos:-
name
-
last_name
-
-
-
Ejemplo 3
CREATE TABLE IF NOT EXISTS clients ( id INT PRIMARY KEY, name VARCHAR(255), last_name VARCHAR(255) );
-
La instrucción es un comando
CREATE TABLE
, que crea una tabla en la base de datos. -
IF NOT EXISTS
: esta cláusula garantiza que la tabla se cree solo si aún no existe. La tabla se llamaráclients
, y se usará para almacenar información de clientes. -
A continuación, se definen las 3 columnas:
-
id INT PRIMARY KEY
: el nombre de la columna seráid
y el tipo de dato que se insertará en la columna será número entero (integer). Esta será la columna primaria, lo que significa que debe contener valores únicos y no nulos. -
name VARCHAR(255)
: el nombre de la columna seráname
y el tipo de dato que se insertará en la columna es una cadena de hasta 255 caracteres. El tipo VARCHAR se usa para almacenar textos cortos. -
last_name VARCHAR(255)`
: el nombre de la columna serálast_name
y posee las mismas características que la segunda columna.
-
-
-
Ejemplo 4
concat( "DECLARE ", "v_json CLOB := '", $.CombinarDados.Response.Payload, "';", "BEGIN ", "INSERT_PROCEDURE_DATA(v_json);", "END;" )
-
La instrucción comienza con la función
concat
, que se usa para construir dinámicamente un comando PL/SQL (el lenguaje de programación de Oracle) que ejecuta las siguientes etapas:-
Declara (
declare
) una variablev_json
del tipoCLOB
(Character Large Object). El tipo CLOB se usa para almacenar grandes volúmenes de texto, como documentos o payloads grandes. -
Asigna a la variable el valor extraído de un payload (
CombinarDados.Response.Payload
). Se espera que el payload sea un gran bloque de texto o datos, por eso el valor se coloca entre comillas simples. -
Después de declarar la variable, el comando
BEGIN
inicia el bloque de ejecución de PL/SQL, donde ocurrirá la lógica de ejecución real. Dentro de este bloque, se llama al procedimientoINSERT_PROCEDURE_DATA
, que recibe la variablev_json
como argumento para procesar o insertar datos en la base de datos. El bloque finaliza con el comandoEND
, cerrando la ejecución de la secuencia de instrucciones.Un procedimiento es un conjunto de instrucciones SQL que se almacenan en la base de datos y pueden ejecutarse repetidamente.
-
-
Share your suggestions with us!
Click here and then [+ Submit idea]