Хочешь уверенно проходить IT-интервью?
Мы понимаем, как сложно подготовиться: стресс, алгоритмы, вопросы, от которых голова идёт кругом. Но с AI тренажёром всё гораздо проще.
💡 Почему Т1 тренажёр — это мастхэв?
- Получишь настоящую обратную связь: где затык, что подтянуть и как стать лучше
- Научишься не только решать задачи, но и объяснять своё решение так, чтобы интервьюер сказал: "Вау!".
- Освоишь все этапы собеседования, от вопросов по алгоритмам до диалога о твоих целях.
Зачем листать миллион туториалов? Просто зайди в Т1 тренажёр, потренируйся и уверенно удиви интервьюеров. Мы не обещаем лёгкой прогулки, но обещаем, что будешь готов!
Реклама. ООО «Смарт Гико», ИНН 7743264341. Erid 2VtzqwP8vqy
Базовый запрос SELECT
Вот пример одного из самых распространенных запросов SQL:
Результат:
Этот запрос выбирает все столбцы во всех записях таблицы
. Символ звездочка (Pets
) является шаблоном и обозначает, что мы хотим получить все столбцы из таблицы.*
Выбираем столбцы по именам
Для повышения производительности запросов обычно выбирают не все имеющиеся в таблице столбцы, а только те, которые нужны в данный момент. Вот пример:
Результат:
Фильтруем выборку данных
Чтобы получить только те строки, которые нам нужны, мы можем добавить в запрос оператор
.WHERE
Результат:
Вот еще один пример фильтрации выборки. На этот раз мы будем использовать операцию «больше» (
), чтобы получить записи с днем рождения питомца позже определенной даты (DOB, date of birth – дата рождения).>
Результат:
Вы можете заменить операцию «больше» на любую другую, например, на «больше либо равно (
), «меньше» (>=
<
) или «меньше либо равно» (
).<=
Для получения значений, попадающих в некоторый диапазон, можно использовать оператор
(например, день между датой начала и конца интервала).BETWEEN
Результат:
Сортировка результатов запроса
Чтобы отсортировать записи, возвращаемые запросом, мы можем добавить в запрос оператор
.ORDER BY
Сортировка в порядке возрастания
Для сортировки записей в порядке возрастания необходимо использовать ключевое слово
(ascending – возрастание). Такой порядок используется по умолчанию, поэтому ключевое слово в запросе можно не указывать.ASC
или короче
Результат:
Сортировка в порядке убывания
Для получения результата запроса в порядке убывания нужно использовать ключевое слово
.DESC
Результат:
Сортировка по нескольким столбцам
Чтобы отсортировать записи по нескольким столбцам, их имена нужно перечислить через запятую.
Результат:
Обратите внимание, что две записи с именем питомца
расположены в разном порядке (это видно по значению в поле Fluffy
). Это произошло потому, что в запросах сортировка производится сначала по столбцу PetId
PetName
, а затем уже по столбцу
.PetId
Сортировка по скрытым столбцам
Вы можете отсортировать результат запроса по столбцам, которые не входят в список выборки, расположенный после оператора
.SELECT
Результат:
По этой выборке мы можем сделать вывод, что
– самый младший питомец, а Tweet
– самый старший, потому что мы отсортировали записи по дате рождения (DOB) в порядке убывания.Meow
Чтобы убедиться давайте, выполним запрос, добавив столбец DOB в список
.SELECT
Результат:
Теперь мы видим, что дата рождения у питомцев
и Meow
имеет значение Bark
, поэтому на самом деле мы не знаем кто из них двоих младше.NULL
Этот пример показывает, что значение
является наименьшим из всех возможных. Об этом нужно помнить, составляя запросы.NULL
Отбор записей по текстовому шаблону
Для отбора записей по текстовому шаблону мы используем оператор
.LIKE
Результат:
В приведенном примере мы выбрали всех питомцев, чьи имена начинаются с буквы F. Знак процента (
) используется как шаблонный символ, показывающий, что дальше может идти строка из любого количества знаков, в том числе и пустая. Такой шаблонный символ может использоваться в начале строки, в конце её или даже в середине.%
Вот еще один пример:
Результат:
Выбор из списка
Оператор
позволяет определить, что указанное значение входит в список или результат подзапроса. Рассмотрим пример.IN
Результат:
Подзапросы
Вы можете использовать оператор
вместе с подзапросами (запросами, вложенными внутрь другого запроса). Например:IN
Результат:
Этот запрос возвращает только те виды питомцев из таблицы
, которые используются в таблице PetTypes
. Чтобы продемонстрировать это более наглядно, ниже показано содержание этих двух таблиц.Pets
Таблица PetTypes
Таблица Pets
Мы видим, что таблица PetTypes
содержит вид
, но ни одному из домашних животных в таблице Rabbit
Pets
не был присвоен этот тип (то есть в столбце PetTypeId
таблицы Pets
нет значения 4).
Соединения
Можно спорить о том, считаются ли SQL-соединения «базовыми» SQL-запросами, но я все же решил включить их сюда.
В завершение этой статьи приведем пример внутреннего соединения.
Результат:
В этом запросе мы использовали внутреннее соединение (
) чтобы получить имена всех питомцев с указанием вида каждого из них. После оператора INNER JOIN
ON
описано условие соединения (предикат), которое вычисляется для каждой пары соединяемых записей. В нашем случае столбец
является внешним ключом в таблице p.PetTypeId
, а столбец Pets
– первичным ключом в таблице pt.PetTypeId
. Чтобы сделать код более красивым и лаконичным мы применили псевдонимы для имен таблиц.PetTypes
Комментарии