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:

sql server form

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.

  1. 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 y email de la tabla employees para todos los empleados del departamento de ventas (Sales).

  2. 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 columnas first_name, last_name, department y hire_date.

  3. 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 empleado employee_id = 123, modificando su departamento y fecha de contratación.

  4. 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 tabla employees.

  5. 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 y departments. La unión ocurre cuando el valor de la columna department_id es igual en las dos tablas.

  6. 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 y last_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 columna email, que debe contener una cadena de hasta 100 caracteres.

  7. 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:

  1. 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 es João.

  2. 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 tabla users.

  3. 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 sus id y name.

  4. 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 columna age a 30 en el registro donde el id es 1.

  5. 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'.

  6. 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 columna total_amount es menor a 100.

  7. WHERE para filtrado:

    La cláusula WHERE se coloca después de la declaración FROM 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 el id es igual a 1.

  8. 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 a 18 años y el estado es active.

  9. 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 columna price está entre 10 y 100.

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 campo id 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 valores id, name y last_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 variable v_json del tipo CLOB (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 procedimiento INSERT_PROCEDURE_DATA, que recibe la variable v_json como argumento para procesar o insertar datos en la base de datos. El bloque finaliza con el comando END, 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.
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]