SELECT from world/ru

From SQLZoo
Language:Project:Language policy English
namecontinentarea populationgdp
AfghanistanAsia6522302550010020343000000
AlbaniaEurope28748 2831741 12960000000
AlgeriaAfrica2381741 37100000 188681000000
AndorraEurope46878115 3712000000
AngolaAfrica1246700 20609294 100990000000
...


В этом уроке вы будете использовать команду SELECT на таблице world:

Начало

Прочитайте информацию об этой таблице. Посмотрите на результат выполнения этой SQL-команды, которая выводит название (name), континент (continent) и население (population) всех стран.

SELECT name, continent, population FROM world
SELECT name, continent, population FROM world

Большие страны

Как использовать WHERE для фильтрации записей. Выведите названия стран, население которых составляет как минимум 200 миллионов. 200 миллионов – это 200000000, двойка с восьмью нулями.

SELECT name FROM world
WHERE population = 64105700
SELECT name FROM world
WHERE population>200000000

ВВП на душу населения

Выведите название name и ВВП на душу населения для стран с населением population как минимум 200 миллионов.

ВВП на душу населения – это общий объем ВВП, делённый на численность населения (gdp/population)

SELECT name, gdp/population FROM world
  WHERE population > 200000000

Южная Америка в миллионах человек

Выведите название name и население population в миллионах для стран на континенте continent Южная Америка ('South America'). Разделите население на 1000000, чтобы получить значение населения в миллионах.

SELECT name, population/1000000 FROM world
  WHERE continent='South America'

Франция, Германия, Италия

Выведите название name и население population для следующих стран: France, Germany, Italy.

SELECT name, population FROM world
  WHERE name IN ('France','Germany','Italy')

Союз нерушимый

Выведите страны, в названиях которых name содержится слово 'United'.

SELECT name FROM world
  WHERE name LIKE '%United%'

Размер не имеет значения

Размер не имеет значения: страна может быть большой, если её площадь больше 3 млн кв. км или если её население составляет более 250 млн.

Найдите страны большие по площади или по населению. Выведите name, population и area.

select name,population,area
from world
where area>3000000
or population>250000000

Или то, или то (но не оба)

Попробуйте использовать исключающее ИЛИ (XOR). Найдите страны или большие по площади area (больше, чем 3 млн кв. км), или большие по населению population (больше, чем 250 млн), но условия не должны совпалать. Выведите name, populationи area.

  • Австралия большая по площади, но маленькая по населению, она должна быть включена.
  • У Индонезии большое население, но маленькая площадь, она должна быть включена.
  • У Китая большое население и большая площадь, он не должен быть включён.
  • Великобритания маленькая по населению и по площади, она не должна быть включена.
select name, population,area
from world
where
(population>250000000 or area>3000000)
and not(population>250000000 and area>3000000)

Округление

Найдите название name, население population в миллионах и ВВП gdp в миллиардах для стран на континенте continent Южная Америка ('South America'). Используйте функцию ROUND, чтобы округлить значения до двух знаков после запятой.

Выведите название, население в миллионах и ВВП в миллиардах для южноамериканских стран. Округлите значения до двух знаков после запятой.
Разделите на 1000000 (6 нулей) для миллионов. Разделите на 1000000000 (9 нулей) для миллиардов.
Для некоторых версий SQL частное двух целых чисел также будет целым числом. Один из способов избежать этого – деление на число с плавающей точкой (дробное число), например, 1000000.0.
x

SELECT name, ROUND(population/1000000.0,2),
             ROUND(gdp/1000000000.0,2)
  FROM world
 WHERE continent='South America'

Триллионные экономики

Найдите названия name и ВВП на душу населения для стран, ВВП которых составляет как минимум 1 триллион (1000000000000; это 12 нулей). Округлите это значение до ближайшей тысячи.

Выведите ВВП на душу населения для стран с ВВП больше 1 триллиона, округлите значение до тысяч.

select name, ROUND(gdp/population,-3)
from world
where
gdp>1000000000000

Длина совпала

Столица Греции (Greece) – Афины (Athens).

Обе строки, и 'Greece', и 'Athens' состоят из 6 символов.

Выведите название страны и столицу, длины которых совпадают.

  • Вы можете использовать функцию LENGTH, чтобы найти количество символов в строке

Для Microsoft SQL Server функция LENGTH – это LEN

SELECT name, LENGTH(name), continent, LENGTH(continent), capital, LENGTH(capital)
  FROM world
 WHERE name LIKE 'G%'
SELECT name, capital
  FROM world
 WHERE LENGTH(name)=LENGTH(capital)
SELECT name, LEN(name), continent, LEN(continent), capital, LEN(capital)
  FROM world
 WHERE name LIKE 'G%'
SELECT name, capital
  FROM world
 WHERE LEN(name)=LEN(capital)

Совпадающие буквы

Столица Sweden (Швеции) – Stockholm (Стокгольм). Оба слова начинаются на букву 'S'.

Выведите названия стран и их столицы с совпадающими первыми буквами, но не одноимённые.
  • Вы можете использовать функцию LEFT, чтобы взять первый символ строки.
  • Также используйте <> как оператор НЕ РАВНО.
SELECT name, LEFT(name,1), capital
FROM world
SELECT name,capital
FROM world
WHERE LEFT(name,1)=LEFT(capital,1)
AND name<>capital

Все гласные

Equatorial Guinea (Экваториальная Гвинея) и Dominican Republic (Доминиканская республика) имеют в названиях каждую гласную из английского алфавита (a e i o u). Но это не считается, поскольку их названия состоят из двух слов.

Выведите все страны, названия которых включат кажду гласную ряда "a e i o u" и не включают пробелы.

  • Вы модете использовать конструкцию name NOT LIKE '%a%', чтобы исключить символ из результата.
  • В примере запроса нет таких стран как Bahamas (Багамы) и Belarus (Беларусь), поскольку в их названиях есть как минимум одна буква 'a'
SELECT name
   FROM world
WHERE name LIKE 'B%'
  AND name NOT LIKE '%a%'
SELECT name
  FROM world
WHERE name LIKE '%a%'
AND name LIKE '%e%'
AND name LIKE '%i%'
AND name LIKE '%o%'
AND name LIKE '%u%'
AND name NOT LIKE '% %'

What Next

  • Served by: parsley at 2026-07-24T02:04