Narzędzia użytkownika

Narzędzia witryny


notatki:mysql_world

To jest stara wersja strony!


Przykłady zapytań MySQL na bazie World


Schemat bazy danych.

Baza world jest to przykładowa baza jeżeli wybierzemy to będzie instalowana razem ze środowiskiem MySQL community.

Zapytania można wykonać i zaobserwować wyniki za pomocą aplikacji: https://wiki.ostrowski.net.pl/php_mysql/world.php

Wyświetlenie 10 największych krajów według populacji

SELECT Name, Population
FROM Country
ORDER BY Population DESC
LIMIT 10;

Średnia populacja miast w Niemczech

SELECT AVG(Population) AS AvgCityPopulation
FROM City
WHERE CountryCode = 'DEU';

Lista języków urzędowych (IsOfficial = 'T') w krajach azjatyckich

SELECT cl.CountryCode, c.Name AS CountryName, cl.Language
FROM CountryLanguage cl
JOIN Country c ON cl.CountryCode = c.Code
WHERE cl.IsOfficial = 'T' AND c.Continent = 'Asia';

Suma populacji krajów z podziałem na kontynenty

SELECT Continent, SUM(Population) AS TotalPopulation
FROM Country
GROUP BY Continent
ORDER BY TotalPopulation DESC;

Miasta o populacji większej niż 1 milion w Ameryce Południowej

SELECT ci.Name AS City, ci.Population, co.Name AS Country
FROM City ci
JOIN Country co ON ci.CountryCode = co.Code
WHERE ci.Population > 1000000 AND co.Continent = 'South America'
ORDER BY ci.Population DESC;

Kraj z największą liczbą miast

SELECT co.Name, COUNT(ci.ID) AS CityCount
FROM Country co
JOIN City ci ON co.Code = ci.CountryCode
GROUP BY co.Name
ORDER BY CityCount DESC
LIMIT 1;

Kraje, gdzie język hiszpański nie jest językiem urzędowym, ale jest używany

SELECT c.Name, cl.Language
FROM CountryLanguage cl
JOIN Country c ON cl.CountryCode = c.Code
WHERE cl.Language = 'Spanish' AND cl.IsOfficial = 'F';

Kraje z populacją większą niż średnia populacja wszystkich krajów

SELECT Name, Population
FROM Country
WHERE Population > (SELECT AVG(Population) FROM Country);

Użycie CASE: klasyfikacja krajów według wielkości populacji

SELECT Name,
       Population,
       CASE 
           WHEN Population > 100000000 THEN 'Very Large'
           WHEN Population > 50000000 THEN 'Large'
           WHEN Population > 10000000 THEN 'Medium'
           ELSE 'Small'
       END AS PopulationCategory
FROM Country;

CTE (Common Table Expression) – kraje z językiem angielskim, posortowane wg populacji

WITH EnglishSpeakingCountries AS (
    SELECT CountryCode
    FROM CountryLanguage
    WHERE LANGUAGE = 'English' AND IsOfficial = 'T'
)
SELECT c.Name, c.Population
FROM Country c
JOIN EnglishSpeakingCountries esc ON c.Code = esc.CountryCode
ORDER BY c.Population DESC;
notatki/mysql_world.1747144022.txt.gz · ostatnio zmienione: 2025/05/13 15:47 przez administrator