Brak tytułu
Data utworzenia: 2025-01-16 12:10:32
Dobrze, przygotuję zapytania SQL w MySQL na podstawie pytań z obrazka. Założę przykładową strukturę bazy danych z trzema tabelami:
1. countries (kraje):
• id (INT, PRIMARY KEY)
• name (VARCHAR)
• population (BIGINT)
• area (FLOAT) – powierzchnia kraju w km²
• independence_year (YEAR) – rok uzyskania niepodległości
• eu_member (BOOLEAN) – czy kraj należy do UE
2. cities (miasta):
• id (INT, PRIMARY KEY)
• name (VARCHAR)
• country_id (INT, FOREIGN KEY do countries.id)
• population (BIGINT)
• is_capital (BOOLEAN)
3. languages (języki):
• id (INT, PRIMARY KEY)
• country_id (INT, FOREIGN KEY do countries.id)
• language (VARCHAR)
• official (BOOLEAN) – czy język jest oficjalny
Przykładowe zapytania SQL:
1. Jakie są wszystkie kraje w bazie danych?
SELECT name FROM countries;
2. Jakie są stolice krajów w bazie danych?
SELECT c.name AS country, ci.name AS capital
FROM countries c
JOIN cities ci ON c.id = ci.country_id
WHERE ci.is_capital = 1;
3. Ile krajów jest w bazie danych?
SELECT COUNT(*) AS number_of_countries FROM countries;
4. Jakie są populacje poszczególnych krajów?
SELECT name, population FROM countries;
5. Kiedy dany kraj uzyskał niepodległość?
SELECT name, independence_year FROM countries WHERE independence_year IS NOT NULL;
6. Jaka jest powierzchnia największych krajów w bazie danych?
SELECT name, area FROM countries ORDER BY area DESC LIMIT 5;
7. Jakie miasta znajdują się w danym kraju?
SELECT c.name AS country, ci.name AS city
FROM countries c
JOIN cities ci ON c.id = ci.country_id;
8. Jaka jest populacja największych miast w bazie danych?
SELECT name, population FROM cities ORDER BY population DESC LIMIT 5;
9. Które miasto ma największą populację w bazie danych?
SELECT name, population FROM cities ORDER BY population DESC LIMIT 1;
10. Jakie języki są używane w danym kraju?
SELECT c.name AS country, l.language
FROM countries c
JOIN languages l ON c.id = l.country_id;
11. Które kraje mają najwięcej oficjalnych języków?
SELECT c.name, COUNT(*) AS number_of_languages
FROM countries c
JOIN languages l ON c.id = l.country_id
WHERE l.official = 1
GROUP BY c.name
ORDER BY number_of_languages DESC;
12. Jakie są średnie wynagrodzenia w różnych krajach?
(Zakładając, że jest tabela np. average_salaries z country_id i average_salary):
SELECT c.name AS country, s.average_salary
FROM countries c
JOIN average_salaries s ON c.id = s.country_id;
13. Jaka jest lista krajów, które należą do Unii Europejskiej?
SELECT name FROM countries WHERE eu_member = 1;
14. Ile miast w bazie danych ma populację większą niż milion?
SELECT COUNT(*) AS cities_over_million FROM cities WHERE population > 1000000;
15. Które miasto w danym kraju jest najwięcej zaludnione?
SELECT ci.name, ci.population
FROM cities ci
JOIN countries c ON ci.country_id = c.id
WHERE c.name = 'NazwaKraju'
ORDER BY ci.population DESC LIMIT 1;
16. Jakie są największe miasta w Azji pod względem populacji?
(Zakładając, że tabela countries ma kolumnę continent):
SELECT ci.name, ci.population
FROM cities ci
JOIN countries c ON ci.country_id = c.id
WHERE c.continent = 'Asia'
ORDER BY ci.population DESC LIMIT 5;
17. Które kraje mają największy procent ludności mówiącej w jednym języku?
SELECT c.name, l.language, (COUNT(l.language) / c.population) * 100 AS percentage
FROM countries c
JOIN languages l ON c.id = l.country_id
WHERE l.official = 1
GROUP BY c.name, l.language
ORDER BY percentage DESC;
18. Jakie są wyniki dotyczące gospodarki (np. PKB)?
(Zakładając, że jest tabela economy z country_id i gdp):
SELECT c.name AS country, e.gdp
FROM countries c
JOIN economy e ON c.id = e.country_id;
19. Jakie są największe wyspy lub archipelagi według powierzchni?
(Zakładając tabelę islands z name i area):
SELECT name, area FROM islands ORDER BY area DESC LIMIT 5;
20. Które miasta są stolicami krajów, które mają w nazwie literę “A”?
SELECT ci.name AS capital
FROM cities ci
JOIN countries c ON ci.country_id = c.id
WHERE ci.is_capital = 1 AND c.name LIKE '%A%';
Jeśli chcesz, mogę przygotować skrypt SQL do stworzenia tabel i wypełnienia ich przykładowymi danymi. Daj znać!
Powrót