Lenguaje SQL
Estructura Básica de una Consulta SQL
La mayoría de las consultas SQL siguen una estructura general:
sql
CopiarEditar
SELECT columnas
FROM tabla
WHERE condiciones
GROUP BY columnas
HAVING condiciones_agrupadas
ORDER BY columnas ASC|DESC
LIMIT cantidad;
SELECT: Define las columnas que deseas recuperar.
FROM: Especifica la tabla o tablas de donde se obtendrán los datos.
WHERE: Filtra los resultados según ciertas condiciones.
GROUP BY: Agrupa los resultados basados en una o más columnas.
HAVING: Filtra grupos de resultados (usado junto con GROUP BY).
ORDER BY: Ordena los resultados de forma ascendente (ASC) o descendente (DESC).
LIMIT: Restringe el número de filas devueltas.
Consultas de Manipulación de Datos (DML)
Estas consultas se utilizan para manejar los datos dentro de las tablas.
INSERT: Inserta nuevos registros en una tabla.
INSERT INTO tabla (columna1, columna2, ...)
VALUES (valor1, valor2, ...);
UPDATE: Actualiza datos existentes.
UPDATE tabla
SET columna = valor
WHERE condición;
DELETE: Elimina registros de una tabla.
DELETE FROM tabla
WHERE condición;
Consultas de Manipulación de Datos (DML)
Estas estructuras modifican la estructura de la base de datos (tablas, índices, etc.).
CREATE: Crea nuevas tablas, bases de datos o índices.
CREATE TABLE tabla (
columna1 tipo_dato restricciones,
columna2 tipo_dato restricciones
);
ALTER: Modifica la estructura de una tabla existente.
ALTER TABLE tabla
ADD columna tipo_dato;
DROP: Elimina tablas, bases de datos o índices.
DROP TABLE tabla;
TRUNCATE: Elimina todos los datos de una tabla (más rápido que DELETE).
TRUNCATE TABLE tabla;
Consultas de Control de Datos (DCL)
Se usan para gestionar permisos y accesos a las bases de datos.
GRANT: Otorga permisos a usuarios.
GRANT SELECT, INSERT ON tabla TO usuario;
REVOKE: Retira permisos previamente otorgados.
REVOKE SELECT ON tabla FROM usuario;
Consultas de Control de Transacciones (TCL)
Estas consultas controlan las transacciones en las bases de datos.
COMMIT: Guarda los cambios realizados durante la transacción.
COMMIT;
ROLLBACK: Revierte los cambios realizados durante la transacción.
ROLLBACK;
SAVEPOINT: Crea un punto de restauración dentro de una transacción.
SAVEPOINT punto1;
Consultas Avanzadas
Para consultas más complejas, se combinan las estructuras básicas y avanzadas:
JOIN: Combina datos de varias tablas.
SELECT columnas
FROM tabla1
INNER JOIN tabla2 ON tabla1.columna = tabla2.columna;
Tipos: INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN.
Subconsultas: Consultas anidadas dentro de otra consulta.
SELECT columna
FROM tabla
WHERE columna IN (SELECT columna FROM otra_tabla);
Funciones de agregación: Realizan cálculos sobre un conjunto de datos.
Ejemplos: COUNT(), SUM(), AVG(), MAX(), MIN().
CTEs (Common Table Expressions): Consultas temporales reutilizables.
WITH cte AS (
SELECT columna
FROM tabla
WHERE condición
)
SELECT * FROM cte;
Filtrado y Condiciones
El filtrado de datos se realiza principalmente con el WHERE, combinando operadores lógicos y de comparación:
Operadores lógicos: AND, OR, NOT.
Operadores de comparación: =, <>, >, <, >=, <=.
Operadores especiales
LIKE: Filtra por patrones.
SELECT * FROM tabla WHERE columna LIKE 'A%';
IN: Busca valores específicos.
SELECT * FROM tabla WHERE columna IN (valor1, valor2);
BETWEEN: Rango de valores.
SELECT * FROM tabla WHERE columna BETWEEN 10 AND 20;
IS NULL: Filtra valores nulos.
SELECT * FROM tabla WHERE columna IS NULL;