🗄️ Урок 1.1 — Как проходить курс
Модуль 1: Введение в базы данных и SQL
👋 Приветствие и знакомство
Привет! Добро пожаловать на курс по языку SQL. Меня зовут (ну, давай без лишних формальностей), и я буду твоим проводником в мир баз данных. Если ты никогда не работал с базами данных, если слово "SQL" звучит для тебя как заклинание из Гарри Поттера, если ты боишься сломать что-то в компьютере — не переживай. Ты попал по адресу.
Этот курс создан специально для людей, которые вообще ничего не знают о базах данных. Вообще ничего. Давай сразу договоримся: здесь нет глупых вопросов. Если тебе что-то непонятно — значит, я плохо объяснил. Напиши мне, и я перепишу это место понятнее.
SQL — это язык структурированных запросов (Structured Query Language). Если совсем просто: это язык, на котором ты разговариваешь с базой данных. Представь, что база данных — это огромная библиотека с тысячами книг. А SQL — это язык, на котором ты просишь библиотекаря найти конкретную книгу, показать все книги определённого автора или сказать, сколько книг стоит на полке. Только вместо библиотеки у нас компьютер, вместо книг — данные, а вместо библиотекаря — система управления базами данных (СУБД).
Зачем тебе это нужно? SQL — это один из самых востребованных навыков в IT. Аналитики данных, разработчики, тестировщики, продакт-менеджеры, маркетологи — все они используют SQL, чтобы получать ответы из данных. Умеешь SQL — можешь сам найти ответ на любой вопрос, не дёргая разработчиков. Это суперсила.
К концу этого курса ты будешь уверенно писать SQL-запросы любой сложности: выбирать данные, фильтровать, сортировать, группировать, соединять таблицы, добавлять новые записи, изменять и удалять старые. Ты сможешь работать с реальными базами данных и отвечать на бизнес-вопросы с помощью SQL.
Не пытайся запомнить всё подряд. SQL — это не школьный предмет, который нужно зубрить. Это навык, как езда на велосипеде. Ты можешь прочитать сто книг по вождению велосипеда, но по-настоящему научишься только когда сядешь и поедешь. Так же и с SQL: читай, пробуй, ошибайся, пробуй снова. Ошибки — это лучший способ обучения. Чем больше ошибок ты сделаешь прямо сейчас, тем меньше ты сделаешь их в реальной работе.
📚 Как построен этот курс
Курс разделён на модули, а каждый модуль — на короткие уроки. Вот структура:
Модуль 1: Введение — ты здесь. Разбираемся, что такое базы данных, SQL, устанавливаем инструменты.
- Урок 1.1 — Как проходить курс (этот урок)
- Урок 1.2 — Что такое базы данных и SQL
Модуль 2: Первые запросы — начинаем писать SQL. Самые важные команды для получения данных.
- Урок 2.1 — SELECT: учимся читать данные из таблиц
- Урок 2.2 — WHERE: фильтруем строки
- Урок 2.3 — AND, OR, ORDER BY: сложные условия и сортировка
Дальше будут ещё модули — про группировку, соединение таблиц, вложенные запросы, изменение данных и многое другое. Но не забегай вперёд. Сначала — база.
Каждый урок устроен одинаково:
- Объяснение концепции — простыми словами, без заумных терминов, с аналогиями из реальной жизни. Если встречается новое слово, я останавливаюсь и объясняю его.
- Пример с кодом — каждый новый приём показывается на работающем примере. Примеры используют одни и те же учебные таблицы, так что ты можешь спокойно сравнивать запросы между собой.
- Практика — в каждом уроке есть 3-5 заданий для самостоятельной работы. Их нужно делать обязательно. Даже если кажется, что и так всё понятно — сделай. Руки должны запомнить синтаксис.
- Итоги — краткий пересказ того, что мы выучили в уроке. Можно использовать как шпаргалку.
- Прочитай урок полностью от начала до конца
- Открой SQLite или онлайн-редактор
- Набери каждый пример вручную (не копируй — именно набери пальцами, это помогает запомнить)
- Поэкспериментируй: измени значения, добавь свои строки, попробуй сломать запрос
- Выполни задания в конце урока
- Если что-то непонятно — перечитай нужный раздел
Важное правило: не переходи к следующему уроку, пока не выполнишь задания из текущего. Задания небольшие, но они закрепляют материал. SQL учится только практикой. Ты можешь перечитать теорию сто раз, но если ни разу не написал запрос сам — ты не умеешь SQL. Это как учить иностранный язык: можно знать все правила грамматики, но если не говорить — язык не выучишь.
🔧 Устанавливаем SQLite на компьютер
SQLite — это самая простая система управления базами данных в мире. Она не требует установки сервера, настройки пользователей и паролей. Всё, что нужно — это один маленький файл. База данных тоже хранится в одном файле. Это идеальный вариант для обучения: никакой лишней сложности, только чистый SQL.
Вот что делаем:
Если у тебя macOS
Открой программу "Терминал". Проще всего найти её через поиск Spotlight: нажми Cmd + Пробел, введи "Терминал" и нажми Enter.
Теперь проверь, не установлен ли SQLite уже (на Mac его часто ставят по умолчанию):
sqlite3 --version Если видишь номер версии (например, 3.45.1) — отлично, SQLite уже есть.
Если нет — установим через Homebrew. Если Homebrew не установлен, сначала установи его одной командой с сайта brew.sh (там написана одна строка, скопируй и вставь в терминал).
После установки Homebrew выполни:
brew install sqlite3 Если у тебя Windows
- Открой браузер и зайди на sqlite.org/download.html
- Найди раздел "Precompiled binaries for Windows"
- Скачай файл sqlite-tools-win-x64-XXXX.zip (где XXXX — номер версии, бери самый новый)
- Распакуй архив. Внутри будет папка с тремя файлами: sqlite3.exe, sqlite3_analyzer.exe, sqldiff.exe
- Перемести папку в удобное место, например в
C:\sqlite - Теперь нужно добавить эту папку в системную переменную PATH, чтобы команда
sqlite3работала из любой папки. Как это сделать:- Нажми Win + R, введи
sysdm.cpl, нажми Enter - Перейди на вкладку "Дополнительно"
- Нажми "Переменные среды"
- В разделе "Системные переменные" найди
Pathи нажми "Изменить" - Нажми "Создать" и введи
C:\sqlite(или путь к твоей папке) - Нажми OK во всех окнах
- Нажми Win + R, введи
- Открой Командную строку (Win + R, введи
cmd, Enter). - Введи
sqlite3 --version— если видишь версию, всё получилось.
Если у тебя Linux (Ubuntu/Debian)
sudo apt update && sudo apt install sqlite3 -y
После установки проверь: sqlite3 --version
Проверка установки (для всех ОС)
Открой терминал (или командную строку) и введи:
sqlite3 --version
Ты должен увидеть что-то вроде:
3.45.1 2024-01-30 16:01:20
Если да — всё работает. Если нет — перечитай инструкцию для своей операционной системы. Если всё равно не получается — просто используй онлайн-редактор (ссылки ниже). Не трать время на установку, если что-то идёт не так. Онлайн-редакторы работают точно так же для учебных целей.
Если после добавления в PATH команда не работает, закрой и открой Командную строку заново. Изменения PATH вступают в силу только для новых окон. Если всё равно не работает — перезагрузи компьютер (серьёзно, это помогает).
🌐 Альтернатива: используем онлайн-редактор
Не хочешь возиться с установкой? Не вопрос. Используй онлайн-редактор. Это сайт, открываешь в браузере и сразу пишешь SQL. Ничего устанавливать не нужно.
Вот три проверенных варианта:
1. sqliteonline.com (рекомендую для новичков)
Интерфейс простой и понятный. Слева — окно для SQL-запросов. Справа — результат. Сверху кнопка "Execute" (или нажми Shift + Enter). Можно загрузить свою базу данных через кнопку "File -> Open DB". Поддерживает только SQLite.
Делится на две панели: левая — для создания схемы (CREATE TABLE, INSERT), правая — для запросов (SELECT). В левом верхнем углу можно выбрать СУБД: выбери SQLite. После написания кода нажми "Run". Результат появится в нижней части экрана.
Классика, которой пользуются уже много лет. Работает аналогично: слева схема, справа запросы.
Какой выбрать? Для этого курса подойдёт любой. Я рекомендую sqliteonline.com — он проще и не требует разделения на две панели. Но если он недоступен (иногда подвисает), используй db-fiddle.com.
Если у тебя медленный интернет или компьютер, ставь SQLite локально. Он работает без интернета и мгновенно. Если интернет быстрый и не хочется ничего устанавливать — используй онлайн-редактор. Для обучения разницы нет никакой.
📥 Создаём учебную базу данных
Теперь самое интересное. Мы создадим учебную базу данных с тремя таблицами: сотрудники (employees), товары (products) и клиенты (customers). С этими таблицами мы будем работать во всех уроках курса.
Скопируй этот код и выполни его в своём SQLite (или онлайн-редакторе). Не пугайся, если что-то непонятно — мы разберём все эти команды в следующих уроках. Пока просто создай базу данных:
-- Таблица сотрудников
CREATE TABLE employees ( id INTEGER PRIMARY KEY, name TEXT, position TEXT, salary INTEGER, department TEXT, age INTEGER
); INSERT INTO employees VALUES (1, 'Иван Петров', 'Менеджер', 80000, 'Продажи', 35);
INSERT INTO employees VALUES (2, 'Мария Иванова', 'Разработчик', 95000, 'IT', 28);
INSERT INTO employees VALUES (3, 'Сергей Смирнов', 'Аналитик', 70000, 'Аналитика', 42);
INSERT INTO employees VALUES (4, 'Анна Кузнецова', 'Дизайнер', 65000, 'Дизайн', 31);
INSERT INTO employees VALUES (5, 'Дмитрий Новиков', 'Тестировщик', 55000, 'IT', 26);
INSERT INTO employees VALUES (6, 'Елена Попова', 'HR-менеджер', 60000, 'HR', 39);
INSERT INTO employees VALUES (7, 'Алексей Волков', 'Разработчик', 100000, 'IT', 33);
INSERT INTO employees VALUES (8, 'Ольга Соколова', 'Бухгалтер', 58000, 'Финансы', 45);
INSERT INTO employees VALUES (9, 'Николай Морозов', 'Менеджер', 75000, 'Продажи', 29);
INSERT INTO employees VALUES (10, 'Татьяна Белова', 'Аналитик', 72000, 'Аналитика', 36); -- Таблица товаров
CREATE TABLE products ( id INTEGER PRIMARY KEY, name TEXT, price REAL, category TEXT, quantity INTEGER
); INSERT INTO products VALUES (1, 'Ноутбук', 75000.00, 'Электроника', 15);
INSERT INTO products VALUES (2, 'Смартфон', 45000.00, 'Электроника', 30);
INSERT INTO products VALUES (3, 'Наушники', 3500.00, 'Аксессуары', 100);
INSERT INTO products VALUES (4, 'Клавиатура', 2500.00, 'Аксессуары', 50);
INSERT INTO products VALUES (5, 'Монитор', 28000.00, 'Электроника', 20);
INSERT INTO products VALUES (6, 'Мышь', 1500.00, 'Аксессуары', 80);
INSERT INTO products VALUES (7, 'Принтер', 18000.00, 'Офис', 10);
INSERT INTO products VALUES (8, 'Стол офисный', 12000.00, 'Офис', 25);
INSERT INTO products VALUES (9, 'Стул', 8500.00, 'Офис', 40);
INSERT INTO products VALUES (10, 'Лампа настольная', 2200.00, 'Аксессуары', 60); -- Таблица клиентов
CREATE TABLE customers ( id INTEGER PRIMARY KEY, name TEXT, city TEXT, age INTEGER, bonus INTEGER
); INSERT INTO customers VALUES (1, 'Иван Петров', 'Москва', 35, 500);
INSERT INTO customers VALUES (2, 'Мария Смирнова', 'Санкт-Петербург', 28, 300);
INSERT INTO customers VALUES (3, 'Сергей Иванов', 'Москва', 42, 700);
INSERT INTO customers VALUES (4, 'Анна Козлова', 'Казань', 25, 200);
INSERT INTO customers VALUES (5, 'Дмитрий Сидоров', 'Новосибирск', 38, 450);
INSERT INTO customers VALUES (6, 'Елена Новикова', 'Москва', 31, 600);
INSERT INTO customers VALUES (7, 'Алексей Фёдоров', 'Екатеринбург', 45, 350);
INSERT INTO customers VALUES (8, 'Ольга Морозова', 'Санкт-Петербург', 27, 250);
INSERT INTO customers VALUES (9, 'Николай Григорьев', 'Москва', 33, 550);
INSERT INTO customers VALUES (10, 'Татьяна Павлова', 'Казань', 29, 400); Как выполнить этот код:
- В локальном SQLite: открой терминал, введи
sqlite3 my_school.db, затем вставь весь код выше и нажми Enter. Если скопировать весь блок и вставить — он выполнится целиком. - В sqliteonline.com: вставь код в левое поле, нажми "Execute" (Shift + Enter).
- В db-fiddle.com: выбери SQLite слева вверху, вставь код в левую панель, нажми "Run".
После выполнения у тебя в базе данных будет три таблицы, заполненные данными. Поздравляю! 🎉
Если ты случайно выполнил код дважды, SQLite выдаст ошибку "table employees already exists". Это нормально! Просто удали базу данных (закрой SQLite, удали файл .db и открой заново) или в онлайн-редакторе начни новую сессию. В следующих уроках мы узнаем, как правильно избегать таких ошибок и как удалять таблицы.
🚀 Первый запуск: .open и .tables
Давай разберёмся с основными командами SQLite. Они начинаются с точки — это "мета-команды", то есть команды для управления самим SQLite, а не для работы с данными. Они работают только в локальном SQLite (в терминале). В онлайн-редакторах они не нужны.
.open — открыть (или создать) базу данных
Если ты хочешь открыть существующую базу данных или создать новую:
.open my_database.db
Если файл my_database.db существует — он откроется. Если нет — создастся новый пустой файл.
Можно сделать то же самое при запуске sqlite3:
sqlite3 my_database.db .tables — показать все таблицы в базе
После того, как ты создал таблицы (выполнил CREATE TABLE), проверь, что они действительно есть:
.tables
Вывод должен быть:
customers employees products
Три таблицы на месте. Всё в порядке.
.schema — показать структуру таблицы
Хочешь вспомнить, какие столбцы есть в таблице? Используй .schema:
.schema employees
Вывод:
CREATE TABLE employees ( id INTEGER PRIMARY KEY, name TEXT, position TEXT, salary INTEGER, department TEXT, age INTEGER
);
Видишь? Это та самая команда CREATE, которую мы выполняли. SQLite запомнил структуру и показывает её по запросу. Если забудешь, какие столбцы есть в таблице — просто вызови .schema имя_таблицы.
.help — справка по всем командам
Забыл, как называется нужная команда? Просто напиши:
.help
SQLite покажет список всех доступных мета-команд с кратким описанием. Очень полезно, когда ты только начинаешь.
.exit — выйти из SQLite
.exit
Или просто нажми Ctrl + D (на Mac/Linux) или Ctrl + Z (на Windows).
Настройка удобного вывода
По умолчанию SQLite выводит результаты в виде столбцов, разделённых вертикальными чертами. Это не очень удобно читать. Давай настроим вывод в виде таблицы с выравниванием:
.headers on
.mode column
.headers on— показывает названия столбцов (заголовки).mode column— выравнивает данные по столбцам, как в нормальной таблице
Попробуй теперь выполнить SELECT * FROM employees; — данные выглядят гораздо аккуратнее, правда?
Можешь добавить эти две строки в файл ~/.sqliterc (на Mac/Linux), чтобы они применялись автоматически при каждом запуске. Или просто вводи их каждый раз — это недолго.
🎯 Твой первый SQL-запрос
Хватит подготовки. Давай напишем первый настоящий SQL-запрос. Он очень простой, но волшебный. Он покажет ВСЕ данные из таблицы:
SELECT * FROM employees; Выполни его. Ты должен увидеть таблицу с 10 строками — все наши сотрудники.
Разберём по частям, что здесь написано:
SELECT— "выбери" или "покажи". Это главное слово в SQL. Любой запрос на получение данных начинается с SELECT.*— звёздочка означает "все столбцы". Просто запомни: звёздочка = всё.FROM employees— "из таблицы employees". Мы указываем, из какой таблицы брать данные.;— точка с запятой в конце. Как точка в предложении.
Попробуй ещё два запроса. Они покажут данные из других таблиц:
SELECT * FROM products;
SELECT * FROM customers; Ты только что выполнил SQL-запросы! Все три таблицы вывели свои данные. Чувствуешь себя программистом? Потому что ты им стал (ну, почти).
Попробуй убрать точку с запятой: SELECT * FROM employees (без ;). В SQLite запрос всё равно выполнится. Но в других СУБД (PostgreSQL, MySQL) без точки с запятой будет ошибка. Поэтому привыкай ставить ; всегда — это правильная привычка, как пристёгиваться в машине.
🔗 Полезные ссылки для начинающих
Вот список ресурсов, которые пригодятся в процессе обучения:
| Ресурс | Для чего |
|---|---|
| sqliteonline.com | Онлайн-редактор SQLite (рекомендую) |
| db-fiddle.com | Онлайн-редактор с поддержкой разных СУБД |
| sqlfiddle.com | Онлайн-редактор (классика) |
| sqlite.org/docs.html | Официальная документация SQLite (англ.) |
| sqlitetutorial.net | Туториалы по SQLite с примерами (англ.) |
| w3schools.com/sql | Интерактивный учебник SQL (англ.) |
| leetcode.com/problemset/database | Задачи по SQL для практики (средний уровень) |
❓ Часто задаваемые вопросы
В: Я ничего не понял в этом уроке. Что делать?
О: Это нормально! Урок 1.1 — вводный, он знакомит с инструментами. Если что-то непонятно про SQL — не обращай внимания, просто создай базу данных и выполни SELECT. Главное в этом уроке — настроить рабочее место. Остальное придёт в следующих уроках.
В: У меня ошибка "table employees already exists".
О: Ты выполнил код создания таблиц дважды. В онлайн-редакторе просто обнови страницу и выполни код заново. В локальном SQLite закрой сессию (.exit), удали файл .db и создай заново.
В: Можно ли использовать русские названия таблиц?
О: Технически — можно, но не нужно. В реальной работе все названия таблиц и столбцов пишутся латиницей. Привыкай с самого начала.
В: Чем отличается SQLite от MySQL и PostgreSQL?
О: SQLite — это "облегчённая" версия. Она хранит всю базу в одном файле и не требует сервера. MySQL и PostgreSQL — полноценные серверные СУБД, они мощнее, но сложнее в настройке. Для обучения SQLite идеален. В следующем уроке мы поговорим об этом подробнее.
В: Нужно ли учить английский для SQL?
О: Все ключевые слова в SQL — это английские слова (SELECT — выбрать, FROM — из, WHERE — где). Знание английского сильно помогает, но не обязательно. Наш курс на русском, и ты сможешь работать с SQL, зная лишь базовый английский.
В: Сколько времени нужно, чтобы выучить SQL?
О: Основы (SELECT, WHERE, JOIN, GROUP BY) можно освоить за 2-3 недели регулярных занятий. До уверенного уровня — 2-3 месяца практики. Но всё зависит от того, сколько времени ты уделяешь практике.
📝 Что мы узнали в этом уроке
Подведём итог. Вот что ты должен вынести из урока 1.1:
- SQL — это язык для работы с базами данных. Он нужен, чтобы получать, добавлять, изменять и удалять данные.
- Курс построен на коротких уроках с обязательной практикой. Не пропускай задания!
- SQLite — самая простая СУБД. Данные хранятся в одном файле. Подходит для обучения.
- SQLite можно установить локально или использовать онлайн-редактор (sqliteonline.com, db-fiddle.com).
- Мета-команды SQLite:
.tables(список таблиц),.schema(структура таблицы),.headers on+.mode column(красивый вывод),.exit(выход). - Команда
SELECT * FROM имя_таблицы;— твой первый SQL-запрос. Он показывает все данные из таблицы. - Точка с запятой (;) завершает SQL-команду. Ставь её всегда.
Ты сделал первый и самый важный шаг — настроил рабочее место и написал первый запрос. В следующем уроке мы разберёмся, что такое базы данных вообще, какие они бывают и зачем они нужны.
Увидимся в уроке 1.2! 👋
Урок 1.1: Как проходить курс
9 вопросов