12-10-2026

Como trabajar con datos en mysql

SQL Básico & Filtro

Consultas, filtros y operadores esenciales para seleccionar y filtrar datos.

  • "SELECT" — Selecciona columnas específicas de una o más tablas.
  • "SELECT *" — Selecciona todas las columnas de una tabla.
  • "DISTINCT" — Elimina filas duplicadas del resultado.
  • "FROM" — Especifica la tabla o tablas de origen de los datos.
  • "WHERE" — Filtra filas según una condición.
  • "AND" — Combina múltiples condiciones que deben cumplirse todas.
  • "OR" — Combina condiciones donde al menos una debe cumplirse.
  • "NOT" — Niega una condición.
  • "IN" — Verifica si un valor está dentro de una lista de valores.
  • "NOT IN" — Verifica si un valor no está dentro de una lista.
  • "BETWEEN" — Filtra valores dentro de un rango inclusivo.
  • "LIKE" — Busca patrones en cadenas de texto (sensible a mayúsculas en MySQL por defecto según collation).
  • "ILIKE" — No es nativo de MySQL; se emula con LIKE y COLLATE o LOWER/UPPER para búsqueda insensible a mayúsculas.
  • "IS NULL" — Comprueba si un valor es nulo.
  • "IS NOT NULL" — Comprueba si un valor no es nulo.
  • "ORDER BY" — Ordena el resultado por una o más columnas.
  • "ASC" — Orden ascendente (valor por defecto).
  • "DESC" — Orden descendente.
  • "LIMIT" — Limita el número de filas devueltas.
  • "OFFSET" — Omite un número determinado de filas antes de empezar a devolver resultados.
  • "AS" — Asigna un alias a una columna o tabla.
  • "CASE WHEN" — Permite lógica condicional en consultas (similar a if-else).
  • "COALESCE()" — Devuelve el primer valor no nulo de una lista de argumentos.
  • "NULLIF()" — Devuelve NULL si dos expresiones son iguales; de lo contrario devuelve la primera.
  • "CAST()" — Convierte un valor de un tipo de dato a otro.
  • "ROUND()" — Redondea un número a un número específico de decimales.
  • "UPPER()" — Convierte una cadena a mayúsculas.
  • "LOWER()" — Convierte una cadena a minúsculas.
  • "TRIM()" — Elimina espacios en blanco (u otros caracteres) al inicio y final de una cadena.
  • "CONCAT()" — Concatena dos o más cadenas de texto.

Agregación y Funciones

Funciones de agregación, cálculos y manipulación de datos.

  • "COUNT()" — Cuenta el número de filas o valores no nulos.
  • "COUNT(*)" — Cuenta el número total de filas, incluyendo nulos.
  • "COUNT(DISTINCT)" — Cuenta el número de valores únicos no nulos.
  • "SUM()" — Calcula la suma de valores numéricos.
  • "AVG()" — Calcula el promedio de valores numéricos.
  • "SELF JOIN" — Une una tabla consigo misma.
  • "MAX()" — Devuelve el valor máximo de una columna.
  • "GROUP BY" — Agrupa filas que tienen los mismos valores en columnas especificadas.
  • "HAVING" — Filtra grupos después de aplicar GROUP BY.
  • "GROUPING SETS" — Permite múltiples niveles de agrupación en una sola consulta (soportado en MySQL 8.0+).
  • "ROLLUP" — Genera subtotales y totales generales (soportado en MySQL).
  • "CUBE" — Genera todas las combinaciones posibles de subtotales (limitado o emulado en MySQL).
  • "DATE()" — Extrae la parte de fecha de un valor datetime.
  • "EXTRACT()" — Extrae una parte específica (año, mes, día, etc.) de una fecha o hora.
  • "DATE_TRUNC()" — No es nativo de MySQL; se emula con DATE_FORMAT o funciones equivalentes.
  • "CURRENT_DATE" — Devuelve la fecha actual del servidor.
  • "CURRENT_TIMESTAMP" — Devuelve la fecha y hora actual del servidor.
  • "INTERVAL" — Representa un intervalo de tiempo para operaciones de fecha.
  • "ABS()" — Devuelve el valor absoluto de un número.
  • "CEIL()" — Redondea un número hacia arriba al entero más cercano.
  • "FLOOR()" — Redondea un número hacia abajo al entero más cercano.
  • "POWER()" — Eleva un número a una potencia especificada.
  • "MOD()" — Devuelve el resto de una división.
  • "LENGTH()" — Devuelve la longitud de una cadena en bytes o caracteres (según versión y charset).
  • "SUBSTRING()" — Extrae una parte de una cadena.
  • "REPLACE()" — Reemplaza todas las ocurrencias de una subcadena por otra.
  • "POSITION()" — Devuelve la posición de una subcadena dentro de otra cadena.
  • "STRING_AGG()" — No es nativo de MySQL; se usa GROUP_CONCAT() como equivalente.
  • "GREATEST()" — Devuelve el mayor valor de una lista de argumentos.
  • "LEAST()" — Devuelve el menor valor de una lista de argumentos.

Uniones y Subconsultas

