¿Qué son las consultas SQL y cómo usarlas?
Administra bases de datos relacionales mediante consultas en SQL.
SQL o lenguaje estructurado de consultas es un lenguaje de programación utilizado para gestionar las bases de datos. Las grandes compañías, como Uber, Facebook, Amazon, Microsoft, Netflix, Disney y McDonald ‘s, han creado sus bases de datos utilizando este lenguaje. La popularidad de SQL se debe al hecho de que el lenguaje cuenta con una herramienta eficaz para obtener, agregar, borrar o editar información, y esta herramienta se llama consultas.
¿Qué son las consultas SQL?
Un usuario y una base de datos pueden intercambiar información siempre y cuando “hablen” el mismo lenguaje. SQL funciona de manera no procedimental, es decir, el usuario debe especificar que quiere hacer mediante la consulta.
Las consultas se utilizan para extraer y manipular la información de una base de datos y especifican cómo se verá la tabla resultante. Una consulta es un componente de algunas sentencias de SQL.
Las sentencias de SQL se agrupan en los siguientes subconjuntos:
DDL (Lenguaje de definición de datos): Las sentencias DDL se usan para describir, definir y crear objetos dentro de una base de datos. Algunos comandos son:
- Create: Crea tablas.
- Alter: Modifica la estructura de una tabla, añade o elimina columnas, cambia títulos, etc.
- Drop: Elimina objetos de la base de datos.
- Truncate: Elimina todos los registros de una tabla.
- Comment: Agrega comentarios al diccionario de datos.
- Rename: Renombra objetos.
DML (Lenguaje de manipulación de datos): Las sentencias DML se aplican para gestionar información en una base de datos y permiten consultar, insertar, modificar y eliminar información almacenada en los objetos de la base de datos. Sus comandos son:
- Insert: Carga datos a una tabla.
- Update: Modifica valores de los campos.
- Delete: Elimina registros de una tabla.
- Select: Consulta registros de la base de datos que cumplan un criterio determinado.
DCL (Lenguaje de control de datos): Las secuencias DCL permiten controlar el acceso a la base de datos. Los comandos son:
- Grant: Otorga acceso a un usuario a la base de datos.
- Revoke: Retira acceso otorgado con el comando Grant.
TCL (Lenguaje de control de transacciones): Se usa para agrupar de manera lógica los cambios implementados en las transacciones DML. Tiene comandos como:
- Commit: Finaliza la transacción en marcha.
- Rollback: Aborta la transacción de manera repentina.
- Savepoint: Identifica un punto de la transacción al que se puede retroceder posteriormente.
¿Cómo crear consultas en SQL?
El comando SELECT es el punto de inicio de todas las consultas. Úsalo para obtener cualquier tipo de información dentro de la base de datos.
Veamos un ejemplo de una consulta SQL tomando una base de clientes de una empresa que opera en América Central.
SELECT * FROM CLIENTES
Con el * indicamos que queremos visualizar todos los campos de la tabla CLIENTES. Si CLIENTES cuenta con los campos: ID, nombre y dirección, lo anterior sin utilizar * sería equivalente a:
SELECT ID, nombre, dirección. FROM CLIENTES
- SELECT DISTINCT devuelve un subconjunto de los campos de una tabla:
SELECT DISTINCT CP, ciudad FROM CLIENTES
Esta consulta devolverá únicamente los campos CP (Codigo postal) y ciudad de CLIENTES
Una vez identificado el comando SELECT, agrega cláusulas y operadores, que son instrucciones concretas o condiciones para definir los datos que te interesan.
Veamos algunas de ellas:
CLÁUSULAS
- WHERE
indica la condición que deben cumplir los registros de la tabla para ser devueltos.
SELECT numero, calle FROM DIRECCIÓN WHERE ciudad = ‘Puebla’
Esta consulta arroja el número y la calle de todas las direcciones pertenecientes a la ciudad de Puebla.
- ORDER BY
ordena según criterios ASC() (en el orden ascendente) o DESC() (en el orden descendente).
SELECT * FROM CLIENTES ORDER BY Nombre ASC.
Esta consulta devolverá todos los nombres de clientes ordenados alfabéticamente.
- GROUP BY
expresa consultas agrupadas.
Aquí se devuelve información que no proviene de un campo individual, sino del grupo de datos. Para ello, se emplean funciones de agregado tales como: COUNT(), MAX(), MIN(), SUM(), AVG(), y los datos se agrupan por algún criterio.
SELECT COUNT(ID cliente), país FROM CLIENTES GROUP BY país
- COUNT
enumera el total de clientes de un país determinado.
SELECT ID cliente, SUM (total gastado) FROM CLIENTES GROUP BY país
- SUM
puede sumar el total que cada cliente gasta en un país consultado.
SELECT ID cliente, AVG (total gastado) FROM CLIENTES GROUP BY país
Con la función AVG, se obtiene el promedio de gastos de un cliente en un país consultado.
SELECT ID cliente, MAX (total gastado) FROM CLIENTES GROUP BY país
Se usan MAX/MIN para consultar el gasto máximo o mínimo del cliente en un país consultado.
OPERADORES
Independientemente del signo = ‘_ ’ empleado anteriormente, puedes utilizar diversos operadores relacionales que te devolverán un valor lógico.
Operador | Significado |
< | Arroja valores menores que la condición |
> | Arroja valores mayores que la condición. |
<> | Distinto de la condición especificada. |
<= | Menor o igual al valor especificado. |
>= | Mayor o igual al valor especificado. |
= | Igual al valor especificado. |
Por ejemplo, para arrojar solo clientes menores o iguales a 32 años, se crea el siguiente comando:
SELECT nombre FROM CLIENTES WHERE edad <= 32
Adicionalmente, existen operadores de comparación que también muestran valores lógicos, es decir, verdaderos o falsos según si se cumplen o no las condiciones:
Operador | Funcion |
BETWEEN | Específica un intervalo de valores. |
LIKE | Compara datos. |
IN | Específica registros en la base de datos. |
Entonces, si solo necesitas ver clientes entre 20 y 35 años, usa el siguiente comando:
SELECT nombre FROM CLIENTES WHERE edad BETWEEN 20 AND 35
Puedes aplicar operadores lógicos para filtrar aún más la información de la base de datos.
Operador | Significado |
AND | Cumple ambas condiciones. |
OR | Cumple una de las dos. |
NOT | No cumple ninguna. |
Por ejemplo, filtra en tu base de datos por dirección que cumpla con las condiciones de ciudad y código postal.
SELECT * FROM DIRECCIÓN WHERE (ciudad = ‘Puebla’ AND cp = 41009) OR (ciudad = ‘Jalisco’ AND (NOT cp = 14010))
Conclusión
SQL es uno de los lenguajes más usados a la hora de administrar y recuperar información de bases de datos relacionales. Existen comandos para crear, modificar y manipular el contenido de las mismas. Para manejar datos, una vez determinado el origen de la información mediante el comando SELECT, combina cláusulas, operadores y comandos en tu consulta para obtener la información ordenada.
SQL para analista y cientifico de datos
Aprende SQL en poco tiempo, el lenguaje de programación más utilizado para extraer y analizar información de bases de datos. Descubre cómo hacer consultas simples o complejas, y a modelar los datos estructurales de una empresa.