Algunas sintaxis recurrentes en SQL

¿Qué es SQL?

SQL (por sus siglas en inglés Structured Query Language) es un lenguaje de dominio específico utilizado en programación, diseñado para administrar, y recuperar información de sistemas de gestión de bases de datos relacionales.


Para más información puedes consulta este artículo al respecto de Wikipedia

Crear base de datos

Consultas con tablas indexadas

Llaves foráneas

Las llaves foráneas se usan para crear dependencias entre tablas

El campo que se relacionará de cada una de las tablas a relacionar debe ser del mismo tipo y tamaño para evitar haciendo conversiones

Podemos elegir dos tipo de comportamiento a la hora de borrar o actualizar un registro padre

  • En cascada

    Si se elimina un registro padre, se eliminarán todos los registros hijos.

    Por ejemplo, imaina que tenemos dos tablas, una de productos y otro de proveedores. La tabla padre será proveedores, y los productos serán hijos porque a cada producto se le asigna un proveedor.

    El borrado en cascada lo que haría es que si elimino un proveedor, automáticamente se eliminarás todos los productos (hijos) de ese proveedor

  • Restrictivo

    En el ejemplo anterior de las tablar productos y proveedores, lo que hará es que no se podrá eliminar un proveedor, hasta que primero se eliminen todos los productos de ese proveedor.

    El comportamiento restrictivo es el que viene por defecto

Consultas con fechas

Obtener filas por fecha sin importar la hora (suponiendo que tu campo de fecha es datetime)

Si tenemos un campo datetime y queremos filtrar por ese campo sin importar la hora, la consulta sería:

Obtener los últimos objetos de una tabla según un campo de fecha

Obtener los datos con una fecha mayor a una dada

  • MySQL

Modo seguro

El modo seguro es para evitar el tan temido DELETE FROM nombre_tabla y no especificar el id del elemento que quieres borrar, con lo que eliminarías todos los datos de la tabla.

Para evitarlo los motores de base de datos cuentan con un modo seguro el cuál te exige que en funcionese DELETE y UPDATE se especifique el WHERE.

Pero hay situaciones en los que quieres actualizar un campo de todos los registros de una tabla, por ejemplo, añadimos un nuevo campo a una base de datos que ya está en producción y queremos que ese valo por defecto esté en un valor, usaríamos

La línea anterior no se ejecutaría porque el modo seguro lo bloquearía, para hacerlo habría que desactivarlo. No obstante, te recomiendo que simpre lo tengas activado por lo que si deseas hacer una instrucción como la anterior primero desactives el modo seguro, después ejecutes la instrucción y a continuación vuelvas a activar el modo seguro:

Consulta con campo calculado

Con este tipo de consultas podremos hacer cálculos y devolver datos ya tratados.

Por ejemplo, imagina que tienes una tabla de productos con su precio y quieres obtener además su precio con el IVA (21%), pues sería:

Consultas de agrupación o totales

Funciones de agregado

  • AVG; calcula el promedio de un campo
  • COUNT; cuenta los registros de un campo
  • SUM; suma los valores de un campo
  • MAX; devuelve el máximo de un campo
  • MIN; devuelve el mínimo de un campo

Por ejemplo, si quiesiera obtener el total de la venta número 60 la instrucción SQL a realizar sería, teniendo una tabla para las ventas y una tabla para las posiciones de las ventas donde hay un campo de id_venta sería:


Algo más complejo, imagina que queremos obtener el total de las ventas en un día para una selección de fecha, entonces las instrucción sería:


Más compleajo aún, cálculo de los ingresos y los gastos:


Saludos,

Servicios

Software

IoT

Digitalización

Aplicaciones móviles

Consultoría