ИТ.03 - 04 - Основные SQL-конструкции: SELECT, FROM, WHERE
Введение
На прошлых занятиях мы познакомились с языком SQL и его ролью в работе с базами данных. Сегодня мы переходим к практическому изучению базовых конструкций, без которых невозможно составить ни один SQL-запрос: SELECT
, FROM
и WHERE
.
Эти три ключевых слова можно сравнить с «азбукой» SQL. Если вы их усвоите, то сможете извлекать нужные данные из базы, а значит — решать реальные задачи анализа и обработки информации.
Зачем нужны SELECT, FROM, WHERE?
- SELECT отвечает за то, что именно мы хотим увидеть (какие столбцы данных).
- FROM показывает, откуда именно брать данные (из какой таблицы или нескольких).
- WHERE позволяет выбрать только те строки, которые соответствуют определённым условиям.
Можно провести аналогию:
Представьте, что вы работаете с Excel-таблицей.
SELECT
— это выбор нужных колонок,FROM
— указание, какой лист Excel вы используете, аWHERE
— фильтр строк по условию.
Общая форма запроса
SELECT столбцы
FROM таблица
WHERE условие;
SELECT
— перечисляем имена столбцов через запятую,FROM
— указываем название таблицы,WHERE
— задаём условие (необязательно).
Важно: каждое ключевое слово выполняет строго свою функцию, и их порядок фиксирован.
Пример базы данных products
Для практики возьмём учебную таблицу товаров:
id | name | count | price |
---|---|---|---|
1 | Стиральная машина | 5 | 10000 |
2 | Холодильник | 0 | 10000 |
3 | Микроволновка | 3 | 4000 |
4 | Пылесос | 2 | 4500 |
5 | Вентилятор | 0 | 700 |
6 | Телевизор | 7 | 31740 |
7 | Тостер | 2 | 2500 |
8 | Принтер | 4 | 3000 |
Код создания данной таблицы на языке SQL в диалекте SQLite
DROP TABLE IF EXISTS products;
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
count INTEGER,
price INTEGER
);
INSERT INTO products (id, name, count, 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);
Конструкция SELECT
1. Выбор всех данных
SELECT *
FROM products;
*
означает «выбрать все столбцы». Этот запрос возвращает таблицу целиком.
Минус: в реальной работе SELECT *
часто перегружает систему лишними данными. Хорошая практика — указывать только нужные поля.
2. Выбор отдельных столбцов
SELECT name, price
FROM products;
Результат: список названий товаров и их цен.
Это удобно, когда таблица очень большая и нам нужны лишь отдельные характеристики.
3. Использование алиасов (псевдонимов)
Иногда названия столбцов слишком длинные или неудобные. Для упрощения используют AS
:
SELECT
name AS товар,
price AS цена
FROM products;
Так результат будет выглядеть понятнее.
Конструкция WHERE
1. Отбор по числовому условию
SELECT *
FROM products
WHERE price < 3000;
Выведет товары дешевле 3000.
2. Отбор по равенству
SELECT name, count
FROM products
WHERE count = 0;
Выведет только те товары, которых нет на складе.
3. Отбор по диапазону значений
SELECT name, price
FROM products
WHERE price >= 10000;
Все товары, которые стоят 10000 и дороже.
Комментарии в SQL
Комментарии делают запросы читаемыми:
Однострочный:
-- Товары дороже 10000 SELECT name, price FROM products WHERE price > 10000;
Многострочный:
/* Этот запрос выбирает товары, у которых цена меньше 5000 */ SELECT name, price FROM products WHERE price < 5000;
Логика работы WHERE
Важно понимать: SQL обрабатывает таблицу построчно.
- Каждая строка проверяется на соответствие условию.
- Если условие выполняется — строка попадает в результат.
- Если нет — строка отбрасывается.
Частые ошибки студентов
- Путают порядок ключевых слов (
WHERE
пишут доFROM
). - Забывают указывать таблицу после
FROM
. - Используют
=
вместо<
или>
в числовых условиях. - Пишут условия в
SELECT
вместоWHERE
.
Практические задания
- Выведите все данные из таблицы
products
. - Получите названия и цены всех товаров.
- Найдите товары дешевле 4000.
- Определите товары, которые отсутствуют на складе.
- Получите товары стоимостью 10000 и выше.
- Переименуйте столбцы
name
иprice
в выводе на «Товар» и «Цена».
-- Ваш код можете писать тут