PurpleSchool — курсы программирования онлайн
  • Пути
    • Frontend React разработчик
    • Frontend Vue разработчик
    • Backend разработчик Node.js
    • Fullstack разработчик React / Node.js
    • Mobile разработчик React Native
    • Backend разработчик Golang
    • Devops инженер
    • Backend разработчик Python
  • AI для кодаНовое
  • О нас
    • Отзывы
    • Реферальная программа
    • О компании
    • Контакты
  • Иконка открытия меню
    • Сообщество
    • PurpleПлюс
    • AI Собеседование
    • AI тренажёр
    • Проекты
PurpleSchool — платформа бесплатных roadmap и курсов для разработчиков
ютуб иконка
Telegram иконка
VK иконка
VK иконка
Курсы
ГлавнаяКаталог курсовFrontendBackendFullstack
Практика
КарьераПроектыPurpleПлюс
Материалы
БлогБаза знаний
Документы
Договор офертаПолитика конфиденциальностиПроверка сертификатаМиграция курсовРеферальная программа
Реквизиты
ИП Ларичев Антон АндреевичИНН 773373765379contact@purpleschool.ru

PurpleSchool © 2020 -2026 Все права защищены

  • Курсы
    • FrontendИконка стрелки
    • AI разработкаИконка стрелки
    • BackendИконка стрелки
    • DevOpsИконка стрелки
    • MobileИконка стрелки
    • ТестированиеИконка стрелки
    • Soft-skillsИконка стрелки
    • ДизайнИконка стрелки
    Иконка слояПерейти в каталог курсов
  • Бесплатно
    • Курсы
    • JavaScript Основы разработкиPython Основы PythonCSS CSS FlexboxКарта развитияВопросы для собеседований
    • База знанийИконка стрелки
    • Новостные рассылкиИконка стрелки
  • PurpleSchool — курсы программирования онлайн
    • AI для кодаНовое
    • Сообщество
    • PurpleПлюс
    • AI Собеседование
    • AI тренажёр
    • Проекты
    Главная
    Сообщество
    SQL запросы: примеры для начинающих разработчиков

    SQL запросы: примеры для начинающих разработчиков

    Аватар автора SQL запросы: примеры для начинающих разработчиков

    Антон Ларичев

    Иконка календаря20 июля 2026
    SQLбазы данныхMySQLPostgreSQLначинающимjuniorИконка уровня junior
    Картинка поста SQL запросы: примеры для начинающих разработчиков

    Введение

    SQL (Structured Query Language) — язык запросов для работы с реляционными базами данных. Он используется в MySQL, PostgreSQL, SQLite и других СУБД. Если вы только начинаете путь разработчика, понимание базовых SQL-запросов откроет вам доступ к работе с данными в большинстве проектов.

    В этой статье мы разберём основные типы SQL-запросов с примерами: SELECT, INSERT, UPDATE, DELETE и JOIN. Для каждого запроса объясним синтаксис и покажем реальные сценарии применения.

    Предположим, что у нас есть таблица users:

    -- Создаём таблицу пользователей
    CREATE TABLE users (
        id INT PRIMARY KEY AUTO_INCREMENT,
        name VARCHAR(100) NOT NULL,
        email VARCHAR(150) UNIQUE,
        age INT,
        city VARCHAR(100)
    );
    

    SELECT: выборка данных

    SELECT — самый частый запрос в SQL. Он извлекает данные из таблицы.

    Выбрать все колонки:

    -- Получаем всех пользователей
    SELECT * FROM users;
    

    Выбрать конкретные колонки:

    -- Нас интересуют только имя и город
    SELECT name, city FROM users;
    

    Ограничить количество записей:

    -- Берём первые 10 пользователей
    SELECT name, email FROM users LIMIT 10;
    

    Сортировка результатов:

    -- Сортируем по возрасту от меньшего к большему
    SELECT name, age FROM users ORDER BY age ASC;
    
    -- Сортируем по имени в обратном порядке
    SELECT name, age FROM users ORDER BY name DESC;
    

    WHERE: фильтрация записей

    Оператор WHERE фильтрует строки по условию.

    -- Находим пользователей из Москвы
    SELECT name, email FROM users WHERE city = 'Москва';
    
    -- Пользователи старше 25 лет
    SELECT name, age FROM users WHERE age > 25;
    
    -- Несколько условий: И
    SELECT name FROM users WHERE city = 'Москва' AND age >= 18;
    
    -- Несколько условий: ИЛИ
    SELECT name FROM users WHERE city = 'Москва' OR city = 'Санкт-Петербург';
    

    Поиск по шаблону с LIKE:

    -- Имена, начинающиеся на 'А'
    SELECT name FROM users WHERE name LIKE 'А%';
    
    -- Email на домене gmail
    SELECT name, email FROM users WHERE email LIKE '%@gmail.com';
    

    Проверка на NULL:

    -- Пользователи без указанного города
    SELECT name FROM users WHERE city IS NULL;
    

    INSERT: добавление данных

    INSERT INTO добавляет новые строки в таблицу.

    -- Добавляем одного пользователя
    INSERT INTO users (name, email, age, city)
    VALUES ('Алексей Смирнов', 'alex@example.com', 28, 'Москва');
    
    -- Добавляем сразу нескольких пользователей
    INSERT INTO users (name, email, age, city)
    VALUES 
        ('Мария Иванова', 'maria@example.com', 24, 'Казань'),
        ('Дмитрий Козлов', 'dmitry@example.com', 31, 'Новосибирск'),
        ('Анна Петрова', 'anna@example.com', 22, 'Санкт-Петербург');
    

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

    UPDATE: обновление данных

    UPDATE изменяет существующие записи в таблице.

    -- Меняем город для конкретного пользователя
    UPDATE users SET city = 'Екатеринбург' WHERE id = 1;
    
    -- Обновляем несколько полей сразу
    UPDATE users 
    SET city = 'Москва', age = 29 
    WHERE email = 'alex@example.com';
    

    Всегда используйте WHERE в UPDATE. Без него изменятся все строки в таблице — это одна из самых частых ошибок начинающих.

    DELETE: удаление данных

    DELETE удаляет строки из таблицы.

    -- Удаляем пользователя по id
    DELETE FROM users WHERE id = 5;
    
    -- Удаляем всех пользователей из определённого города
    DELETE FROM users WHERE city = 'Казань';
    

    Как и с UPDATE, оператор WHERE здесь обязателен. DELETE FROM users без условия удалит все данные из таблицы.

    JOIN: объединение таблиц

    JOIN позволяет объединять данные из нескольких таблиц. Предположим, у нас есть таблица orders:

    -- Таблица заказов
    CREATE TABLE orders (
        id INT PRIMARY KEY AUTO_INCREMENT,
        user_id INT,
        product VARCHAR(200),
        amount DECIMAL(10, 2)
    );
    

    INNER JOIN возвращает строки, для которых есть совпадение в обеих таблицах:

    -- Получаем имя пользователя и его заказы
    SELECT users.name, orders.product, orders.amount
    FROM users
    INNER JOIN orders ON users.id = orders.user_id;
    

    LEFT JOIN возвращает все строки из левой таблицы, даже если совпадений нет:

    -- Все пользователи и их заказы (если заказов нет — NULL)
    SELECT users.name, orders.product
    FROM users
    LEFT JOIN orders ON users.id = orders.user_id;
    

    Частые ошибки

    1. UPDATE и DELETE без WHERE

    -- Опасно: обновит всех пользователей без исключения
    UPDATE users SET city = 'Москва';
    
    -- Правильно: только нужная запись
    UPDATE users SET city = 'Москва' WHERE id = 42;
    

    2. Использование SELECT * в продакшене

    SELECT * удобен при отладке, но в реальных запросах лучше явно указывать нужные колонки. Это снижает объём передаваемых данных и делает код понятнее.

    3. Отсутствие индексов на колонках в WHERE

    Если вы часто фильтруете по email или city, добавьте индекс — иначе база просматривает каждую строку:

    -- Ускоряем поиск по email
    CREATE INDEX idx_users_email ON users(email);
    

    4. Вставка пользовательского ввода напрямую в запрос

    Никогда не подставляйте пользовательские данные прямо в SQL-строку — это открывает уязвимость SQL-инъекции. Используйте параметризованные запросы в своём языке программирования.

    Заключение

    Мы разобрали основные SQL-запросы: SELECT, WHERE, INSERT, UPDATE, DELETE и JOIN. Эти инструменты покрывают большую часть повседневных задач при работе с базами данных.

    Следующий шаг — изучить агрегатные функции (COUNT, SUM, AVG) и оператор GROUP BY. Они позволяют делать аналитические выборки: считать количество заказов на пользователя, находить средний возраст по городу и так далее. Практикуйтесь на реальных данных: создайте локальную базу в PostgreSQL или MySQL и реализуйте сценарии из этой статьи.

    Иконка глаза1 136

    Комментарии

    0

    Постройте личный план изучения Vue.js 3, Vue Router и Pinia до уровня Middle — бесплатно!

    Vue.js 3, Vue Router и Pinia — часть карты развития Frontend

    • step100+ шагов развития
    • lessons30 бесплатных лекций
    • lessons300 бонусных рублей на счет

    Бесплатные лекции

    Лучшие курсы по теме

    изображение курса

    Angular

    Антон Ларичев
    AI-тренажерыAI-тренажеры
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.6
    3 999 ₽ 6 990 ₽
    Подробнее
    изображение курса

    Nuxt

    Антон Ларичев
    AI-тренажерыAI-тренажеры
    Практика в студииПрактика в студии
    Гарантия
    Бонусы
    иконка звёздочки рейтинга5.0
    3 999 ₽ 6 990 ₽
    Подробнее
    изображение курса

    Feature-Sliced Design

    Антон Ларичев
    AI-тренажерыAI-тренажеры
    Практика в студииПрактика в студии
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.6
    3 999 ₽ 6 990 ₽
    Подробнее

    Похожие статьи

    Картинка поста Как войти в Codex из России: ChatGPT или API-ключ
    Иконка аватараАнтон
    Иконка календаря18 октября 2026
    AI-инструментыapiразработкаjuniorИконка уровня junior

    Как войти в Codex из России: ChatGPT или API-ключ

    В Codex есть два штатных способа входа: через аккаунт ChatGPT (`codex login`) и по API-ключу OpenAI (`codex login --with-api-key`). Из России оба закрыты: OpenAI не поддерживает Россию, регистрация из неподдерживаемой страны отклоняется, а ключ API нужно оплачивать зарубежной картой. Но входить в Codex не обязательно. Если указать в `~/.codex/config.toml` свой модельный провайдер с ключом из переменной окружения, Codex работает без аккаунта OpenAI вообще. Такой ключ с оплатой в рублях даёт AI для кода от PurpleSchool.

    Иконка чипа0
    Иконка глаза62
    Иконка комментариев0
    Картинка поста Сколько стоит Cursor в 2026 и как оплатить из России
    Иконка аватараАнтон
    Иконка календаря17 октября 2026
    AI-инструментыAnthropicapijuniorИконка уровня junior

    Сколько стоит Cursor в 2026 и как оплатить из России

    С 12 октября 2026 года Cursor продаётся в составе The X Subscription — общей подписки на Grok, Cursor и X Premium. Тарифы такие: Free — бесплатно, Plus — $8 в месяц, Premium — $30, Super — $100, Ultra — $200. Модели Claude и GPT в Cursor доступны только с Premium и оплачиваются отдельно, по ценам API. Из России оплатить подписку российской картой нельзя, а модели Claude и GPT Cursor не отдаёт в регионах, которые блокируют их провайдеры. Рабочая схема для России — бесплатный Cursor как редактор и агент Claude Code внутри него с ключом AI для кода от PurpleSchool от 499 ₽ в месяц.

    Иконка чипа0
    Иконка глаза91
    Иконка комментариев0
    Картинка поста Claude без VPN в России: как пользоваться в 2026
    Иконка аватараАнтон
    Иконка календаря16 октября 2026
    AnthropicAI-инструментыClaude CodejuniorИконка уровня junior

    Claude без VPN в России: как пользоваться в 2026

    Сайт claude.ai и приложения Claude из России без VPN не работают: Anthropic не включает Россию в список поддерживаемых регионов и закрывает доступ и к чату, и к API. Без VPN Claude доступен одним способом — через API-посредника, который сам обращается к Anthropic из поддерживаемой страны, а вам выдаёт ключ с оплатой в рублях. Так работает AI для кода от PurpleSchool: ключ подключается к Claude Code, VS Code, Cursor и другим инструментам разработчика, а также к вашему собственному коду. Окно чата как на claude.ai такой способ не даёт — это доступ к модели, а не к сайту.

    Иконка чипа0
    Иконка глаза276
    Иконка комментариев0
    Иконка чипа0