Combinación de datos y consultas anidadas.

  • "INNER JOIN" — Devuelve filas que tienen coincidencias en ambas tablas.
  • "LEFT JOIN" — Devuelve todas las filas de la tabla izquierda y las coincidentes de la derecha.
  • "RIGHT JOIN" — Devuelve todas las filas de la tabla derecha y las coincidentes de la izquierda.
  • "FULL OUTER JOIN" — No es nativo de MySQL; se emula combinando LEFT y RIGHT JOIN con UNION.
  • "CROSS JOIN" — Produce el producto cartesiano de dos tablas.
  • "SELF JOIN" — Une una tabla consigo misma usando alias.
  • "JOIN ... ON" — Especifica la condición de unión entre tablas.
  • "JOIN ... USING" — Une tablas usando columnas con el mismo nombre.
  • "UNION" — Combina resultados de dos consultas eliminando duplicados.
  • "UNION ALL" — Combina resultados de dos consultas manteniendo duplicados.
  • "INTERSECT" — No es nativo de MySQL; se emula con INNER JOIN o EXISTS.
  • "EXCEPT" — No es nativo de MySQL; se emula con LEFT JOIN y IS NULL o NOT EXISTS.
  • "EXISTS" — Devuelve verdadero si la subconsulta devuelve al menos una fila.
  • "NOT EXISTS" — Devuelve verdadero si la subconsulta no devuelve ninguna fila.
  • "ANY" — Compara un valor con cualquier valor devuelto por una subconsulta.
  • "ALL" — Compara un valor con todos los valores devueltos por una subconsulta.
  • "IN (SUBQUERY)" — Verifica si un valor está en el resultado de una subconsulta.
  • "SCALAR SUBQUERY" — Subconsulta que devuelve un único valor.
  • "CORRELATED SUBQUERY" — Subconsulta que referencia columnas de la consulta externa.
  • "NESTED SUBQUERY" — Subconsulta anidada dentro de otra subconsulta.
  • "WITH" — Define Common Table Expressions (CTE) temporales.
  • "CTE" — Expresión de tabla común que mejora la legibilidad de consultas complejas.
  • "RECURSIVE CTE" — CTE que se refiere a sí misma, útil para datos jerárquicos (MySQL 8.0+).
  • "CREATE VIEW" — Crea una vista virtual basada en una consulta.
  • "CREATE TABLE AS" — Crea una nueva tabla a partir del resultado de una consulta.
  • "INSERT INTO" — Inserta nuevas filas en una tabla.
  • "UPDATE" — Modifica datos existentes en una tabla.
  • "DELETE" — Elimina filas de una tabla.
  • "MERGE" — No es nativo de MySQL; se emula con INSERT ... ON DUPLICATE KEY UPDATE.
  • "UPSERT" — Operación de inserción o actualización (usando ON DUPLICATE KEY UPDATE en MySQL).

Window & SQL Avanzado

Funciones de ventana y análisis avanzado (soportadas principalmente desde MySQL 8.0).

  • "OVER()" — Define la ventana sobre la que opera una función de ventana.
  • "PARTITION BY" — Divide el conjunto de resultados en particiones para funciones de ventana.
  • "ORDER BY" — Ordena las filas dentro de cada partición de ventana.
  • "ROW_NUMBER()" — Asigna un número secuencial único a cada fila dentro de la partición.
  • "RANK()" — Asigna un ranking con posibles saltos en caso de empates.
  • "DENSE_RANK()" — Asigna un ranking sin saltos en caso de empates.
  • "NTILE()" — Divide las filas en un número especificado de grupos aproximadamente iguales.
  • "LAG()" — Accede al valor de una fila anterior dentro de la partición.
  • "LEAD()" — Accede al valor de una fila siguiente dentro de la partición.
  • "FIRST_VALUE()" — Devuelve el primer valor de la ventana.
  • "LAST_VALUE()" — Devuelve el último valor de la ventana.
  • "NTH_VALUE()" — Devuelve el valor de la n-ésima fila de la ventana.
  • "SUM() OVER()" — Calcula sumas acumuladas o por partición.
  • "AVG() OVER()" — Calcula promedios móviles o por partición.
  • "COUNT() OVER()" — Cuenta filas dentro de la ventana definida.
  • "MIN() OVER()" — Devuelve el valor mínimo dentro de la ventana.
  • "MAX() OVER()" — Devuelve el valor máximo dentro de la ventana.
  • "ROWS BETWEEN" — Define el marco de ventana basado en número de filas.
  • "RANGE BETWEEN" — Define el marco de ventana basado en valores de rango.
  • "UNBOUNDED PRECEDING" — Indica desde el inicio de la partición en el marco de ventana.
  • "CURRENT ROW" — Hace referencia a la fila actual dentro del marco de ventana.
  • "PERCENT_RANK()" — Calcula el ranking porcentual de una fila.
  • "CUME_DIST()" — Calcula la distribución acumulada de una fila.
  • "PERCENTILE_CONT()" — No es nativo de MySQL; se emula con otras funciones o procedimientos.
  • "PERCENTILE_DISC()" — No es nativo de MySQL; se emula con otras funciones o procedimientos.
  • "QUALIFY" — No es nativo de MySQL; se emula filtrando después de funciones de ventana con subconsultas.
  • "PIVOT" — No es nativo de MySQL; se emula con CASE WHEN y agregaciones.
  • "UNPIVOT" — No es nativo de MySQL; se emula con UNION ALL o funciones de JSON.
  • "JSON_EXTRACT()" — Extrae datos de un documento JSON.
  • "EXPLAIN" — Muestra el plan de ejecución de una consulta para optimización.