Ejercicios SQL: Base de Datos WORLD
Guía para descarga y creación de la base de datos WORLD
1. Descargar el fichero world.sql
-
Dirígete al enlace proporcionado o al repositorio donde se encuentra el archivo
world.sql. En esta página localiza el ficherozipde la base de datosworldy descargalo.
-
Descarga el archivo y guárdalo en una carpeta accesible en tu ordenador, como una carpeta llamada
scriptsdentro de tu proyecto en VSCode.
2. Abrir el archivo en VSCode
- Abre VSCode y navega a la carpeta donde guardaste el archivo
world.sql. - Haz clic en el archivo
world.sqlpara abrirlo en el editor de VSCode.
3. Ejecutar el script world.sql
- En VSCode, selecciona todo el contenido del archivo (Ctrl+A o Cmd+A).
- Ejecuta las sentencias utilizando tu cliente SQL en VSCode:
- Si usas SQLTools, haz clic derecho en el editor y selecciona "Run Query".
- Asegúrate de que las sentencias se ejecutan correctamente.
4. Verificar que la base de datos fue creada
- Ejecuta el siguiente comando para verificar que la base de datos
worldexiste:
SHOW DATABASES; -- aseguraté que la base de datos `world` está en la lista
USE world;
SHOW TABLES;
/*
+-----------------+
| Tables_in_world |
+-----------------+
| city |
| country |
| countrylanguage |
+-----------------+
3 rows in set (0.00 sec)
*/
mysql> SELECT COUNT(*) FROM city;
/*
+----------+
| COUNT(*) |
+----------+
| 4079 |
+----------+
1 row in set (0.02 sec)
*/
mysql> SELECT COUNT(*) FROM country;
/*+----------+
| COUNT(*) |
+----------+
| 239 |
+----------+
1 row in set (0.00 sec)
*/
Ejercicios: SELECT FROM WHERE
Para los ejercicios crea un nuevo archivo SQL y escribe las consultas para cada uno de los siguientes ejercicios. Recuerda utiulizar los comentarios para identificar cada ejercicio.
aquí tienes dos ejemplos de consultas con comentarios...
-- Ejercicio 1
SELECT Name
FROM teachers
WHERE dept = 'IT';
/** Ejercicio 2 **/
select name
from teachers
where dept = 'IT' and salary > 50000;
Nivel Básico
-
1). Listado de países europeos: Selecciona el nombre y la región de los países donde el continente sea "Europe".
-
2). Población mayor a 100 millones: Selecciona el nombre de los países y su población donde esta sea mayor a 100,000,000.
-
3). Idiomas oficiales de Asia: Selecciona el nombre de los países y los idiomas oficiales donde el continente sea "Asia".
-
4). Países cuya población está entre 10 y 50 millones: Selecciona el nombre de los países donde la población esté entre 10,000,000 y 50,000,000.
-
5). Ciudades con nombres que comienzan con "A": Selecciona el nombre de las ciudades y sus países donde el nombre de la ciudad comience con la letra "A".
Nivel Intermedio
-
6). Países cuyo nombre contiene "land": Selecciona el nombre de los países donde el nombre contenga la cadena "land" (ignora mayúsculas/minúsculas).
-
7). Ciudades con nombres largos: Selecciona las ciudades donde el nombre tenga más de 10 caracteres. Usa una función de cadena para calcular la longitud.
-
8). Países con densidad poblacional alta: Calcula la densidad poblacional (población/superficie) de cada país y selecciona los países donde la densidad sea mayor a 200.
-
9). Población total por continente: Selecciona el continente y la suma total de la población de los países que pertenecen a él, utilizando un cálculo directo.
-
10). Países con nombres cortos: Selecciona el nombre de los países donde la longitud del nombre sea menor o igual a 5 caracteres.
Nivel Avanzado
-
11). Ciudades con población entre valores específicos: Selecciona el nombre y la población de las ciudades cuya población esté entre 500,000 y 1,000,000.
-
12). Países en orden alfabético: Selecciona el nombre de los países y ordénalos alfabéticamente.
-
13). Países por población descendente: Selecciona el nombre y la población de los países, ordenados por población en orden descendente.
-
14). Primeras ciudades por población: Selecciona las 10 ciudades más pobladas y sus países.
-
15). Fecha de independencia conocida: Selecciona el nombre de los países donde la fecha de independencia no sea NULL. Usa una función de fecha para mostrar solo el año.
-
16). Países donde la superficie es mayor que 1 millón: Selecciona el nombre y la superficie de los países donde la superficie sea mayor a 1,000,000.
-
17). Países con nombres terminados en "ia": Selecciona el nombre de los países donde el nombre termine en "ia".
-
18). Superficie de países en Europa: Selecciona el nombre y la superficie de los países europeos y ordénalos de mayor a menor superficie.
-
19). Ciudades con nombre que contiene "New": Selecciona las ciudades donde el nombre contenga "New".
-
20). Países cuya población es múltiplo de 10 millones: Selecciona el nombre de los países donde la población sea divisible entre 10,000,000.
Ejercicios: GROUP BY
Nivel Básico
-
1). Población total por continente: Calcula la suma de la población para cada continente y selecciona el continente y la población total.
-
2). Superficie media por continente: Calcula el área promedio de los países para cada continente.
-
3). Número de idiomas por continente: Cuenta cuántos idiomas oficiales existen en cada continente.
-
4). Ciudades por país: Calcula el número de ciudades para cada país y selecciona el país y el número de ciudades.
-
5). Idiomas oficiales por país: Cuenta cuántos idiomas oficiales tiene cada país.
Nivel Intermedio
-
6). Población máxima por continente: Calcula la población máxima de los países en cada continente.
-
7). Superficie total por continente: Calcula la superficie total de los países en cada continente.
-
8). Población media por continente: Calcula la población promedio de los países en cada continente.
-
9). Idiomas más frecuentes: Cuenta cuántos países tienen cada idioma oficial y selecciona el idioma y su frecuencia.
-
10). Número de países por continente: Cuenta cuántos países hay en cada continente.
Nivel Avanzado
-
11). Países y ciudades por continente: Calcula el número total de países y ciudades en cada continente.
-
12). Idiomas y población promedio por continente: Calcula el número de idiomas oficiales y la población promedio por continente.
Soluciones
soluciones SELECT, FROM, WHERE
Nivel básico
-- Ejercicio 1
SELECT Name, Region FROM Country WHERE Continent = 'Europe';
-- Ejercicio 2
SELECT Name, Population FROM Country WHERE Population > 100000000;
-- Ejercicio 3
SELECT Country.Name, Language FROM CountryLanguage JOIN Country ON Country.Code = CountryLanguage.CountryCode WHERE Country.Continent = 'Asia';
-- Ejercicio 4
SELECT Name FROM Country WHERE Population BETWEEN 10000000 AND 50000000;
-- Ejercicio 5
SELECT Name, CountryCode FROM City WHERE Name LIKE 'A%';
Nivel intermedio
-- Ejercicio 6
SELECT Name FROM Country WHERE Name LIKE '%land%';
-- Ejercicio 7
SELECT Name FROM City WHERE LENGTH(Name) > 10;
-- Ejercicio 8
SELECT Name, (Population / SurfaceArea) AS Density FROM Country WHERE (Population / SurfaceArea) > 200;
-- Ejercicio 9
SELECT Continent, SUM(Population) AS TotalPopulation FROM Country GROUP BY Continent;
-- Ejercicio 10
SELECT Name FROM Country WHERE LENGTH(Name) <= 5;
Nivel avanzado
-- Ejercicio 11
SELECT Name, Population FROM City WHERE Population BETWEEN 500000 AND 1000000;
-- Ejercicio 12
SELECT Name FROM Country ORDER BY Name;
-- Ejercicio 13
SELECT Name, Population FROM Country ORDER BY Population DESC;
-- Ejercicio 14
SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 10;
-- Ejercicio 15
SELECT Name, YEAR(IndependenceYear) AS YearOfIndependence FROM Country WHERE IndependenceYear IS NOT NULL;
-- Ejercicio 16
SELECT Name, SurfaceArea FROM Country WHERE SurfaceArea > 1000000;
-- Ejercicio 17
SELECT Name FROM Country WHERE Name LIKE '%ia';
-- Ejercicio 18
SELECT Name, SurfaceArea FROM Country WHERE Continent = 'Europe' ORDER BY SurfaceArea DESC;
-- Ejercicio 19
SELECT Name FROM City WHERE Name LIKE '%New%';
-- Ejercicio 20
SELECT Name FROM Country WHERE Population % 10000000 = 0; ```
Soluciones ejercicios: GROUP BY
Nivel básico
-- Ejercicio 1
SELECT Continent, SUM(Population) AS TotalPopulation
FROM Country
GROUP BY Continent;
-- Ejercicio 2
SELECT Continent, AVG(SurfaceArea) AS AverageArea
FROM Country
GROUP BY Continent;
-- Ejercicio 3
SELECT Continent, COUNT(DISTINCT Language) AS TotalLanguages
FROM CountryLanguage
JOIN Country ON Country.Code = CountryLanguage.CountryCode
GROUP BY Continent;
-- Ejercicio 4
SELECT CountryCode, COUNT(Name) AS CityCount
FROM City
GROUP BY CountryCode;
-- Ejercicio 5
SELECT CountryCode, COUNT(Language) AS LanguageCount
FROM CountryLanguage
GROUP BY CountryCode;
Nivel intermedio
-- Ejercicio 6
SELECT Continent, MAX(Population) AS MaxPopulation
FROM Country
GROUP BY Continent;
-- Ejercicio 7
SELECT Continent, SUM(SurfaceArea) AS TotalSurface
FROM Country
GROUP BY Continent;
-- Ejercicio 8
SELECT Continent, AVG(Population) AS AveragePopulation
FROM Country
GROUP BY Continent;
-- Ejercicio 9
SELECT Language, COUNT(CountryCode) AS CountryCount
FROM CountryLanguage
GROUP BY Language;
-- Ejercicio 10
SELECT Continent, COUNT(Name) AS CountryCount
FROM Country
GROUP BY Continent;
Nivel avanzado
-- Ejercicio 11
SELECT Continent, COUNT(Name) AS TotalCountries, COUNT(DISTINCT City.ID) AS TotalCities
FROM Country
JOIN City ON Country.Code = City.CountryCode
GROUP BY Continent;
-- Ejercicio 12
SELECT Continent, COUNT(Language) AS TotalLanguages, AVG(Population) AS AveragePopulation
FROM CountryLanguage
JOIN Country ON Country.Code = CountryLanguage.CountryCode
GROUP BY Continent;