Кафедра ИТКафедра ИТ
Блог
Обучение
  • О кафедре
  • Направления подготовки
  • Друзья и партнеры
  • Структура кафедры
  • Обращение к студентам
  • Официальный сайт «ВШП»
GitHub
Блог
Обучение
  • О кафедре
  • Направления подготовки
  • Друзья и партнеры
  • Структура кафедры
  • Обращение к студентам
  • Официальный сайт «ВШП»
  • ИТ.03 - 04 - Основные SQL-конструкции: SELECT, FROM, WHERE

  1. Главная
  2. Учебные материалы
  3. ИТ.03 - Основы проектиро...
  4. Основные SQL-конструкции...

ИТ.03 - 04 - Основные SQL-конструкции: SELECT, FROM, WHERE

Введение

На прошлых занятиях мы познакомились с языком SQL и его ролью в работе с базами данных. Сегодня мы переходим к практическому изучению базовых конструкций, без которых невозможно составить ни один SQL-запрос: SELECT, FROM и WHERE.

Эти три ключевых слова можно сравнить с «азбукой» SQL. Если вы их усвоите, то сможете извлекать нужные данные из базы, а значит — решать реальные задачи анализа и обработки информации.


Зачем нужны SELECT, FROM, WHERE?

  • SELECT отвечает за то, что именно мы хотим увидеть (какие столбцы данных).
  • FROM показывает, откуда именно брать данные (из какой таблицы или нескольких).
  • WHERE позволяет выбрать только те строки, которые соответствуют определённым условиям.

Можно провести аналогию:

Представьте, что вы работаете с Excel-таблицей. SELECT — это выбор нужных колонок, FROM — указание, какой лист Excel вы используете, а WHERE — фильтр строк по условию.


Общая форма запроса

SELECT [DISTINCT | ALL] поля_таблиц_через_запятую
FROM имя_таблицы
[WHERE] условия_на_ограничения_строк
[GROUP BY] условия_группировки
[HAVING] условия_на_ограничения_строк_после_группировки
[ORDER BY] порядок_сортировки [ASC | DESC]
[LIMIT] ограничение_количества_записей

В описанной структуре запроса необязательные параметры указаны в квадратных скобках.

  • DISTINCT используется для исключения повторяющихся строк из результата
  • ALL (по умолчанию) используется для получения всех данных, в том числе и повторений
  • FROM перечисляет используемые в запросе таблицы из базы данных
  • WHERE — это условный оператор, который используется для ограничения строк по какому-либо условию
  • GROUP BY используется для группировки строк
  • HAVING применяется после группировки строк для фильтрации по значениям агрегатных функций
  • ORDER BY используется для сортировки. У него есть два параметра:
  • ASC (по умолчанию) используется для сортировки по возрастанию
    DESC — по убыванию
  • LIMIT используется для ограничения количества строк для вывода

Важно: При построении SQL-запросов важно не только соблюдать правильность синтаксиса в написании команд, но и строго следовать порядку в котором они перечисляются.

Фактическое выполнение инструкций определяется СУБД и порядок из этого списка может отличаться.

Пример таблицы products

Это витрина бытовой техники условного интернет-магазина: каждая строка описывает товар, сколько его осталось на складе и по какой цене он продаётся.

idtitleamountprice
1Стиральная машина510000
2Холодильник010000
3Микроволновка34000
4Пылесос24500
5Вентилятор0700
6Телевизор731740
7Тостер22500
8Принтер43000

Таблица products

Поля

  • id — целочисленный первичный ключ;
  • title — название товара;
  • amount — остаток на складе;
  • price — цена в рублях.

Ограничения

  • В учебной таблице только id строго уникален, остальные поля допускают NULL, но по умолчанию заполнены значениями.
Код создания данной таблицы на языке SQL в диалекте SQLite
CREATE TABLE
  products (
    id INT PRIMARY KEY,
    title VARCHAR(255),
    amount INT,
    price INT
  )
;

INSERT INTO
  products (id, title, amount, price)
VALUES
  (1, 'Стиральная машина', 5, 10000),
  (2, 'Холодильник', 0, 10000),
  (3, 'Микроволновка', 3, 4000),
  (4, 'Пылесос', 2, 4500),
  (5, 'Вентилятор', 0, 700),
  (6, 'Телевизор', 7, 31740),
  (7, 'Тостер', 2, 2500),
  (8, 'Принтер', 4, 3000)
;

Скачать код создания таблицы в виде файла можно по ссылке: products_01_sqlite.sql


Конструкция SELECT

1. Вывод данных не из таблицы

Вы можете выводить любые строки и числа вместо столбцов:

SELECT "Просто строка", 1;

2. Выбор всех данных

SELECT *
FROM products;

* означает «выбрать все столбцы». Этот запрос возвращает таблицу целиком.

Минус: в реальной работе SELECT * часто перегружает систему лишними данными. Хорошая практика — указывать только нужные поля.

3. Выбор отдельных столбцов

SELECT title, price
FROM products;

Результат: список названий товаров и их цен.

Это удобно, когда таблица очень большая и нам нужны лишь отдельные характеристики.

4. Использование алиасов (псевдонимов)

