0% encontró este documento útil (0 votos)
8 vistas2 páginas

Chuleta SQL: Consultas y Operaciones

SQL es un lenguaje de consulta estructurado utilizado para interactuar con bases de datos, permitiendo seleccionar datos y crear informes complejos. El documento proporciona ejemplos de diversas operaciones SQL, incluyendo JOINs, subconsultas, funciones de agregación y operaciones de conjuntos. También se incluyen consultas específicas para recuperar información sobre ciudades y países, así como la manipulación de datos a través de filtros y agrupaciones.

Cargado por

AlanYagami
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
8 vistas2 páginas

Chuleta SQL: Consultas y Operaciones

SQL es un lenguaje de consulta estructurado utilizado para interactuar con bases de datos, permitiendo seleccionar datos y crear informes complejos. El documento proporciona ejemplos de diversas operaciones SQL, incluyendo JOINs, subconsultas, funciones de agregación y operaciones de conjuntos. También se incluyen consultas específicas para recuperar información sobre ciudades y países, así como la manipulación de datos a través de filtros y agrupaciones.

Cargado por

AlanYagami
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Chuleta de SQL

SQL, o Structured Query Language (lenguaje de consulta FULL JOIN


estructurada), es un lenguaje para comunicarse con bases de FILTRAR RESULTADOS CONSULTAR A VARIAS TABLAS
FULL JOIN (o explícitamente FULL OUTER JOIN)
datos. Se utiliza para seleccionar datos específicos y crear OPERADORES DE COMPARACIÓN INNER JOIN devuelve todas las filas de ambas tablas. Si no coincide
informes complejos. Hoy en día, SQL es un lenguaje de datos Recuperar los nombres de las ciudades cuya clasificación sea JOIN (o explícitamente INNER JOIN) devuelve las filas en ninguna fila de la otra tabla, devuelve valores NULL.
universal y se utiliza en prácticamente todas las tecnologías superior a 3: las que coinciden los valores en ambas tablas. SELECT [Link], [Link]
que procesan datos. SELECT nombre SELECT [Link], [Link] FROM ciudad
FROM ciudad FROM ciudad FULL [OUTER] JOIN pais
EJEMPLO DE DATOS WHERE clasificacion > 3; [INNER] JOIN pais ON ciudad.id_pais = [Link];
ON ciudad.id_pais = [Link]; CIUDAD PAIS
PAIS
CIUDAD PAIS id nombre id_pais id nombre
id nombre poblacion superficie Recuperar los nombres de las ciudades que no sean ni Berlín
id nombre id_pais id nombre 1 París 1 1 Francia
ni Madrid:
1 Francia 66600000 640680 1 París 1 1 Francia 2 Berlín 2 2 Alemania
SELECT nombre
2 Alemania 80700000 357000 2 Berlín 2 2 Alemania 3 Varsovia 4 NULL NULL
FROM ciudad
3 Varsovia 4 3 Islandia
... ... ... ... WHERE nombre != 'Berlín' NULL NULL NULL 3 Islandia
AND nombre != 'Madrid';
CIUDAD
id nombre id_pais poblacion clasificacion
CROSS JOIN
1 París 1 2243000 5 OPERADORES DE TEXTO CROSS JOIN devuelve todas las combinaciones posibles de
2 Berlín 2 3460000 3 Recuperar los nombres de las ciudades que empiecen por "P" las filas de las dos tablas. Se puede usar con dos sintaxis
o terminen por "s": LEFT JOIN diferentes.
... ... ... ... ... SELECT nombre LEFT JOIN devuelve todas las filas de la tabla izquierda con SELECT [Link], [Link]
FROM ciudad las filas correspondientes de la tabla derecha. Si no coincide FROM ciudad
CONSULTAR A UNA SOLA TABLA WHERE nombre LIKE 'P%' ninguna fila de la tabla derecha, devuelve NULL como CROSS JOIN pais;
OR nombre LIKE '%s'; valores de la tabla derecha.
Recuperar todas las columnas de la tabla pais:
SELECT [Link], [Link] SELECT [Link], [Link]
SELECT *
FROM ciudad FROM ciudad, pais;
FROM pais; Recuperar los nombres de las ciudades que empiecen por LEFT JOIN pais CIUDAD PAIS
Recuperar las columnas id y nombre de la tabla ciudad: cualquier letra seguida de "adrid" (como Madrid, de España): ON ciudad.id_pais = [Link]; id nombre id_pais id nombre
SELECT id, nombre SELECT nombre CIUDAD PAIS
1 París 1 1 Francia
FROM ciudad; FROM ciudad
id nombre id_pais id nombre
WHERE nombre LIKE '_adrid'; 1 París 1 2 Alemania
1 París 1 1 Francia
Recuperar los nombres de las ciudades ordenados por la 2 Berlín 2 1 Francia
2 Berlín 2 2 Alemania
columna clasificacion en orden ascendente (ASC): 2 Berlín 2 2 Alemania
SELECT nombre OTROS OPERADORES 3 Varsovia 4 NULL NULL

