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

  1. Главная
  2. Учебные материалы
  3. ОП.08 - Основы проектиро...
  4. Базовый синтаксис SQL за...

Примечание

ЭТО АРХИВНАЯ ВЕРСИЯ КУРСА!

Материалы предназначаются для пересдающих дисциплину "ОП.08 - Основы проектирования баз данных" в соответствии с учебными планами СПО годов набора ДО 2024-го. Для того чтобы ознакомиться с актуальным курсом "ИТ.03 - Основы проектирования баз данных" включающим интерактивные примеры, перейдите по ссылке.

Материалы были перенесены со старого сайта с минимальной доработкой, поэтому не все возможности курса могут работать как ожидается, где-то может слететь форматирование.

Домашние задания в рамках курса проверяться не будут!

ОП.08 - 05 - Базовый синтаксис SQL запроса на примере оператора SELECT. Условный оператор WHERE

Примеры данной темы используют учебную БД:

products_01.sql

products_01.sql

Базовый синтаксис SQL запроса на примере оператора SELECT

Одна из основных функций SQL — получение данных из СУБД. Для построения всевозможных запросов к базе данных используется оператор SELECT. Он позволяет выполнять сложные проверки и обработку данных.

Общая структура запроса

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

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

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

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

Параметры оператора

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

Примеры использования

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

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

Для того, чтобы вывести все данные из таблицы products, вы можете использовать символ «*», который буквально означает «все столбцы»:

SELECT * FROM `products`;

Вы можете вывести любой столбец, определённый в таблице, например, name из таблицы products:

SELECT name FROM products;

Также вы можете вывести несколько столбцов. Для этого их нужно перечислить через запятую:

SELECT name, count, price FROM products;

Для того чтобы ограничить количество строк в ответе сервера используют модификатор LIMIT, например, если в БД довольно много строк, но нам нужно получить только первые 10, запрос будет следующим:

SELECT * FROM products LIMIT 10;

[!INFO]
В MySQL Workbench и многих подобных клиентах по-умолчанию на любой запрос SELECT устанавливается ограничение LIMIT 1000. Это ограничение легко меняется или отключается через интерфейс программы.

Комментарии

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

Комментарии могут быть однострочными или многострочными. Однострочные комментарии начинаются со знака двойного дефиса (--), а многострочные заключаются в символы /* и */.

Вот пример однострочного комментария:

-- Этот запрос выбирает всех пользователей старше 18 лет
SELECT * FROM users WHERE age >= 18;

А вот пример многострочного комментария:

/*
  Этот запрос выбирает все заказы,
  связывает их с клиентами по первичным ключам
  и фильтрует клиентов только из РФ
*/
SELECT * FROM orders
JOIN customers ON orders.customer_id = customers.id
WHERE customers.country = 'РФ';

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

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

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

Алиасы (псевдонимы)

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

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

Пример использования алиасов для таблиц:

SELECT * FROM customers AS cus
INNER JOIN orders AS ord
ON cus.customer_id = ord.customer_id

Здесь мы задаем алиасы для таблиц customers и orders, чтобы сократить количество символов при обращении к ним в запросе.

Пример использования алиасов для столбцов:

SELECT
  customer_name AS name,
  order_date AS date
FROM customers;

Здесь мы задаем алиасы для столбцов customer_name и order_date, чтобы изменить их названия в выводе запроса.

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

Условный оператор WHERE

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

Общая структура запроса с оператором WHERE

SELECT поля_таблиц_через_запятую FROM имя_таблицы
WHERE условия_на_ограничения_строк;

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

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

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

Результат сравнения с NULL является NULL. Исключением является оператор эквивалентности.

ОператорОписание
=Оператор равенства
<=>Оператор эквивалентности, аналогичный оператору равенства, с одним исключением: в отличии от оператора равенства, оператор эквивалентности вернёт ИСТИНУ при сравнении NULL <=> NULL
<> или !=Оператор неравенства
<Оператор строго меньше
<=Оператор меньше или равно
>Оператор строго больше
>=Оператор больше или равно

Логические операторы

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

  • Оператор NOT — меняет значение специального оператора на противоположный
  • Оператор OR — общее значение выражения истинно, если хотя бы одно из них истинно
  • Оператор AND — общее значение выражения истинно, если они оба истинны
  • Оператор XOR — общее значение выражения истинно, если один и только один аргумент является истинным

Выведем все товары, количество которых на складе больше 0 и при этом цена меньше 5000 включительно:

SELECT * FROM products
WHERE count > 0 AND NOT price <= 5000;

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

Специальные операторы

Существует несколько специальных операторов, которые предназначены для проверки особых условий которыми могут удовлетворять или не удовлетворять объекты данных. Большинство из них мы рассмотрим в рамках отдельных тем, а сейчас упомянем наиболее простой — IS [NOT] NULL.

IS [NOT] NULL — позволяет узнать равно ли проверяемое значение NULL.

SELECT * FROM имя_таблицы
WHERE столбец IS NOT NULL;

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

Задания для самопроверки

Задание 1

Получите всю информацию о товарах из таблицы products.

ОТВЕТ
SELECT * FROM products;

Задание 2

Получите название (name) и цену (price) всех товаров из таблицы products.

ОТВЕТ
SELECT name, price FROM products;

Задание 3

Выберите из таблицы products все записи, в которых цена (price) меньше 3000.

ОТВЕТ
SELECT * FROM products WHERE price < 3000;

Задание 4

Выберите из таблицы products имена (name) и цены (price) всех товаров, стоимостью от 10000 и выше.

ОТВЕТ
SELECT name, price FROM products WHERE price >= 10000;

Задание 5

Получите из таблицы products имена (name) товаров, которые закончились.

ОТВЕТ
SELECT name FROM products WHERE count = 0;

Задание 6

Выберите из таблицы products название (name) и цены (price) товаров, стоимостью до 4000 включительно.

ОТВЕТ
SELECT name, price FROM products WHERE price <= 4000;
Последнее обновление: 31.10.2025, 18:45
Предыдущая
ОП.08 - 04 - Основные типы данных MySQL. Создание и удаление таблиц
Следующая
ОП.08 - 06 - Специальные операторы IN и BETWEEN. Составные условия запросов AND, OR, NOT. Модификатор запроса DISTINCT
© Кафедра информационных технологий ЧУВО «ВШП», 2025. Версия: 0.33.2
Материалы доступны в соответствии с лицензией: