En el post Introducción a las Bases de Datos te hablé sobre lo que necesitas saber antes de aprender a fondo sobre estas, pero no sobre el lenguaje de consultas estructurado, en inglés: Structured Query Language, o por sus siglas globalmente como SQL. Aquí, aprenderás la sintaxis de este lenguaje, los comandos, cláusulas, operadores, y más de los que tiene este lenguaje. Pronto podrás ver posts sobre cómo crear bases de datos en sistemas gestores como MariaDB y PostgreSQL.
¿Qué es el Lenguaje de Consultas Estructurado (SQL)?
Te explicaré como me encantaría que me dijeran, es utilizado para administrar bases de datos relacionales y hacer varias operaciones con los datos que contienen estas o que se quieren manipular. No te voy a llenar de teoría como cuándo fue creado, lo importante de aquí es que sepas para qué sirve este lenguaje.
Este lenguaje se utiliza para modificar las tablas de las bases de datos que sean relacionales (las no relacionales NO usan este lenguaje), las operaciones que se realizan con este lenguaje se resumen en el acrónimo CRUD que observarás con mayor detenimiento más adelante. Si quieres aprender más teoría para un trabajo de investigación o algún otra tarea que tengas, te puede servir este artículo escrito por Jessica Sirkin de ComputerWeekly.es.
Comandos SQL
SQL en su sintaxis tiene ciertos comandos que se dividen en dos tipos principales.
Comandos DLL (Data Definition Language)
Estos comandos permiten crear y definir nuevas bases de datos, igual que campos e índices. De acuerdo a lo que dice GeoTalleres, el lenguaje de definición de datos es el encargado de la modificación de la estructura de los objetos de la base de datos. Los comandos DLL son:
- CREATE: crea nuevas bases de datos, tablas, campos, vistas e índices.
- DROP: elimina tablas, bases de datos e índices, se DEBE usar con cuidado ya que la eliminación de estos datos NO SE PUEDE REHACER. Se debe diferenciar del comando DELETE.
- ALTER: este comando nos ayuda a modificar las tablas pudiendo agregar campos, eliminar campos, y también la definición de los campos.
- TRUNCATE: trunca todo el contenido de una tabla.
Comandos DML (Data Manipulation Language)
Estos a diferencia de los comandos DLL, permiten generar consultas para ordenar, filtrar y también extraer datos de la base de datos.
- SELECT: ayuda a consultar registros de la BD que satisfagan un criterio determinado.
- INSERT: carga los datos en una tabla definida en una sola operación.
- UPDATE: modifica los valores de los campos y registros especificados.
- DELETE: elimina registros de una tabla de una base de datos, al igual que el comando drop, no se pueden recuperar los registros borrados.
Cláusulas
El lenguaje SQL también tiene cláusulas que son condiciones de modificación que son normalmente utilizadas para definir los datos que se desean manipular o seleccionar.
FROM
Este comando especifica la tabla de la cual se van a seleccionar los registros.
1 2 3 |
SELECT * FROM tabla; |
WHERE
Este detalla las condiciones que deben reunir los registros que van a ser seleccionados.
1 2 3 |
SELECT campo FROM tabla WHERE campo = "valor"; |
GROUP BY
Separa los registros seleccionados en grupos específicos
1 2 3 |
SELECT marca, AVG(kilometraje) FROM autos GROUP BY marca; |
Nota: más adelante verás la función avg, y en otros posts verás un ejercicio de SQL.
HAVING
Comando que detalla la condición que debe satisfacer cada grupo.
1 2 3 |
SELECT marca, AVG(kilometraje) FROM autos GROUP BY marca HAVING AVG(kilometraje) < 50000; |
ORDER BY
Este comando ordena los registros seleccionados de acuerdo a un orden que es determinado al realizar la consulta.
1 2 3 |
SELECT marca, AVG(kilometraje) FROM autos GROUP BY marca HAVING AVG(kilometraje) < 50000 ORDER BY AVG(kilometraje) ASC|DESC; |
Operadores
En el lenguaje de consultas estructurado existen dos tipos de operadores, los lógicos y de comparación.
Operadores lógicos
- AND: literalmente, es el «y» lógico. Este operador evalúa dos condiciones y devuelve
true
únicamente si ambas son ciertas. - OR: es el «o» lógico. A diferencia del comando anterior, evalúa dos condiciones y devuelve
true
si al menos una de las dos condiciones es cierta. - NOT: es la negación lógica, ya que devuelve el valor contrario de la expresión.
Operadores de Comparación
Operador | Definición |
---|---|
< | Menor que |
> | Mayor que |
<> | Distinto de |
<= | Menor o igual que |
>= | Mayor o igual que |
BETWEEN | Especifica un intervalo de valores |
LIKE | Comparación de un modelo |
IN | Especifica registros de una base de datos |
Funciones de agregado
Estas funciones son utilizadas dentro del comando SELECT para luego devolver un único valor que se aplica a un grupo de registros determinados. Las funciones de agregado más usadas son:
- AVGCalcula el promedio de los valores de un campo específico.
1 2 3 |
SELECT AVG(campo) FROM tabla; |
- COUNTEsta función devuelve el número de registros de la selección.
1 2 3 |
SELECT COUNT(campo) FROM tabla; |
- SUM Realiza la misma función que AVG, solo que en vez de calcular el promedio, devuelve la suma de todos los valores de un campo.
SELECT SUM(campo) FROM tabla;
- MAX y MIN Devuelven el valor más alto y bajo de un campo especificado.
SELECT MIN(campo), MAX(campo) FROM tabla;