Связи в запросе SELECT
select * from City, Country
where Country.Capital=City.ID
select Country.Name,City.Name from City, Country
where Country.Capital=City.ID
select C.Name,Ci.Name from City Ci, Country C
where C.Capital=Ci.ID
Соединение по равенству
SELECT Country.Name AS Riik, City.Name AS Pealinn
FROM Country INNER JOIN City
ON Country.Capital = City.ID
SELECT C.Name AS Riik, Ci.Name AS Pealinn
FROM Country C INNER JOIN City Ci
ON C.Capital = Ci.ID
SELECT C.Name AS Riik, Ci.CityName AS Pealinn
FROM Country AS C LEFT JOIN City AS Ci
ON C.Capital = Ci.ID;
SELECT C.Name AS Riik, Ci.CityName AS Pealinn
FROM Country AS C RIGHT JOIN City AS Ci
ON C.Capital = Ci.ID;
Упражнения
- Покажите названия стран континента Европа, их столицы, количество населения проживающего в столице, отсортированные в порядке убывания населения
- учитывая только страны, имеющие столицу (см.ответ)
- учитывая все страны (см.ответ)
- Покажите страны, в которых название страны и название столицы совпадают (см.ответ)
- Найдите города, которые имеют одинаковые названия и находятся в одной стране. (см.ответ)
- Покажите, количество языков, на которых говорят в каждой стране (назывние страны, контитент, количество языков). Отсоритуйте результат по этому количеству. (см.ответ)
- Покажите, количество официальных языков в каждой стране (назывние страны, контитент, количество официальных языков). Отсоритуйте результат по этому количеству. (см.ответ)
- Покажите, на каких языках в каком количестве разговаривает население Азии. (см.ответ)
- Найдите для каждой страны какой процент (округлить до одного десятичного знака) от населения страны приходится на население столицы.
- учитывая только страны, имеющие столицу (см.ответ)
- учитывая все страны (см.ответ)
- Найдите общее, ссумарное количество человек, говорящих на каждом из языков, представленных в базе данных (см.ответ)
- Найдите общее, ссумарное количество человек для стран Европы, говорящих на каждом из языков, представленных в базе данных. (см.ответ)
- Вывести полную информацию обо всех странах, представленных в базе данных – название, континент, год обретения независимости, площадь, население, форма правления, столица, офицальный язык (языки) (см.ответ)
select C.Name as Riik,Ci.Name as Pealinn,Ci.Population as Pealinna_Elanikke_arv
from City Ci, Country C
where C.Capital=Ci.ID
order by Ci.Population desc
select Ci.Name as Linn,Ci.District as Maakond,C.Name as riik
from City as Ci left join Country as C on
C.Capital=Ci.ID
´


select C.Name,Ci.Name from City Ci, Country C
where C.Name=Ci.name;

SELECT A.ID, A.Name, A.CountryCode
FROM City as A, City As B,Country as C
WHERE A.CountryCode = C.Code and B.CountryCode = C.Code and A.Name = B.Name and A.ID <> B.ID
ORDER BY A.Name;

select C.Name as Riik,C.Continent as Kontinent,COUNT(Cl.Language) as Keelte_Arv
from Country as C,CountryLanguage as Cl
where Cl.CountryCode=C.code
group by C.Name,C.Continent
order by COUNT(Cl.Language) desc

select C.Name as Riik,C.Continent as Kontinent,COUNT(Cl.IsOfficial) as Keelte_Arv
from Country as C,CountryLanguage as Cl
where Cl.CountryCode=C.code and Cl.IsOfficial=1
group by C.Name,C.Continent
order by COUNT(Cl.IsOfficial) desc

select C.Name as Riik,Cl.Language as Keel,(Cl.Percentage*C.Population) as Inimeste_Arv
from Country as C inner join CountryLanguage as Cl
on Cl.CountryCode=C.code
where C.Continent='Asia'

select C.Name,C.Population as RiigiElanikud,Ci.Name as Pealinn,Ci.Population as LinnaElanikud,(cast(Ci.Population as decimal(28)) / cast(C.Population as decimal(28))) *100 as Protsent
from City Ci, Country C
where C.Capital=Ci.ID
select C.Name,C.Population as RiigiElanikud,Ci.Name as Pealinn,Ci.Population as LinnaElanikud,(cast(Ci.Population as decimal(28)) / cast(C.Population as decimal(28))) *100 as Protsent
from City Ci left join Country C on C.Capital=Ci.ID

h

select Cl.Language, SUM(Cl.Percentage * C.Population) as Total_Speakers
from Country C left join CountryLanguage Cl on C.Code=Cl.CountryCode
group by Cl.Language
order by Total_Speakers desc

select Cl.Language, SUM(Cl.Percentage * C.Population) as Total_Speakers
from Country C left join CountryLanguage Cl on C.Code=Cl.CountryCode
where C.Continent='Europe'
group by Cl.Language
order by Total_Speakers desc

select C.Name as Riik, C.Continent,C.SurfaceArea as Pindala,C.IndepYear as Iseseis_aasta,C.Population as Elanikude_Arv, C.GovernmentForm,C.HeadOfState,Ci.Name,Cl.Language as Keel
from City as Ci,Country as C, CountryLanguage as Cl
where Ci.ID=C.Capital and C.Code=Cl.CountryCode