FROM ciudad Recuperar los nombres de las ciudades con poblaciones


ORDER BY clasificacion [ASC]; comprendidas entre 500.000 y 5 millones de habitantes: NATURAL JOIN
SELECT nombre NATURAL JOIN une las tablas por todas las columnas que
Recuperar los nombres de las ciudades ordenados por la
FROM ciudad tienen el mismo nombre.
columna clasificacion en orden descendente (DESC):
WHERE poblacion BETWEEN 500000 AND SELECT [Link], [Link]
SELECT nombre RIGHT JOIN
5000000; FROM ciudad
FROM ciudad
RIGHT JOIN devuelve todas las filas de la tabla derecha NATURAL JOIN pais;
ORDER BY clasificacion DESC;
con las filas correspondientes de la tabla izquierda. Si no CIUDAD PAIS
Recuperar los nombres de las ciudades que tienen un valor coincide ninguna fila de la tabla izquierda, devuelve NULL
ALIAS en la clasificación: como valores de la tabla izquierda.
id_pais
6
id
6
nombre
San Marino
nombre
San Marino
id
6
SELECT nombre SELECT [Link], [Link]
COLUMNAS FROM ciudad 7 7 Ciudad del Ciudad del 7
FROM ciudad Vaticano Vaticano
SELECT nombre AS nombre_ciudad WHERE clasificacion IS NOT NULL; RIGHT JOIN pais 5 9 Grecia Grecia 9
FROM ciudad;
ON ciudad.id_pais = [Link];
10 11 Mónaco Mónaco 10
TABLAS Recuperar los nombres de las ciudades situadas en países
CIUDAD PAIS
NATURAL JOIN utilizó las siguientes columnas para
id nombre id_pais id nombre
SELECT [Link], [Link] cuyo ID es 1, 4, 7 u 8: emparejar las filas:
1 París 1 1 Francia
FROM ciudad AS ci SELECT nombre [Link], [Link], [Link],
JOIN pais AS pa FROM ciudad 2 Berlín 2 2 Alemania [Link].
ON ci.id_pais = [Link]; WHERE id_pais IN (1, 4, 7, 8); NULL NULL NULL 3 Islandia En la práctica, NATURAL JOIN rara vez se utiliza.
Chuleta de SQL
AGREGAR Y AGRUPAR SUBCONSULTAS OPERACIONES DE CONJUNTOS
GROUP BY agrupa las filas que tienen los mismos valores en columnas Una subconsulta es una consulta anidada en otra consulta o en otra subconsulta. Las operaciones de conjuntos se utilizan para combinar los resultados de dos o más
especificadas. Genera resúmenes (agregados) para cada combinación única de Existen diferentes tipos de subconsultas. consultas en un único resultado. Las consultas combinadas deben devolver el
valores. mismo número de columnas y tipos de datos compatibles. Los nombres de las
CIUDAD columnas correspondientes pueden ser diferentes.
VALOR ÚNICO
id nombre id_pais CICLISMO PATINAJE
Es la subconsulta más sencilla, que devuelve exactamente una columna y una fila.
1 París 1 Puede utilizarse con los operadores de comparación =, <, <=, > o >=. id nombre pais id nombre pais
CIUDAD La siguiente consulta se utiliza para buscar ciudades con la misma clasificación que
101 Marsella 1 1 YK DE 1 YK DE
id_pais cantidad París:
102 Lyon 1 2 ZG DE 2 DF DE
SELECT nombre
1 3
2 Berlín 2 FROM ciudad 3 WT PL 3 AK PL
2 3 WHERE clasificacion = (
103 Hamburgo 2 ... ... ... ... ... ...
4 2 SELECT clasificacion
104 Múnich 2 FROM ciudad UNION
3 Varsovia 4 WHERE nombre = 'París' UNION combina los resultados de dos conjuntos de resultados y excluye los
); duplicados. UNION ALL no excluye las filas duplicadas.
105 Cracovia 4
Esta consulta muestra los ciclistas alemanes y los patinadores alemanes:
FUNCIONES DE AGREGADO VARIOS VALORES SELECT nombre
avg(expr) - valor medio de las filas del grupo Las subconsultas también pueden devolver varias columnas o varias filas. En estas FROM ciclismo
count(expr) - número de valores de las filas del grupo subconsultas pueden utilizarse los operadores IN, EXISTS, ALL o ANY. WHERE pais = 'DE'
max(expr) - valor máximo del grupo Esta consulta busca ciudades en países con más de 20 millones de habitantes: UNION / UNION ALL
min(expr) - valor mínimo del grupo SELECT nombre SELECT nombre
sum(expr) - suma de los valores del grupo FROM ciudad FROM patinaje
WHERE id_pais IN ( WHERE pais = 'DE';
SELECT id_pais
EJEMPLOS DE CONSULTAS
Conocer el número de ciudades:
FROM pais INTERSECT
WHERE poblacion > 20000000 INTERSECT devuelve sólo las filas que aparecen en ambos conjuntos de
SELECT COUNT(*)
); resultados.
FROM ciudad;
Esta consulta muestra los ciclistas alemanes que también son patinadores
Conocer el número de ciudades con una valoración que no sea nula: SUBCONSULTA CORRELACIONADA alemanes:
SELECT COUNT(clasificacion) Las subconsultas correlacionadas consultan a las tablas insertadas en la consulta SELECT nombre
FROM ciudad; externa. Las subconsultas correlacionadas dependen de la consulta externa. No FROM ciclismo
pueden ejecutarse de forma independiente, sin la consulta externa. WHERE pais = 'DE'
Conocer el número de valores distintos de los países:
Esta consulta busca las ciudades cuya población sea superior a la población media INTERSECT
SELECT COUNT(DISTINCT id_pais)
del país: SELECT nombre
FROM ciudad;
SELECT * FROM patinaje
FROM ciudad ciudad_principal WHERE pais = 'DE';
Conocer los países con menor y mayor población:
WHERE poblacion > (
SELECT MIN(poblacion), MAX(poblacion)
FROM pais;
SELECT AVG(poblacion) EXCEPT
FROM ciudad ciudad_media EXCEPT devuelve sólo las filas que aparecen en el primer conjunto de resultados,
WHERE ciudad_media.id_pais = ciudad_principal.id_pais pero no aparecen en el segundo conjunto de resultados.
Conocer la población total de las ciudades en sus respectivos países:
);
SELECT id_pais, SUM(poblacion)
Esta consulta muestra los ciclistas alemanes, siempre que no sean patinadores
FROM ciudad
alemanes:
GROUP BY id_pais; Esta consulta busca países con, al menos, una ciudad:
SELECT nombre
SELECT nombre
FROM ciclismo
Conocer la clasificación media de las ciudades en sus respectivos países, si la media FROM pais
WHERE pais = 'DE'
es superior a 3,0: WHERE EXISTS (
EXCEPT / MINUS
SELECT id_pais, AVG(clasificacion) SELECT *
SELECT nombre
FROM ciudad FROM ciudad
FROM patinaje
GROUP BY id_pais WHERE id_pais = [Link]
WHERE pais = 'DE';
HAVING AVG(clasificacion) > 3.0; );

También podría gustarte