sql database cheat-sheet mysql postgresql query dev-reference

La Guía Definitiva de SQL: Comandos, Joins y Referencia de Funciones

Una hoja de trucos (cheat sheet) de SQL completa para desarrolladores. Domina SELECT, JOIN, GROUP BY y las funciones SQL más comunes con ejemplos claros.

La Guía Definitiva de SQL: Comandos, Joins y Referencia de Funciones

SQL (Structured Query Language) es el lenguaje estándar para administrar y manipular bases de datos relacionales. Ya sea que trabajes con MySQL, PostgreSQL, SQL Server o SQLite, estos comandos principales forman la base de tus interacciones con la base de datos.

Usa esta hoja de trucos como una referencia rápida para la sintaxis común de SQL y las mejores prácticas.


1. Recuperación Básica de Datos

La tarea de SQL más común es recuperar datos de una tabla.

Comando Descripción Ejemplo
SELECT Especifica las columnas a recuperar SELECT nombre, edad
FROM Especifica la tabla de la cual recuperar FROM usuarios
WHERE Filtra el conjunto de resultados basado en una condición WHERE edad > 18
ORDER BY Ordena el conjunto de resultados (ASC o DESC) ORDER BY fecha_creacion DESC
LIMIT Restringe el número de filas devueltas LIMIT 10
DISTINCT Devuelve solo valores únicos SELECT DISTINCT ciudad

Ejemplo de Consulta:

SELECT nombre, email
FROM usuarios
WHERE pais = 'ES'
ORDER BY nombre ASC
LIMIT 5;

2. SQL Joins: Combinando Datos

Los Joins te permiten recuperar datos de múltiples tablas basándote en una columna relacionada.

  • INNER JOIN: Devuelve filas cuando hay una coincidencia en ambas tablas.
  • LEFT (OUTER) JOIN: Devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha.
  • RIGHT (OUTER) JOIN: Devuelve todas las filas de la tabla derecha y las filas coincidentes de la tabla izquierda.
  • FULL (OUTER) JOIN: Devuelve filas cuando hay una coincidencia en una de las tablas.

Ejemplo de Join:

SELECT pedidos.id, usuarios.nombre
FROM pedidos
INNER JOIN usuarios ON pedidos.usuario_id = usuarios.id;

3. Agregación y Agrupación

Las funciones de agregación realizan un cálculo sobre un conjunto de valores y devuelven un solo valor.

Función Descripción
COUNT() Devuelve el número de filas
SUM() Devuelve la suma total de una columna numérica
AVG() Devuelve el valor promedio
MIN() Devuelve el valor más pequeño
MAX() Devuelve el valor más grande

GROUP BY y HAVING: GROUP BY se usa con funciones de agregación para agrupar el conjunto de resultados por una o más columnas. HAVING se usa para filtrar grupos.

SELECT departamento, COUNT(*)
FROM empleados
GROUP BY departamento
HAVING COUNT(*) > 5;

4. Modificación de Datos (DML)

Comandos para añadir, actualizar y eliminar datos.

  • INSERT: Añadir nuevas filas.
    INSERT INTO usuarios (nombre, email) VALUES ('Juan Perez', '[email protected]');
    
  • UPDATE: Modificar filas existentes.
    UPDATE usuarios SET email = '[email protected]' WHERE id = 1;
    
  • DELETE: Eliminar filas.
    DELETE FROM usuarios WHERE id = 1;
    

5. Definición de Esquema (DDL)

Comandos para definir y gestionar la estructura de la base de datos.

  • CREATE TABLE: Crear una nueva tabla.
    CREATE TABLE productos (
      id INT PRIMARY KEY,
      nombre VARCHAR(100),
      precio DECIMAL(10, 2)
    );
    
  • ALTER TABLE: Modificar la estructura de una tabla existente (añadir/eliminar columnas).
    ALTER TABLE usuarios ADD ultimo_acceso TIMESTAMP;
    
  • DROP TABLE: Eliminar una tabla y todos sus datos.
    DROP TABLE datos_temporales;
    
  • Indexes (Índices): Se usan para acelerar la recuperación de datos.
    CREATE INDEX idx_usuario_email ON usuarios(email);
    

Preguntas Comunes (FAQ)

Q: SQL vs NoSQL: ¿Cuál debería elegir?

A: Usa SQL (Relacional) cuando tus datos estén estructurados, necesites joins complejos y la conformidad ACID sea una prioridad. Usa NoSQL (No relacional) para datos no estructurados, requisitos de alta escalabilidad y ciclos de desarrollo rápidos donde los esquemas cambian con frecuencia.

Q: ¿Cuáles son las mejores prácticas para el diseño de bases de datos?

A:

  1. Normalización: Reducir la redundancia de datos.
  2. Convenciones de Nombres: Usar nombres consistentes, en minúsculas y separados por guiones bajos.
  3. Claves Primarias: Cada tabla debe tener un identificador único.
  4. Usar Índices Sabiamente: Aceleran las lecturas pero ralentizan las escrituras.

Q: ¿Qué es una Inyección SQL y cómo puedo prevenirla?

A: La Inyección SQL es una vulnerabilidad donde un atacante puede ejecutar sentencias SQL maliciosas. Prevención: Nunca concatenes la entrada del usuario directamente en las consultas. Usa Sentencias Preparadas (Consultas Parametrizadas) proporcionadas por el controlador de base de datos de tu lenguaje de programación.

Q: ¿Cómo puedo optimizar el rendimiento de SQL?

A:

  • Evita SELECT *; recupera solo las columnas que necesites.
  • Usa EXPLAIN para analizar los planes de ejecución de las consultas.
  • Asegúrate de indexar correctamente las columnas usadas en las cláusulas WHERE y JOIN.
  • Evita usar subconsultas cuando un JOIN sea más eficiente.

Herramientas Relacionadas en Tool3M

  • Formateador SQL: Limpia y formatea tus consultas SQL para una mejor legibilidad.
  • JSON a CSV: Convierte tus exportaciones de base de datos entre los formatos JSON y CSV.