Алиасы (или псевдонимы) в SQL-запросах - это сокращенные названия, которые можно использовать для обращения к таблицам и столбцам в запросах. Они упрощают написание запросов и делают их более читаемыми.

Иногда названия столбцов слишком длинные или неудобные. Для упрощения используют AS:

SELECT
  title AS товар,
  price AS цена
FROM products;

Так результат будет выглядеть понятнее.

Совет

Если для имени псевдонима необходимы пробелы или зарезервированные SQL слова, его нужно взять в кавычки:

Верно:

  • title AS товар
  • title AS "Название товара"
  • title AS "select"

Не верно:

  • title AS Название товара -> вызовет ошибку
  • title AS select -> вызовет ошибку

Кроме того, алиасы полезны при написании запросов с использованием нескольких таблиц, можно задать алиасы для каждой из них, чтобы сократить количество символов при обращении к ним в запросе, однако эту особенность мы рассмотрим далее по курсу когда будем работать с несколькими таблицами.

Конструкция WHERE

Ситуация, когда требуется сделать выборку по определенному условию, встречается очень часто. Для этого в операторе SELECT существует параметр WHERE, после которого следует условие для ограничения строк. Если запись удовлетворяет этому условию, то попадает в результат, иначе отбрасывается.

В условном операторе применяются операторы сравнения, специальные и логические операторы.

Операторы сравнения

Операторы сравнения служат для сравнения двух выражений, их результатом может являться 1 (или TRUE — ИСТИНА), 0 (или FALSE — ЛОЖЬ) и особый тип данных NULL (рассмотрим в рамках отдельной темы).

ОператорОписание
=Оператор равенства
<> или !=Оператор неравенства
<Оператор строго меньше
<=Оператор меньше или равно
>Оператор строго больше
>=Оператор больше или равно

Логическим и специальным операторам более подробно будет посвящена отдельная тема.

1. Отбор по строгому числовому условию

SELECT *
FROM products
WHERE price < 3000;

Выведет товары дешевле 3000.

2. Отбор по нестрогому числовому условию

SELECT *
FROM products
WHERE price >= 10000;

Все товары, которые стоят 10000 и дороже.

3. Отбор по равенству

SELECT *
FROM products
WHERE amount = 0;

Выведет только те товары, которых нет на складе.

Комментарии в SQL

Комментарии могут использоваться для описания цели запроса, объяснения сложных операций, указания авторства запроса и т.д. Они помогают другим разработчикам быстрее понимать код и ускоряют процесс разработки и отладки.

Комментарии делают запросы читаемыми:

  • Однострочный:

    -- Товары дороже 10000
    SELECT title, price FROM products WHERE price > 10000;
    
  • Многострочный:

    /*
      Этот запрос выбирает товары,
      у которых цена меньше 5000
    */
    SELECT title, price FROM products WHERE price < 5000;
    

Следует помнить, что комментарии не должны быть избыточными и не должны содержать конфиденциальную информацию. Также, при написании комментариев следует следить за грамматикой и стилем написания.

Использование комментариев в SQL-запросах является хорошей практикой программирования. Они помогают другим разработчикам быстрее понимать код и ускоряют процесс разработки и отладки.

Логика работы WHERE

Важно понимать: SQL обрабатывает таблицу построчно.

  • Каждая строка проверяется на соответствие условию.
  • Если условие выполняется — строка попадает в результат.
  • Если нет — строка отбрасывается.

Практические задания

Задание 1

Условие

Выведите все данные из таблицы products.

-- Ваш код можете писать тут


Решение
SELECT *
FROM products

Задание 2

Условие

Выведите названия (title) и цены (price) всех товаров.

-- Ваш код можете писать тут


Решение
SELECT
  title,
  price
FROM products

Задание 3

Условие

Выведите названия (title) и остатки (amount) товаров, которые отсутствуют на складе.

-- Ваш код можете писать тут


Решение
SELECT
  title,
  amount
FROM products
WHERE amount < 1

Задание 4

Условие

Выведите названия (title) и цены (price) товаров дешевле 4000.

-- Ваш код можете писать тут


Решение
SELECT
  title,
  price
FROM products
WHERE price < 4000

Задание 5

Условие

Выведите названия (title) и цены (price) товаров стоимостью 9500 и дороже.

-- Ваш код можете писать тут


Решение
SELECT
  title,
  price
FROM products
WHERE price >= 9500

Задание 6

Условие

Выведите все названия (title), цены (price) и остатки (amount) товаров так, чтобы столбцы с этими значениями назывались «Товар», «Цена» и «Остаток» соответственно.

-- Ваш код можете писать тут


Решение
SELECT
  title AS "Товар",
  price AS "Цена",
  amount AS "Остаток"
FROM products
Последнее обновление: 13.11.2025, 14:19
Предыдущая
ИТ.03 - 03 - Введение в SQL. Основные возможности языка структурированных запросов
Следующая
ИТ.03 - 05 - Составные условия запросов AND, OR, NOT. Специальные операторы IN и BETWEEN. Модификатор запроса DISTINCT
© Кафедра информационных технологий ЧУВО «ВШП», 2025. Версия: 0.26.9
Материалы доступны в соответствии с лицензией: