SQL — Урок 4. Выборка данных — оператор SELECT
Итак, в нашей БД forum есть три таблицы: users (пользователи), topics (темы) и posts (сообщения). И мы хотим посмотреть, какие данные в них содержатся. Для этого в SQL существует оператор SELECT. Синтаксис его использования следующий:
SELECT что_выбрать FROM откуда_выбрать;
Вместо «что_выбрать» мы должны указать либо имя столбца, значения которого хотим увидеть, либо имена нескольких столбцов через запятую, либо символ звездочки (*), означающий выбор всех столбцов таблицы. Вместо «откуда_выбрать» следует указать имя таблицы.
Давайте сначала посмотрим все столбцы из таблицы users:
SELECT * FROM users;
Вот и все наши данные, которые мы вносили в эту таблицу. Но предположим, что мы хотим посмотреть только столбец id_user (например, в прошлом уроке, нам надо было для заполнения таблицы topics (темы) знать, какие id_user есть в таблице users). Для этого в запросе мы укажем имя этого столбца:
SELECT id_user FROM users;
Ну, а если мы захотим посмотреть, например, имена и e-mail наших пользователей, то мы перечислим интересующие столбцы через запятую:
SELECT name, email FROM users;
Аналогично, вы можете посмотреть, какие данные содержат и другие наши таблицы. Давайте посмотрим, какие у нас существуют темы:
SELECT * FROM topics;
Сейчас у нас всего 4 темы, а если их будет 100? Хотелось бы, чтобы они выводились, например, по алфавиту. Для этого в SQL существует ключевое слово ORDER BY после которого указывается имя столбца по которому будет происходить сортировка. Синтаксис следующий:
SELECT имя_столбца FROM имя_таблицы ORDER BY имя_столбца_сортировки;
По умолчанию сортировка идет по возрастанию, но это можно изменить, добавив ключевое слово DESC
Теперь наши данные отсортированы в порядке по убыванию.
Сортировку можно производить сразу по нескольким столбцам. Например, следующий запрос отсортирует данные по столбцу topic_name, и если в этом столбце будет несколько одинаковых строк, то в столбце id_author будет осуществлена сортировка по убыванию:
Сравните результат с результатом предыдущего запроса.
Очень часто нам не нужна вся информация из таблицы. Например, мы хотим узнать, какие темы были созданы пользователем sveta (id=4). Для этого в SQL есть ключевое слово WHERE, синтаксис у такого запроса следующий:
SELECT имя_столбца FROM имя_таблицы WHERE условие;
Для нашего примера условием является идентификатор пользователя, т.е. нам нужны только те строки, в столбце id_author которых стоит 4 (идентификатор пользователя sveta):
SELECT * FROM topics WHERE id_author=4;
Или мы хотим узнать, кто создал тему «велосипеды»:
Конечно, было бы удобнее, чтобы вместо id автора, выводилось его имя, но имена хранятся в другой таблице. В последующих уроках мы узнаем, как выбирать данные из нескольких таблиц. А пока узнаем, какие условия можно задавать, используя ключевое слово WHERE.
SELECT * FROM topics WHERE id_author=4;
SELECT * FROM topics WHERE id_author>2;
SELECT * FROM topics WHERE id_author =2;
Научись программировать на Python прямо сейчас!
- Научись программировать на Python прямо сейчас
- Бесплатный курс
Если этот сайт оказался вам полезен, пожалуйста, посмотрите другие наши статьи и разделы.
SQL SELECT и запросы на выборку данных
Оператор языка SQL SELECT — основная строительная конструкция для создания любого, простого или сложного запроса к базе данных. Без него, как и без фундамента для постройки, невозможно получить ни одну выборку данных из базы. На этом уроке мы узнаем, как построить запрос для получения
- простой выборки данных без условий (выбор всех строк во всех столбцах или всех строк в определённых столбцах);
- выборки данных с одним или несколькими условиями (выбор определённых строк), которые заданы в секции WHERE с помощью предикатов и дополительный операторов;
- как использовать оператор SELECT в подзапросах .
SELECT для выбора столбцов таблицы
Запрос с оператором SELECT для выбора всех столбцов таблицы имеет следующий синтаксис:
SELECT * FROM ИМЯ_ТАБЛИЦЫ
То есть для выбора всех столбцов таблицы после слова SELECT нужно ставить звёздочку.
Если вы хотите выполнить запросы к базе данных из этого урока на MS SQL Server, но эта СУБД не установлена на вашем компьютере, то ее можно установить, пользуясь инструкцией по этой ссылке .
Работать будем с базой данных фирмы — Company1. Скрипт для создания этой базы данных, её таблиц и заполения таблиц данными — в файле по этой ссылке .
Пример 1. Итак, есть база данных фирмы — Company1. В ней есть таблица Org (Структура фирмы) и Staff (Сотрудники). Требуется выбрать из таблиц все столбцы. Соответствующий запрос для выбора всех столбцов из таблицы Org выглядит следующим образом (на MS SQL Server — с предваряющей конструкцией USE company1;):
SELECT * FROM Org
Этот запрос вернёт следующее (для увеличения картинки щёлкнуть по ней левой кнопкой мыши):
Запрос для выбора всех столбцов из таблицы Staff выглядит следующим образом (на MS SQL Server — с предваряющей конструкцией USE company1;):
SELECT * FROM Staff
Этот запрос вернёт следующее:

Для выбора определённых столбцов таблицы нам потребуется вместо звёздочки перечислить через запятую названия всех столбцов, которые требуется выбрать:
SELECT ВЫБИРАЕМЫЕ_СТОЛБЦЫ FROM ИМЯ_ТАБЛИЦЫ
Пример 2. Пусть требуется из таблицы Org выбрать столбцы Depnumb и Deptname, в которых содержатся данные соответственно о номерах отделов фирмы и об их названиях. Запрос для получения такой выборки будет следующим (на MS SQL Server — с предваряющей конструкцией USE company1;):
SELECT Deptnumb, Deptname, FROM Org
А из таблицы Staff нужно выбрать столбцы Dept, Name, Job, в которых содержатся соответственно данные о номере отдела, в котором трудится сотрудник, его имени и должности (на MS SQL Server — с предваряющей конструкцией USE company1;):
SELECT Dept, Name, Job FROM Staff
- SELECT и WHERE для выбора строк таблицы
- Использование SELECT и предикатов IN, AND, OR, BETWEEN, LIKE
- SELECT и ORDER BY — сортировка (упорядочение) строк
- SELECT и DISTINCT — удаление дубликатов строк
- Оператор SELECT в подзапросах SQL
- Группировка вместе с сортировкой в запросе: что ставится раньше — GROUP BY или ORDER BY?
- Оператор SELECT для получения выборок из нескольких таблиц
#5 — Выборка данных из БД. Where, Order, Limit

Для выборки данных из БД используется оператор Select. При его использовании вы можете указать какие поля необходимо выбрать. При выборе вы можеет установить условие (where), сортировку (Order) и ограничение по выборке (Limit).
Видеоурок
Команда Select
Для вывода записей из таблицы необходимо использовать команду Select . В команде указываются какие поля выбираются из таблицы, а также указывается из какой таблицы идет выборка.
-- Выбор всех записей SELECT * FROM table; -- Выбор всех записей, но лишь некоторые поля SELECT id, title FROM table; -- Выбор лишь некоторых записей SELECT * FROM table WHERE id > 6 AND id < 8;
Выборка по параметру
Для выборки лишь некоторых записей используется оператор Where . В нем указывается условие и лишь подходящие под это условие элементы будут выбраны.
SELECT * FROM table WHERE name = 'Alex'; SELECT * FROM table WHERE name = 'Alex' AND id > 88;
Сортировка
Сортировка данных происходит через команду Order By . В ней вы указываете по какому полю идет сортировка и в каком порядке она будет.
SELECT * FROM table ORDER BY id; -- Сортировка по убыванию SELECT * FROM table ORDER BY id DESC; -- Сортировка вместе с оператором Where SELECT * FROM table WHERE id > 9 ORDER BY id DESC;
Лимит по выбору
Вывод записей можно лимитировать. Для этого используйте команду Limit .
-- Вывод лишь одной записи SELECT * FROM table ORDER BY id LIMIT 1; -- Вывод 5 последних записей SELECT * FROM table ORDER BY id LIMIT 5; -- Пропуск первых 7 записей и вывод последующих 8 SELECT * FROM table ORDER BY id DESC LIMIT 7, 8;
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Как выбрать все записи из таблицы sql
Чтобы получить все записи из таблицы, используется запрос SELECT .
SELECT * FROM cars;
Мы получим все записи из таблицы cars . * в запросе означает, что нужно выбрать все столбцы из таблицы. Если нужны только какие-то определённые, то их можно перечислить:
SELECT brand, price FROM cars;
