Вопрос:

Напиши запрос, возвращающий имена, фамилии и даты рождения сотрудников (таблица «Employees»), если в фамилии содержится сочетание «se»

Ответ ассистента

Привет! Давай разберемся с этим заданием по базам данных. Нам нужно найти сотрудников, у которых в фамилии есть сочетание букв «se». При этом мы не знаем, где именно это сочетание находится: в начале фамилии, в конце или в середине. Для таких случаев в SQL (языке, на котором мы общаемся с базами данных) используется оператор `LIKE` и специальные символы-подстановки: * `%` (процент) означает «любое количество любых символов (ноль или больше)». То есть, если мы напишем `se%`, это будет означать «начинается на `se`», а `%se` — «заканчивается на `se`». * `_` (нижнее подчеркивание) означает «один любой символ». Например, `_se_` будет означать, что перед `se` и после `se` есть ровно по одной букве. Теперь посмотрим на варианты: 1. `SELECT FirstName, LastName, BirthDate from Employees WHERE LastName="se"` Этот вариант ищет фамилии, которые **точно равны** «se». То есть, фамилия должна быть только из двух букв «se». Это не то, что нам нужно, ведь «se» может быть частью более длинной фамилии (например, «Petersen»). 2. `SELECT * from Employees WHERE LastName like "_se_"` Этот вариант ищет фамилии, в которых **перед `se` стоит ровно одна буква, и после `se` тоже стоит ровно одна буква**. Например, подойдет фамилия «Aset». Но, как мы уже говорили, «se» может быть в любом месте и быть окружено любым количеством букв. А ещё, нам нужны только имя, фамилия и дата рождения, а не `*` (все столбцы). 3. `SELECT FirstName, LastName, BirthDate from Employees WHERE LastName like "%se%"` Вот это то, что нужно! `%se%` означает «содержит `se` где угодно». То есть, перед `se` может быть сколько угодно символов (или ни одного), и после `se` тоже может быть сколько угодно символов (или ни одного). И выбираем мы только нужные столбцы: `FirstName`, `LastName`, `BirthDate`. **Правильный ответ: 3**

Другие решения

Что ещё задавали пользователи