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

  1. Dirígete al enlace proporcionado o al repositorio donde se encuentra el archivo world.sql. En esta página localiza el fichero zip de la base de datos world y descargalo. Imagen página HTML

  2. Descarga el archivo y guárdalo en una carpeta accesible en tu ordenador, como una carpeta llamada scripts dentro de tu proyecto en VSCode.

word.sql enlace opcional


2. Abrir el archivo en VSCode

  1. Abre VSCode y navega a la carpeta donde guardaste el archivo world.sql.
  2. Haz clic en el archivo world.sql para abrirlo en el editor de VSCode.

3. Ejecutar el script world.sql

  1. En VSCode, selecciona todo el contenido del archivo (Ctrl+A o Cmd+A).
  2. Ejecuta las sentencias utilizando tu cliente SQL en VSCode:
  3. Si usas SQLTools, haz clic derecho en el editor y selecciona "Run Query".
  4. Asegúrate de que las sentencias se ejecutan correctamente.

4. Verificar que la base de datos fue creada

  1. Ejecuta el siguiente comando para verificar que la base de datos world existe:
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;