SELECT
Основной оператор для извлечения данных из базы
Теория
SELECT переводится с английского как «выбрать». И он действительно выбирает то, что вы попросите: какие столбцы, из какой таблицы, а потом отдаёт вам результат. Самые простые запросы выглядят так: «покажи мне вот это из такой-то таблицы».
Синтаксис
SELECT column1, column2, ...
FROM table_name;
SQL
Примеры
1. Все столбцы из таблицы workers
🔄 Попробуйте изменить запрос:
- • Замените * на конкретные столбцы: first_name, position
- • Добавьте ORDER BY salary в конце
2. Только имена и зарплаты
🔄 Попробуйте изменить запрос:
- • Добавьте столбец position в SELECT
- • Попробуйте увеличить зарплату на 20%, напишите отдельным столбцом: salary * 1.2
3. Переименовываем столбцы в результате
🔄 Попробуйте изменить запрос:
- • Переименуйте first_name в Имя_сотрудника
- • Добавьте position с псевдонимом Должность
4. Уникальные значения
🔄 Попробуйте изменить запрос:
- • Попробуйте DISTINCT position — какие должности есть в компании?
- • А если убрать DISTINCT — что изменится?
5. Уникальные комбинации
🔄 Попробуйте изменить запрос:
- • Попробуйте поменять порядок столбцов: сначала position, потом department_id
- • Попробуйте добавить в SELECT еще один столбец после position
Типичные ошибки
Звёздочка там, где не надо
Пользователи часто пишут SELECT * всегда и везде. Это удобно, но на больших таблицах запрос будет тормозить и тащить кучу лишнего. Лучше привыкать сразу перечислять только нужные столбцы.
Забывают про FROM
Запрос должен быть полным: SELECT first_name FROM workers; — а не просто SELECT first_name;. Без FROM СУБД не поймёт, откуда брать данные.
Лишние запятые
SELECT first_name, last_name, FROM workers; — запятая после last_name лишняя, будет ошибка. Запятые только между названиями, после последнего — нет.
Путают AS с переименованием столбцов в самой таблице
AS меняет название столбца только в результате, сами столбцы в таблице остаются с прежними именами.
Практика
Проверь себя
Ответьте на вопросы, чтобы закрепить материал: