SQL Basics Cheat Sheet
SQL, or Structured Query Language, es un lenguaje para FULL JOIN
comunicarse con bases de datos. Permite seleccionar datos FILTERING THE OUTPUT QUERYING MULTIPLE TABLES
FULL JOIN (or explicitly FULL OUTER JOIN) devuelve todas
específicos y crear informes complejos. Hoy en día, SQL es COMPARISON OPERATORS INNER JOIN las filas de ambas tablas; si no hay ninguna fila coincidente
un lenguaje de datos universal. Se utiliza en prácticamente Obtener los nombres de las ciudades que tienen una JOIN (or explicitly INNER JOIN) devuelve filas que tienen en la segunda tabla, se devuelven valores NULLS.
todas las tecnologías que procesan datos. calificación superior a 3: valores coincidentes en ambas tablas. SELECT [Link], [Link]
SELECT name SELECT [Link], [Link] FROM city
SAMPLE DATA FROM city
WHERE rating > 3;
FROM city
[INNER] JOIN country
FULL [OUTER] JOIN country
ON city.country_id = [Link];
COUNTRY ON city.country_id = [Link]; CITY COUNTRY
id name population area CITY COUNTRY id name country_id id name
id name country_id id name 1 Paris 1 1 France
1 France 66600000 640680
Obtener nombres de ciudades que no sean ni Berlín ni 1 Paris 1 1 France 2 Berlin 2 2 Germany
2 Germany 80700000 357000 Madrid: 2 Berlin 2 2 Germany 3 Warsaw 4 NULL NULL
SELECT name
... ... ... ... 3 Warsaw 4 3 Iceland NULL NULL NULL 3 Iceland
FROM city
CITY WHERE name != 'Berlin'
id name country_id population rating AND name != 'Madrid';
1 Paris 1 2243000 5 LEFT JOIN
2 Berlin 2 3460000 3 LEFT JOIN devuelve todas las filas de la
tabla izquierda con las filas CROSS JOIN
... ... ... ... ... TEXT OPERATORS correspondientes de la tabla derecha. Si no CROSS JOIN devuelve todas las combinaciones
Obtener nombres de ciudades que comiencen con una 'P' o hay ninguna fila coincidente, se devuelven posibles de filas de ambas tablas. Hay dos
terminen con una 's': valores NULL como valores de la segunda sintaxis disponibles.
QUERYING SINGLE TABLE SELECT name tabla. SELECT [Link], [Link]
SELECT [Link], [Link]
Obtener todas las columnas de la tabla de países: FROM city FROM city
SELECT * WHERE name LIKE 'P%' FROM city
CROSS JOIN country;
FROM country; OR name LIKE '%s'; LEFT JOIN country
ON city.country_id = [Link]; SELECT [Link], [Link]
CITY COUNTRY
Obtener las columnas de identificación y nombre de la tabla FROM city, country;
id name country_id id name
de ciudades: CITY COUNTRY
SELECT id, name Obtener nombres de ciudades que comiencen con cualquier 1 Paris 1 1 France id name country_id id name
FROM city; letra seguida de "ublin" (como Dublín en Irlanda o Lublin en 2 Berlin 2 2 Germany 1 Paris 1 1 France
Polonia): 3 Warsaw 4 NULL NULL 1 Paris 1 2 Germany
Obtener los nombres de las ciudades ordenados por la SELECT name 2 Berlin 2 1 France
columna de calificación en el orden ascendente FROM city
2 Berlin 2 2 Germany
predeterminado: WHERE name LIKE '_ublin';
SELECT name
FROM city
ORDER BY rating [ASC];
OTHER OPERATORS
Obtener los nombres de las ciudades ordenados por la Obtener los nombres de las ciudades que tienen una RIGHT JOIN NATURAL JOIN
columna de calificación en orden DESCENDENTE: población entre 500K and 5M: RIGHT JOIN devuelve todas las filas de la NATURAL JOIN unirá las tablas por todas las
SELECT name SELECT name tabla derecha con las filas columnas con el mismo nombre.
FROM city FROM city correspondientes de la tabla izquierda. Si
no hay ninguna fila coincidente, se SELECT [Link], [Link]
ORDER BY rating DESC; WHERE population BETWEEN 500000 AND 5000000; FROM city
devuelven valores NULL como valores de la
tabla izquierda. NATURAL JOIN country;
ALIASES SELECT [Link], [Link] CITY COUNTRY
FROM city country_id id name name id
COLUMNS Obtener los nombres de las ciudades que no tienen ningún RIGHT JOIN country 6 6 San Marino San Marino 6
SELECT name AS city_name valor de calificación: ON city.country_id = [Link]; 7 7 Vatican City Vatican City 7
FROM city; SELECT name CITY COUNTRY 5 6 Greece Greece 6
FROM city id name country_id id name 10 11 Monaco Monaco 10
WHERE rating IS NOT NULL;
TABLES 1 Paris 1 1 France NATURAL JOIN utiliza estas columnas para
2 Berlin 2 2 Germany hacer coincidir filas: [Link], [Link],
SELECT [Link], [Link]
FROM city AS ci NULL NULL NULL 3 Iceland [Link], [Link]. NATURAL JOIN se
JOIN country AS co Obtener los nombres de las ciudades que se encuentran en utiliza muy raramente en la práctica.
ON ci.country_id = [Link]; países con identificadores 1, 4, 7, or 8:
SELECT name
FROM city
WHERE country_id IN (1, 4, 7, 8);
Una subconsulta es una consulta que está anidada dentro de otra consulta o columnas correspondientes pueden ser diferentes.
AGGREGATION AND GROUPING dentro de otra subconsulta. Existen distintos tipos de subconsultas.
GROUP BY agrupa filas que tienen los mismos valores en
columnas específicas. Calcula resúmenes (agregados) para SINGLE VALUE CYCLING SKATING
cada combinación única de valores. La subconsulta más simple devuelve exactamente una columna id name country id name country
CITY y exactamente una fila. Se puede utilizar con los
1 YK DE 1 YK DE
id name country_id operadores de comparación =, <, <=, >, or >=.
Esta consulta busca ciudades con la misma calificación que París: 2 ZG DE 2 DF DE
1 Paris 1 SELECT name
CITY 3 WT PL 3 AK PL
101 Marseille 1 FROM city
country_id count ... ... ... ... ... ...
WHERE rating = (
102 Lyon 1
1 3 SELECT rating
2 Berlin 2
2 3 FROM city UNION
103 Hamburg 2 WHERE name = 'Paris' UNION combina los resultados de dos conjuntos de resultados y
4 2 );
104 Munich 2 elimina los duplicados. UNION ALL
no elimina las filas duplicadas.
3 Warsaw 4
MULTIPLE VALUES
105 Cracow 4 Una subconsulta también puede devolver varias columnas o Esta consulta muestra ciclistas alemanes junto con patinadores alemanes:
varias filas. Estas subconsultas se pueden utilizar con los SELECT name
operadores IN, EXISTS, ALL, or ANY. FROM cycling
AGGREGATE FUNCTIONS Esta consulta busca ciudades en países con una población superior a 20M: WHERE country = 'DE'
avg(expr) -valor promedio de las filas dentro del grupo SELECT name UNION / UNION ALL
count(expr) − count recuento de valores para las filas dentro del grupo FROM city SELECT name
max(expr) − valor máximo dentro WHERE country_id IN ( FROM skating
del grupo SELECT country_id WHERE country = 'DE';
min(expr) − valor mínimo dentro del grupo FROM country
sum(expr) − suma de valores dentro WHERE population > 20000000
del grupo
);
INTERSECT
EXAMPLE QUERIES INTERSECT devuelve solo las filas que aparecen en ambos
Descubra el número de ciudades:
CORRELATED conjuntos de resultados.
Una subconsulta correlacionada hace referencia a las tablas introducidas en la
SELECT COUNT(*)
consulta externa. Una subconsulta correlacionada .. Esta consulta muestra ciclistas alemanes que también son patinadores alemanes al
FROM city; mismo tiempo:
depende de la consulta externa. No se puede ejecutar de forma independiente
de esta. SELECT name
Descubra el número de ciudades con calificaciones no nulas:
Esta consulta busca ciudades con una población mayor que la población FROM cycling
SELECT COUNT(rating)
promedio del país: WHERE country = 'DE'
FROM city;
SELECT * INTERSECT
FROM city main_city SELECT name
Descubra el número de valores distintivos de cada país:
WHERE population > ( FROM skating
SELECT COUNT(DISTINCT country_id)
SELECT AVG(population) WHERE country = 'DE';
FROM city;
FROM city average_city
WHERE average_city.country_id = main_city.country_id
Descubra las poblaciones más pequeñas y más grandes de los países: );
EXCEPT
SELECT MIN(population), MAX(population)
EXCEPT devuelve solo las filas que aparecen en el primer
FROM country; conjunto de resultados pero no en el segundo.
Descubra la población total de las ciudades de los respectivos países: Esta consulta encuentra países que tienen al menos una ciudad:
Esta consulta muestra ciclistas alemanes a menos que también sean patinadores
SELECT name
SELECT country_id, SUM(population) alemanes al mismo tiempo:
FROM city FROM country SELECT name
GROUP BY country_id; WHERE EXISTS ( FROM cycling
SELECT * WHERE country = 'DE'
Descubra la calificación promedio de las ciudades en los respectivos países si el FROM city EXCEPT / MINUS
promedio es superior a 3.0: WHERE country_id = [Link] SELECT name
SELECT country_id, AVG(rating) );
FROM skating
FROM city
SET OPERATIONS
WHERE country = 'DE';
GROUP BY country_id
HAVING AVG(rating) >3.0; Las operaciones de conjunto se utilizan para combinar los resultados de dos o
más consultas en un único resultado. Las consultas combinadas deben devolver
SUBQUERIES la misma cantidad de columnas y tipos de datos compatibles. Los nombres de las
[Link] is owned by Vertabelo SA
Try out the interactive SQL Basics course at [Link], and check out our other SQL courses. [Link] | CC BY-NC-ND Vertabelo SA