Consultas y filtros
SELECT, WHERE, ORDER BY, LIMIT
Relaciones
JOINs y subconsultas
Agregaciones
GROUP BY, HAVING
Biblioteca · SQL
El lenguaje SQL
SQL (Structured Query Language) es el estándar para definir, consultar y manipular datos en bases de datos relacionales. Sirve para crear objetos (tablas, índices, vistas), leer y escribir filas, definir integridad referencial, controlar permisos y gestionar transacciones. Cada tema incluye una descripción amplia del propósito, la estructura típica de la sentencia, el papel de cada componente y al menos un ejemplo copiable. Los motores (MySQL, PostgreSQL, SQL Server, Oracle, SQLite, etc.) comparten una base común ANSI/ISO, pero el orden de cláusulas, funciones y tipos puede variar: ante la duda, comprueba siempre la documentación oficial de tu motor y prueba en un entorno de desarrollo antes de ejecutar en producción.
SQL documentation & query examples
Use this library as SQL documentation online: browse SQL queries examples for SELECT, JOIN, GROUP BY and filters. Ideal if you searched for how to use join in SQL or a technical documentation platform with runnable snippets.
Las URLs de cada tema usan el prefijo sql- en el slug (p. ej. /documentacion/sql/sql-select) para evitar que palabras reservadas sueltas en la ruta activen reglas de seguridad en algunos servidores. Las rutas antiguas sin prefijo redirigen con 301.
Errores comunes
Atajos a temas donde suele estar la causa (no solo sintaxis).
Temas con vista detallada
Mostrando 129 tema(s). Escribe para filtrar por nombre o descripción.
Ningún tema coincide con la búsqueda o el motor elegido. Prueba otras palabras o elige «Todos».
-
🟢 BásicoSELECT básico Consulta declarativa para leer filas de tablas o vistas: eliges columnas o expresiones, acotas con filtros, ordenas el resultado y limitas cuántas filas devuelve el motor sin recorrer toda la tabla salvo que el plan lo requiera.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioINNER JOIN Combina dos conjuntos de filas conservando solo las que cumplen la condición de unión; el resto se descarta. Es el tipo de JOIN más estricto y el habitual cuando solo te interesan relaciones «existentes» entre tablas.Sintaxis Explicación Ejemplo Error comúnAbrir tema
-
🟡 IntermedioLEFT JOIN Devuelve todas las filas del lado izquierdo y, si existen, las coincidencias del derecho; donde no hay pareja, las columnas del derecho salen NULL. Sirve para incluir «ausencias» (clientes sin pedidos, categorías vacías).Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioFiltro sobre agregados (HAVING) Filtra grupos ya formados por GROUP BY usando condiciones sobre SUM, COUNT, AVG, etc. No sustituye a WHERE: cada uno opera en una fase distinta del procesamiento lógico.Sintaxis Explicación Ejemplo Error comúnAbrir tema
-
🟡 IntermedioSubconsulta escalar en WHERE SELECT anidado que devuelve una sola columna y una fila (o se compara con IN) para decidir si cada fila exterior pasa el filtro. Encapsula un cálculo reutilizable sin CTE.Sintaxis Explicación Ejemplo Error comúnAbrir tema
-
🟢 BásicoINSERT: nuevas filas Añade una o más filas a una tabla con valores explícitos o procedentes de un SELECT. Las columnas omitidas suelen tomar NULL, DEFAULT o autogeneración según definición de la tabla.Sintaxis Explicación EjemploAbrir tema
-
🟢 BásicoUPDATE: modificar filas existentes Modifica columnas de filas que cumplen una condición. Sin WHERE, afecta a toda la tabla y es una operación de alto riesgo en producción.Sintaxis Explicación EjemploAbrir tema
-
🟢 BásicoDELETE Elimina filas que cumplen un predicado. Sin WHERE, borra todo el contenido de la tabla salvo limitaciones de permisos, triggers o claves foráneas; en producción suele ser una operación controlada y auditada.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioUNION / UNION ALL Apila verticalmente los resultados de varios SELECT con el mismo número de columnas y tipos compatibles. UNION quita duplicados; UNION ALL conserva todas las filas y suele ser más barato.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioCTE (WITH) Define uno o más resultados intermedios con nombre en el ámbito de una sola sentencia. Mejora la legibilidad frente a subconsultas repetidas y permite encadenar lógica en pasos claros.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟢 BásicoDISTINCT Tras calcular las filas del SELECT, elimina duplicados respecto al conjunto completo de columnas proyectadas. No «desduplica» filas físicas de la tabla, sino el resultado intermedio.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioEXISTS (subconsulta) Predicado que es verdadero si la subconsulta devuelve al menos una fila; falso si el conjunto interno está vacío. No inspecciona valores devueltos, solo existencia.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioCASE (expresión condicional) Expresión que devuelve un único valor por fila según condiciones evaluadas en orden. Equivale a if/else en lenguajes imperativos pero dentro del lenguaje declarativo SQL.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioGROUP BY Divide el conjunto de filas en grupos que comparten los mismos valores en las columnas o expresiones de agrupación. Las funciones de agregado se calculan dentro de cada grupo.Sintaxis Explicación Ejemplo Error comúnAbrir tema
-
🟢 BásicoORDER BY Impone un orden total o parcial entre las filas del resultado. Sin ORDER BY, el orden de filas no está garantizado salvo detalles del plan o clustered index.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioRIGHT JOIN Conserva todas las filas del lado derecho de la unión y empareja las del izquierdo; sin coincidencia, las columnas izquierdas son NULL. Es simétrico de LEFT JOIN intercambiando tablas.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioCROSS JOIN Producto cartesiano: cada fila de la primera tabla se combina con cada fila de la segunda. Cardinalidad multiplicativa; peligroso en tablas grandes.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioCREATE TABLE Sentencia DDL que define una nueva relación: nombres de columnas, tipos, valores por defecto, claves e integridad referencial en un solo objeto persistente.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioCREATE INDEX Crea una estructura auxiliar sobre una o más columnas para acelerar búsquedas, joins y ordenaciones a costa de espacio y mantenimiento en INSERT/UPDATE/DELETE.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟡 IntermedioCREATE VIEW Define un objeto de catálogo cuyo contenido es el resultado de un SELECT almacenado; se consulta como tabla pero no duplica datos salvo vistas materializadas.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioALTER TABLE Modifica la definición de una tabla existente: añadir o eliminar columnas, cambiar tipos, añadir o quitar restricciones y, según motor, reorganizar almacenamiento.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioTRUNCATE TABLE Vaciado rápido de una tabla sin condición WHERE por fila; en muchos motores es DDL o tiene semántica distinta de DELETE masivo.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio Sintaxis según motorMERGE / UPSERT Patrones para insertar una fila si la clave no existe o actualizarla si ya existe, o fusionar tablas origen/destino en una sola sentencia según motor.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟢 BásicoTipos de datos SQL Clasificación de valores que puede almacenar cada columna: enteros y decimales con distinta precisión, texto de longitud fija o variable, fechas y marcas de tiempo, booleanos, binarios y tipos semiestructurados o espaciales según el motor.Sintaxis Explicación EjemploAbrir tema
-
🟢 BásicoWHERE: predicados y filtros Filtrar filas antes del GROUP BY con comparaciones, IN, LIKE, BETWEEN, IS NULL y EXISTS.Sintaxis Explicación Ejemplo Error comúnAbrir tema
-
🟢 BásicoLIMIT, OFFSET y FETCH Paginar o acotar filas devueltas; la sintaxis exacta depende del motor.Sintaxis Explicación EjemploAbrir tema
-
🟢 BásicoLIKE y comodines Búsqueda de patrones en texto con % y _.Sintaxis Explicación EjemploAbrir tema
-
🟢 BásicoIN y BETWEEN Comprobar pertenencia a lista o rango inclusivo.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioANY, SOME y ALL Comparar un valor contra el resultado de una subconsulta (cuantificadores).Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioFunciones de agregación COUNT, SUM, AVG, MIN y MAX sobre conjuntos de filas.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioFunciones escalares (texto, número, fecha) Transformar valores por fila: UPPER, SUBSTRING, ROUND, fechas actuales, etc.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioCOALESCE, NULLIF e IFNULL/ISNULL Sustituir NULL, comparar valores y portabilidad entre motores.Sintaxis Explicación Ejemplo Error comúnAbrir tema
-
🟡 IntermedioFULL OUTER JOIN Todas las filas de ambas tablas; NULL donde no hay pareja.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioSELF JOIN Unir una tabla consigo misma con alias distintos.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioSubconsulta correlacionada La subconsulta referencia columnas de la consulta exterior y se evalúa en contexto por fila.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioINTERSECT y EXCEPT / MINUS Intersección y diferencia de conjuntos de filas entre dos SELECT.Sintaxis Explicación EjemploAbrir tema
-
🔴 AvanzadoCTE recursiva (WITH RECURSIVE) Recorrer jerarquías o generar series con una CTE que se referencia a sí misma.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🔴 AvanzadoFunciones de ventana (OVER) ROW_NUMBER, RANK, SUM/AVG OVER, LAG/LEAD sin colapsar filas.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟡 IntermedioDROP VIEW Eliminar una vista del esquema.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioDROP INDEX Eliminar un índice; la sintaxis incluye esquema y tabla según motor.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioDROP TABLE Eliminar una tabla y, según motor, índices y restricciones asociadas.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioCREATE DATABASE Crear un contenedor lógico de esquemas y objetos.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioRestricciones: NOT NULL, UNIQUE, PRIMARY KEY, CHECK, DEFAULT Reglas de integridad en columnas y tabla.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioFOREIGN KEY (clave foránea) Relacionar columnas con la clave primaria (o única) de otra tabla.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioSecuencias e identidad (AUTO_INCREMENT, IDENTITY, SERIAL) Generar valores numéricos únicos automáticamente.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioTablas temporales Almacenar resultados intermedios de sesión o transacción.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioGRANT y REVOKE (DCL) Otorgar o quitar permisos sobre objetos o roles.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioTransacciones (BEGIN, COMMIT, ROLLBACK) Agrupar cambios atómicos con propiedades ACID y puntos de salvado.Sintaxis Explicación EjemploAbrir tema
-
🔴 AvanzadoTriggers (disparadores) Código ejecutado automáticamente en INSERT, UPDATE o DELETE.Sintaxis Explicación EjemploAbrir tema
-
🔴 AvanzadoProcedimientos almacenados Rutinas con lógica SQL reutilizable invocadas con CALL o EXEC.Sintaxis Explicación EjemploAbrir tema
-
🔴 AvanzadoFunciones definidas por el usuario Funciones que devuelven un escalar o conjunto y se usan en expresiones.Sintaxis Explicación EjemploAbrir tema
-
🔴 AvanzadoJSON en SQL Tipo JSON/JSONB y funciones para extraer, construir y consultar documentos.Sintaxis Explicación EjemploAbrir tema
-
🔴 Avanzado LATERAL / APPLYLATERAL y APPLY (CROSS / OUTER) Evaluar una subconsulta o función por cada fila de la tabla izquierda, como un JOIN correlacionado explícito.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🔴 AvanzadoPIVOT y UNPIVOT Girar filas a columnas (PIVOT) o columnas a filas (UNPIVOT); muy usado en informes.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio RETURNING / OUTPUTRETURNING y OUTPUT Devolver filas afectadas por INSERT, UPDATE o DELETE en la misma sentencia.Sintaxis Explicación EjemploAbrir tema
-
🟡 IntermedioFETCH … WITH TIES y OFFSET/FETCH Limitar filas con estándar SQL (OFFSET/FETCH) y empatar en el límite del ORDER BY.Sintaxis Explicación EjemploAbrir tema
-
🔴 Avanzado Solo PostgreSQLDISTINCT ON (PostgreSQL) Elegir una fila representativa por grupo sin GROUP BY explícito, según ORDER BY.Sintaxis Explicación EjemploAbrir tema
-
🔴 AvanzadoTABLESAMPLE Leer un subconjunto aproximado de filas de una tabla para análisis rápidos o estadísticas.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🔴 AvanzadoFOR UPDATE, SKIP LOCKED y NOWAIT Bloquear filas leídas para transacciones concurrentes o fallar rápido si hay bloqueo.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio MySQL / MariaDBFIND_IN_SET() (MySQL / MariaDB) Devuelve la posición (1-based) de una cadena dentro de una lista separada por comas, o 0 si no aparece. Pensada para columnas tipo SET o listas denormalizadas; no sustituye a una tabla relacional ni a JSON.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio MySQL / MariaDBGROUP_CONCAT() (MySQL / MariaDB) Agregado que concatena valores de un grupo en una sola cadena, con separador configurable y orden opcional. Muy usado para listas legibles en informes; el límite de longitud lo controla group_concat_max_len.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟢 Básico MySQL / MariaDBIF() (MySQL / MariaDB) Función condicional binaria: si la condición es verdadera devuelve el segundo argumento, si no el tercero. Sintaxis compacta frente a CASE simple cuando solo hay dos ramas.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico MySQL / MariaDBIFNULL() (MySQL / MariaDB) Devuelve el primer argumento si no es NULL; en caso contrario devuelve el segundo. Equivalente conceptual a COALESCE de dos argumentos o a ISNULL en SQL Server.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico MySQL / MariaDBNULLIF() (MySQL / MariaDB) Devuelve NULL si dos expresiones son iguales; en caso contrario devuelve la primera. Forma parte del estándar SQL y está disponible también en PostgreSQL, SQL Server y Oracle con la misma semántica.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio MySQL / MariaDBFIELD() (MySQL / MariaDB) Devuelve la posición (1-based) en la que el primer argumento coincide con uno de los siguientes argumentos; 0 si no hay coincidencia. Sirve para ordenar filas según un orden arbitrario de valores.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio MySQL / MariaDBELT() (MySQL / MariaDB) Devuelve el argumento de la lista situado en la posición indicada por el primer argumento (1-based). Es la inversa lógica de FIELD para construir valores a partir de un índice.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico MySQL / MariaDBSTR_TO_DATE() (MySQL / MariaDB) Parsea una cadena de texto a valor DATE/DATETIME/TIME según una máscara de formato (similar a strptime). Imprescindible cuando el origen no está en ISO 8601 y debes interpretar día/mes/año regional.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico MySQL / MariaDBDATE_FORMAT() (MySQL / MariaDB) Formatea un valor DATE/DATETIME/TIME a cadena según una máscara (%d/%m/%Y, nombres de mes, etc.). Es el análogo de presentación inverso a STR_TO_DATE.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio MySQL / MariaDBTIMESTAMPDIFF() (MySQL / MariaDB) Calcula la diferencia entre dos expresiones de fecha/hora en la unidad indicada (DAY, HOUR, MINUTE, YEAR, etc.). La semántica es «cuántas unidades enteras caben entre el primer instante y el segundo» según reglas del motor.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico MySQL / MariaDBUUID() (MySQL / MariaDB) Genera un identificador único universal versión 1 (MAC + tiempo) en formato cadena con guiones. Cada llamada produce un valor nuevo en la sesión, útil como clave sustituta o token.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico MySQL / MariaDBRAND() (MySQL / MariaDB) Devuelve un número pseudoaleatorio en [0,1). Con semilla opcional la secuencia es reproducible entre ejecuciones con la misma semilla.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico MySQL / MariaDBCONCAT_WS() (MySQL / MariaDB) Concatena argumentos usando un separador fijo, ignorando NULL en los valores a unir (a diferencia de CONCAT que devuelve NULL si algún argumento es NULL).Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio MySQL / MariaDBSUBSTRING_INDEX() (MySQL / MariaDB) Devuelve la subcadena antes de la enésima aparición de un delimitador, o después si el contador es negativo. Útil para parsear rutas, CSV rudimentario o URLs sin usar expresiones regulares.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio MySQL / MariaDBJSON_EXTRACT() (MySQL / MariaDB) Extrae un fragmento de un documento JSON por ruta (p. ej. $.nombre o $[0]). Devuelve un valor JSON con comillas si es cadena; combina con JSON_UNQUOTE para texto plano.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟡 Intermedio MySQL / MariaDBJSON_UNQUOTE() (MySQL / MariaDB) Quita comillas y decodifica secuencias de escape de una cadena JSON, produciendo un valor SQL escalar (cadena UTF-8). Paso habitual tras JSON_EXTRACT cuando necesitas comparar con columnas VARCHAR.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🔴 Avanzado MySQL / MariaDBMAKE_SET() (MySQL / MariaDB) Construye una cadena separada por comas con aquellos argumentos cuyo bit correspondiente está activo en la máscara entera. Relacionado con el tipo SET antiguo y flags en un entero.Sintaxis Explicación EjemploAbrir tema
-
🔴 Avanzado MySQL / MariaDBEXPORT_SET() (MySQL / MariaDB) Convierte un entero en una cadena de símbolos separados según el valor de cada bit: un carácter para bit 1 y otro para bit 0, con separador opcional y longitud máxima de bits.Sintaxis Explicación EjemploAbrir tema
-
🔴 Avanzado MySQL / MariaDBSLEEP() (MySQL / MariaDB) Pausa la ejecución del hilo durante el número indicado de segundos (con fracción permitida). Pensada para pruebas de bloqueo, timeouts y diagnóstico, no para lógica de negocio.Sintaxis Explicación Ejemplo Error comúnAbrir tema
-
🔴 Avanzado MySQL / MariaDBBENCHMARK() (MySQL / MariaDB) Ejecuta una expresión un número fijo de veces y mide tiempo de CPU del servidor para microbenchmarks en SQL. No sustituye a benchmarks de aplicación ni a EXPLAIN ANALYZE.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟡 Intermedio SQL ServerSTRING_AGG() (SQL Server) Concatena valores por grupo con separador obligatorio (SQL Server 2017+). Equivalente práctico a GROUP_CONCAT() en MySQL; admite WITHIN GROUP (ORDER BY).Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟢 Básico SQL ServerISNULL() (SQL Server) Sustituye NULL por un valor de respaldo (solo dos argumentos). En MySQL equivale a IFNULL(); COALESCE es la forma ANSI con varios argumentos.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico SQL ServerGETDATE() (SQL Server) Fecha y hora actual del servidor como datetime (sin offset). Uso parecido a NOW() / CURRENT_TIMESTAMP en MySQL; menor precisión que SYSDATETIME().Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio SQL ServerSYSDATETIME() (SQL Server) Fecha/hora actual como datetime2 (más precisa que GETDATE). Para UTC usa SYSUTCDATETIME(); en MySQL NOW(6) o tipos con fracciones según versión.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio SQL ServerDATEDIFF() (SQL Server) Diferencia entera entre dos fechas según datepart (DATEDIFF(unit, inicio, fin)). La semántica no coincide con TIMESTAMPDIFF de MySQL: revisa orden y bordes de mes.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio SQL ServerDATEADD() (SQL Server) Desplaza una fecha/hora en un datepart (DATEADD(part, n, fecha)). En MySQL suele usarse DATE_ADD con INTERVAL; cuidado con tipos y zona horaria.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico SQL ServerIIF() (SQL Server) Condicional de dos ramas (IIF(cond, si, no)). Misma idea que IF() en MySQL; para más opciones usa CASE estándar.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico SQL ServerCHOOSE() (SQL Server) Elige el valor por índice 1-based (CHOOSE(n, v1, v2, …)). Paralelo a ELT() en MySQL; fuera de rango suele dar NULL.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio SQL ServerTRY_CAST / TRY_CONVERT (SQL Server) Conversión defensiva: TRY_CAST / TRY_CONVERT devuelven NULL si el formato no encaja (sin error duro). En MySQL no hay equivalente TRY_ nativo.Sintaxis Explicación Ejemplo Error comúnAbrir tema
-
🟢 Básico SQL ServerNEWID() (SQL Server) GUID aleatorio (uniqueidentifier), típico para claves o tokens. En MySQL el rol similar es UUID(); NEWSEQUENTIALID() existe solo como DEFAULT cluster-friendly.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio PostgreSQLgenerate_series() (PostgreSQL) Genera una serie de valores numéricos o de tiempo entre inicio y fin con paso opcional. Tabla virtual muy usada para calendarios, rellenar huecos y probar planes; no tiene equivalente de una función en MySQL ni SQL Server.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio PostgreSQLunnest() (PostgreSQL) Expande un array (o varios en paralelo) a un conjunto de filas, una por elemento. Pieza clave del modelo ARRAY de PostgreSQL; MySQL no tiene unnest nativo; SQL Server usa OPENJSON u otras técnicas.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio PostgreSQLarray_agg() (PostgreSQL) Agregado que acumula valores en un array SQL nativo (no en una cadena). Distinto de STRING_AGG (texto) y de listas en otros motores; permite orden interno y filtrar NULL.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟢 Básico PostgreSQLjsonb_build_object() (PostgreSQL) Construye un valor jsonb a partir de pares clave-valor variádicos. Base para APIs y columnas semiestructuradas; el binario jsonb indexa y compara eficientemente frente a json puro.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio PostgreSQLjsonb_each() (PostgreSQL) Convierte cada par clave-valor de un objeto jsonb en una fila (key, value). Familia jsonb_each_text para valores como texto; base para pivotar o unir metadatos JSON con tablas relacionales.Sintaxis Explicación EjemploAbrir tema
-
🔴 Avanzado PostgreSQLto_tsvector() (PostgreSQL) Tokeniza texto según un diccionario de búsqueda (idioma) y devuelve tsvector para full-text search. Junto a to_tsquery y el índice GIN/GiST forma el motor de búsqueda integrado de PostgreSQL.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🔴 Avanzado PostgreSQLto_tsquery() (PostgreSQL) Construye un tsquery a partir de una cadena con operadores booleanos y prefijos de lexemas (&, |, !, :*). Entrada más estricta que plainto_tsquery; debe alinearse con el mismo regconfig que to_tsvector.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟡 Intermedio PostgreSQLset_config() (PostgreSQL) Establece un parámetro de sesión o transacción en tiempo de ejecución y devuelve texto con el valor aplicado. Equivalente conceptual a SET nombre = valor con retorno utilizable en expresiones.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico PostgreSQLcurrent_setting() (PostgreSQL) Lee el valor textual de un parámetro de configuración (servidor o sesión). Similar a SHOW pero utilizable en expresiones y consultas. Complemento natural de set_config.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico PostgreSQLpg_sleep() (PostgreSQL) Pausa la sesión durante el número dado de segundos (double precision). Solo para pruebas, reproducción de condiciones de carrera o demos; análogo a SLEEP() en MySQL y WAITFOR DELAY en SQL Server.Sintaxis Explicación Ejemplo Error comúnAbrir tema
-
🟢 Básico MySQL / MariaDBLAST_INSERT_ID() (MySQL / MariaDB) Devuelve el primer valor AUTO_INCREMENT generado en la sesión para la tabla afectada por el INSERT más reciente. Esencial para APIs que insertan y necesitan la clave en la misma conexión.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio MySQL / MariaDBMATCH() … AGAINST() (MySQL / MariaDB) Búsqueda full-text sobre columnas indexadas con FULLTEXT (InnoDB/MyISAM). Sintaxis distinta a to_tsvector de PostgreSQL; requiere índice FULLTEXT y modo booleano o natural language.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟡 Intermedio MySQL / MariaDBINSERT … ON DUPLICATE KEY UPDATE (MySQL / MariaDB) Inserta una fila o, si hay conflicto con clave primaria o única, ejecuta UPDATE en su lugar. Patrón upsert muy usado; en PostgreSQL suele usarse ON CONFLICT; en SQL Server MERGE.Sintaxis Explicación Ejemplo Error comúnAbrir tema
-
🟡 Intermedio MySQL / MariaDBUNIX_TIMESTAMP() / FROM_UNIXTIME() (MySQL / MariaDB) Convierte entre instantes UNIX (segundos desde 1970-01-01 UTC) y tipos DATETIME/TIMESTAMP de sesión. Muy usado en APIs y logs; PostgreSQL usa extract(epoch) o to_timestamp.Sintaxis Explicación EjemploAbrir tema
-
🔴 Avanzado MySQL / MariaDBJSON_TABLE() (MySQL / MariaDB) Proyecta documentos JSON a conjunto relacional de filas y columnas en una sola consulta (MySQL 8.0+). Similar en espíritu a JSON_TABLE estándar y a OPENJSON en SQL Server.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟡 Intermedio MySQL / MariaDBREGEXP / RLIKE (MySQL / MariaDB) Operadores de comparación por expresión regular POSIX u HC4 según versión y modo. RLIKE es sinónimo de REGEXP. No confundir con LIKE simple.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio MySQL / MariaDBCONV() (MySQL / MariaDB) Convierte números entre bases de numeración (2–36) como cadena. Útil para máscaras de bits, colores hex o depuración de enteros grandes.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico MySQL / MariaDBQUOTE() (MySQL / MariaDB) Escapa una cadena para uso seguro como literal en sentencias dinámicas: antepone barra invertida a comillas y caracteres especiales según reglas del servidor.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico MySQL / MariaDBINSERT IGNORE (MySQL / MariaDB) Inserta filas ignorando errores de duplicado de clave única o algunos avisos convirtiéndolos en advertencia en lugar de abortar el lote.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio MySQL / MariaDBANY_VALUE() (MySQL / MariaDB) Suprime ambigüedad ONLY_FULL_GROUP_BY eligiendo arbitrariamente un valor de columna no agrupada dentro de un grupo. Uso deliberado cuando aceptas cualquier representante (p. ej. todas las filas del grupo comparten el mismo valor).Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio SQL ServerFOR JSON (SQL Server) Cláusula que serializa el resultado de un SELECT como cadena JSON (PATH o AUTO). Muy usada en APIs y integraciones; distinto del tipo JSON nativo de PostgreSQL/mysql.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio SQL ServerCROSS APPLY / OUTER APPLY (SQL Server) Evalúa una expresión tabla por cada fila de la tabla izquierda (lateral implícito). CROSS APPLY es inner: solo filas con resultado; OUTER APPLY conserva izquierda con NULLs.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio SQL ServerSTUFF() (SQL Server) Inserta una cadena dentro de otra eliminando un número de caracteres desde una posición inicial. Complemento habitual de FOR XML PATH para concatenar filas en T-SQL.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio SQL ServerFORMAT() (SQL Server) Formatea fechas y números a cadena según patrón .NET (códigos tipo d fecha corta, N número). Conveniente para informes; costoso en grandes volúmenes frente a CONVERT estilo.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico SQL ServerTRY_PARSE() (SQL Server) Intenta convertir cadena a fecha/número usando cultura; si falla devuelve NULL sin error. Diferente de TRY_CAST: TRY_PARSE usa reglas de formato regional para fechas.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio SQL ServerEOMONTH() (SQL Server) Devuelve el último día del mes de una fecha dada, con desplazamiento opcional de meses. Simplifica informes de cierre mensual frente a manual DATEADD/DAY.Sintaxis Explicación EjemploAbrir tema
-
🟢 Básico SQL ServerSTRING_SPLIT() (SQL Server) Divide una cadena en filas por un separador (2016+). Devuelve una columna value; en versiones recientes admite ordinal habilitando compatibilidad.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio SQL ServerPIVOT (SQL Server) Operador de tabla que rota valores de una columna en columnas nuevas con agregación. Sintaxis propietaria T-SQL; distinta de extensiones de otros motores.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🔴 Avanzado SQL ServerAT TIME ZONE (SQL Server) Convierte entre datetimeoffset y hora local según zona IANA o Windows, o interpreta datetime sin zona en una zona dada. Clave para datos globales en T-SQL.Sintaxis Explicación EjemploAbrir tema
-
🔴 Avanzado SQL ServerOPENJSON (SQL Server) Descompone texto JSON en filas y columnas tipadas (2016+). Paralelo conceptual a JSON_TABLE en MySQL y jsonb_to_recordset en PostgreSQL.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟢 Básico PostgreSQLdate_trunc() (PostgreSQL) Trunca timestamp/date a la unidad indicada (día, mes, hora, etc.). Base para agrupar por periodo y comparar con DATE_TRUNC de otros usos OLAP.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio PostgreSQLage() (PostgreSQL) Devuelve intervalo entre dos marcas de tiempo o entre hoy y una fecha (timestamp). Muy usado para edades y antigüedades sin aritmética manual de días.Sintaxis Explicación EjemploAbrir tema
-
🔴 Avanzado PostgreSQLjsonb_path_query / SQL/JSON (PostgreSQL) Consulta documentos jsonb con expresiones JSON Path (SQL:2016). Incluye filtros, variables y modo estricto. Potencia superior a solo operadores -> y @>.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟡 Intermedio PostgreSQLOperadores de array (PostgreSQL) Comparación y solapamiento de arrays: contención @>, contenido <@, solapamiento &&, concatenación ||. Base del modelo de datos array nativo.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio PostgreSQLCOPY (PostgreSQL) Carga o descarga datos masivos entre tabla y archivo o STDIN/STDOUT con rendimiento muy alto. Protocolo servidor; requiere permisos y a veces superusuario para rutas locales.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟡 Intermedio PostgreSQLrow_to_json / to_jsonb (PostgreSQL) Serializa una fila completa (tipo composite/ROW) a JSON o JSONB. Complemento de jsonb_build_object cuando ya tienes un ROW o una subconsulta.Sintaxis Explicación EjemploAbrir tema
-
🔴 Avanzado PostgreSQLTipos rango (PostgreSQL) Tipos int4range, tstzrange, daterange representan intervalos con límites inclusivos/exclusivos. Operadores @> contiene punto, && solapa, - unión.Sintaxis Explicación Ejemplo OptimizaciónAbrir tema
-
🟢 Básico PostgreSQLINTERVAL (PostgreSQL) Tipo de dato para duraciones y desplazamientos calendario con unidades combinables (días, horas, meses). Aritmética más rica que simple entero de segundos.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio PostgreSQLFILTER en agregados (PostgreSQL) Cláusula estándar SQL que limita qué filas entran en cada agregado sin añadir subconsultas. count(*) FILTER (WHERE cond) es idiomático.Sintaxis Explicación EjemploAbrir tema
-
🟡 Intermedio PostgreSQLGENERATED … AS IDENTITY (PostgreSQL) Columnas de identidad estándar SQL reemplazan el patrón SERIAL como azúcar sintáctico. Control fino de ALWAYS BY DEFAULT y ciclos de secuencia.Sintaxis Explicación EjemploAbrir tema
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.