Как в SQL получить данные из таблицы: запрос SQL SELECT FROM WHERE
Обучение SQL с примерами: как написать SQL запрос, чтобы получить данные из базы данных?
Получение данных из таблицы SQL. Объясняю как достать информацию из базы данных, простыми словами без воды. Команда SELECT FROM WHERE это легко! Подойдёт для MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB и других, основанных на синтаксисе SQL, СУБД.
Как получить все данные из таблицы базы данных?
Синтаксис SQL команды SELECT FROM:
SELECT * FROM названиеТаблицы;
Это буквально означает «ВЫБРАТЬ всё ИЗ таблица».
Результатом получения данных из таблицы будет массив всех строк, каждая строка будет содержать все поля (столбцы). Если данных в таблице нет, результатом будет пустой массив.
Например в нашей базе данных есть таблица товаров, которая называется products. Чтобы получить из этой таблицы все данные, нужно написать SQL-запрос:
SELECT * FROM products;
Как получить некоторые поля из таблицы базы данных:
Если нам не нужны в каждой строке все сведения из базы данных, можно выбрать только интересующие нас поля. Например у нас есть таблица пользователей, и мы хотим получить всех пользователей, но нас интересуют только поля id, email и name. Тогда вместо звёздочки следует перечислить названия полей через запятую:
SELECT id, email, name FROM products;
Обратите внимание, что между последним полем и словом FROM не должно быть запятой, иначе будет ошибка!
Как получить конкретные записи из таблицы БД? SQL запрос SELECT FROM WHERE ID
Чаще всего мы получаем данные по id. Почему id? Это уникальный номер каждой строки в таблице.
В одной таблице не может быть несколько одинаковых id, благодаря чему зная id записи, мы гарантированно можем получить именно эту запись. Вот как это сделать:
SELECT * FROM названиеТаблицы WHERE id = idЗаписи;
Например в нашей БД есть таблица заказов, которая называется orders, и мы хотим получить запись с id 5.
SELECT * FROM orders WHERE id = 5;
Обратите внимание, что если id числовой, мы пишем его без кавычек. А если id хранятся например в формате UUID, его необходимо написать в кавычках. Пример:
SELECT * FROM orders WHERE id = ‘40dfe45e-49e0-4097-92f6-c96f27aa3af1’;
Также можно получить данные не обязательно по ID а по другому полю.
Для наглядности я приведу следующие примеры на русском языке, но помните, что в реальной базе данных все таблицы и поля следует называть на английском языке.
Допустим мы хотим получить всех сотрудников у которых должность — «Менеджер»:
SELECT * FROM Сотрудники WHERE Должность = 'Менеджер';
Стоит отметить, что в данном случае следует создать отдельную таблицу для перечисления должностей, а в столбце «Должность» хранить не название должности, а её id из таблицы должностей.
Мы можем получить данные, где дата больше/меньше другой даты, а также использовать несколько критериев в условии:
Допустим мы хотим получить данные о заказах, которые находятся в статусе «Доставлен» и были сделаны после 1 января 2023 года:
SELECT * FROM Заказы WHERE Статус = 'Доставлен' AND Дата_заказа > '2023-01-01';
Стоит отметить, что в данном случае следует создать отдельную таблицу для перечисления статусов заказов, а в столбце «Статус» хранить не текст статуса, а её id из таблицы статусов. Использование типа данных enum тоже приемлемо, но как по мне такой подход менее гибкий и менее удобный.
Как получить строки в которых поле таблицы содержит последовательность символов?
Для поиска частичных совпадений используется оператор LIKE.
Например, мы можем искать все продукты, названия которых начинаются с буквы «F»:
SELECT * FROM Продукты WHERE Название LIKE 'F%';
Или продукты, названия которых оканчиваются на «ry»:
SELECT * FROM Продукты WHERE Название LIKE '%ry';
Или продукты, названия которых содержат «fresh»:
SELECT * FROM Продукты WHERE Название LIKE '%fresh%';
Как сделать выборку данных, в которых поле содержит одно из нескольких значений?
На помощь приходит оператор IN. Например мы можем выбрать данные о товарах, у которых категория является одной из нескольких перечисленных:
SELECT * FROM Товары WHERE Категория IN ('Электроника', 'Одежда', 'Книги');
Выше приведены самые базовые примеры использования выборки из базы данных.
У SQL очень богатые возможности, достойные отдельных статей, поэтому на портале будет более подробная статья по использованию условий WHERE, группировки GROUP BY, сортировки ORDER BY, объединений таблиц JOIN и так далее.