← К оглавлению занятия

📝 Задания

⚡ Кратко: задания

  1. Ответьте на вопросы по теории: ORDER BY, LIMIT, агрегаты, GROUP BY, HAVING, JOIN, UNION.
  2. Выполните практические задачи в базах hr, world и Airlines.
  3. Разберите домашнее задание из урока 30 в разделе Домашнее задание.

Вопросы для самопроверки

1

ORDER BY

Что делает оператор ORDER BY? Как задать сортировку по убыванию?

2

LIMIT и OFFSET

Для чего используются операторы LIMIT и OFFSET? Как получить вторую страницу выборки из 20 строк?

3

Агрегирующие функции

Перечислите агрегирующие функции и их назначение. Какая функция игнорирует NULL при вычислении среднего?

4

GROUP BY

Что делает GROUP BY? Какие столбцы можно выводить в SELECT при использовании группировки?

5

HAVING

В чём разница между WHERE и HAVING? Можно ли использовать HAVING без GROUP BY?

6

JOIN

Назовите типы JOIN. Чем INNER JOIN отличается от LEFT JOIN?

7

UNION

Чем UNION отличается от UNION ALL? Какие требования предъявляются к объединяемым запросам?

Практические задачи

Блок 1. База данных hr, таблица employees

1.1

Сотрудники отдела 90

Найдите всех сотрудников, работающих в департаменте с department_id = 90.

1.2

Сотрудники с высокой зарплатой

Найдите всех сотрудников, зарабатывающих больше 5000.

1.3

Сотрудники с фамилией на L

Найдите всех сотрудников, чья фамилия начинается на букву L.

1.4

Поле SALARY_GROUP

Сформируйте поле SALARY_GROUP, которое принимает значение 1, если зарплата больше 10000, и значение 0 в противном случае.

1.5

Средняя зарплата ниже 10000

Найдите среднюю зарплату тех сотрудников, которые зарабатывают меньше 10000.

Блок 2. База данных world

2.1

Страны со столицами

Выведите список стран со столицами.

2.2

Страны с языками

Выведите список стран с языками, на которых в них говорят.

2.3

Страны с официальными языками

Выведите список стран с официальными языками.

2.4

Сравнение количества записей

Сравните количество записей в результате предыдущих трёх запросов. В каком результате больше записей?

Блок 3. База данных Airlines

3.1

Самолёты по моделям

Выведите количество самолётов каждой модели.

3.2

Рейсы по типам лайнеров

Выведите количество trips для каждого типа лайнера.

3.3

Средняя цена по классам

Выведите среднюю стоимость билета в каждом классе обслуживания (service_class).

3.4

Поездки по убыванию количества билетов

Выведите список поездок (trips) по убыванию количества билетов для каждой поездки.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Как лучше использовать summary-урок?

Вопрос 2

Что показывает хороший результат после повторения блока?

Вопрос 3

Какой вопрос стоит задать себе после каждого ответа?

Вопрос 4

Что делает SELECT?

Вопрос 5

Почему в SQL важен явный список столбцов?

Вопрос 6

Как лучше форматировать сложный SQL-запрос?

Вопрос 7

Что означает NULL?

Вопрос 8

Почему запросы стоит проверять на маленькой выборке?