Перейти к содержанию
Educora
Начальный12 мин1 / 22

Базы данных и таблицы

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

Проверь себя
В этом уроке ты узнаешь
  • Объяснять, что такое база данных и СУБД
  • Различать строки, столбцы и ячейки таблицы
  • Понимать роль первичного и внешнего ключей
  • Выполнить свой первый SQL-запрос

В школе 1000 учеников, десятки предметов и тысячи оценок. Хранить всё это в тетради или даже в одном файле Excel со временем становится мучением: данные дублируются, появляются ошибки, а поиск нужного занимает часы. Банки, интернет-магазины, соцсети и электронные дневники решают эту задачу с помощью базы данных. А для общения с ней существует особый язык — SQL.

Что такое база данных?

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

Определение
СУБД (система управления базами данных)

Программа, которая создаёт и хранит базы данных и выполняет отправленные к ним запросы. Примеры: SQLite, MySQL, PostgreSQL, Microsoft SQL Server.

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

Таблица: строки и столбцы

Таблица хранит сведения об объектах одного вида: учениках, курсах, товарах. Все примеры этого курса работают с одной учебной базой данных. Посмотрим на таблицу courses (курсы). Выполни запрос ниже: SELECT * означает «взять все столбцы», FROM courses — «из таблицы courses», а ORDER BY id — «упорядочить по id».

SQL
SELECT *
FROM courses
ORDER BY id;
▸ Ожидаемый результат
id | title | subject | teacher | credits
1 | Algebra | Math | Ramin Səfərov | 4
2 | Geometry | Math | Ramin Səfərov | 3
3 | Mechanics | Physics | Ülviyyə Axundova | 4
4 | Organic Chemistry | Chemistry | Samir Hacıyev | 3
5 | World History | History | Nərmin Vəliyeva | 2
6 | Python Basics | Informatics | Elnur Qasımov | 3
7 | English B1 | English | Sara Mitchell | 2
Твой первый SQL-запрос. Запусти его и посмотри на результат.
  • Столбец (поле) — одно свойство: title (название), teacher (учитель), credits (кредиты). У каждого столбца есть имя и тип данных: текст, целое число, дробное число, дата.
  • Строка (запись) — вся информация об одном объекте. Например, строка 3 описывает курс Mechanics.
  • Ячейка — одно значение на пересечении строки и столбца, например число кредитов курса Mechanics: 4.
  • У строк в таблице нет собственного порядка. Если результат нужен в определённом порядке, пишем ORDER BY.

Ключи: как связаны таблицы

Определение
Первичный ключ (primary key)

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

Определение
Внешний ключ (foreign key)

Столбец, который ссылается на первичный ключ другой таблицы. Например, enrollments.student_id ссылается на students.id и показывает, к какому ученику относится запись о зачислении.

В таблице enrollments (зачисления на курсы) нет имён учеников — только их номера. Запрос ниже показывает курсы ученицы под номером 1, то есть Айсель: course_id 1 — это Algebra, а 6 — Python Basics. Так имя и город ученика хранятся только в одном месте — в таблице students — и нигде не повторяются.

SQL
SELECT *
FROM enrollments
WHERE student_id = 1
ORDER BY id;
▸ Ожидаемый результат
id | student_id | course_id | score | enrolled_on
1 | 1 | 1 | 92 | 2025-09-15
2 | 1 | 6 | 88 | 2025-09-15
WHERE оставляет только строки, подходящие под условие, — подробно мы разберём его в следующих уроках.
ТаблицаЧто хранитСтрок
studentsученики: имя, фамилия, возраст, класс, город, e-mail12
coursesкурсы: название, предмет, учитель, кредиты7
enrollmentsкакой ученик записан на какой курс и его балл20
productsтовары: название, категория, цена, остаток на складе10
customersпокупатели: имя, город, страна, дата регистрации7
ordersзаказы: кто, какой товар, сколько штук и когда12
Учебная база курса. Все примеры работают с этими шестью таблицами.

SQL и его диалекты

SQL (Structured Query Language — язык структурированных запросов) — стандартный язык общения с базами данных. Он декларативный: ты описываешь, что хочешь получить, а не как это найти, и СУБД сама выбирает лучший способ. Ключевые слова SQL не чувствительны к регистру, но их принято писать заглавными буквами. Каждая команда обычно заканчивается точкой с запятой (;).

SQL — это стандарт, но каждая СУБД добавила к нему свои расширения. Такие варианты называют диалектами. Основные команды (SELECT, WHERE, JOIN и другие) везде одинаковы, различаются мелкие детали. В этом курсе примеры выполняются в SQLite, а важные различия мы будем отмечать по ходу.

СУБДГде используетсяОсобенность
SQLiteмобильные приложения, браузеры, небольшие программыне нужен сервер: вся база — один файл
MySQLвеб-сайты и веб-приложенияоткрытый код, очень популярна
PostgreSQLсложные приложения, аналитикаоткрытый код, очень близка к стандарту SQL
SQL Serverкорпоративные системы на технологиях Microsoftпродукт Microsoft, её диалект называется T-SQL
1 / 6
Задание

Выведи все столбцы таблицы customers (покупатели) и упорядочи строки по id.

Задание · SQL
-- show every column of the customers table, sorted by id
▸ Ожидаемый результат
id | name | city | country | joined_on
1 | Anar Mustafayev | Bakı | Azerbaijan | 2024-01-10
2 | Lalə Əhmədova | Gəncə | Azerbaijan | 2024-03-22
3 | Emre Yılmaz | İstanbul | Türkiye | 2024-05-05
4 | Olga Ivanova | Moscow | Russia | 2024-06-18
5 | John Carter | London | United Kingdom | 2024-08-30
6 | Zəhra Hüseynli | Bakı | Azerbaijan | 2025-02-14
7 | Mehmet Kaya | Ankara | Türkiye | 2025-04-01
Задание

Выведи из enrollments все зачисления на курс номер 3 (Mechanics) и упорядочи их по id.

Задание · SQL
SELECT *
FROM enrollments
-- keep only course 3 and sort by id
▸ Ожидаемый результат
id | student_id | course_id | score | enrolled_on
4 | 2 | 3 | 81 | 2025-09-16
7 | 4 | 3 | 68 | 2025-09-18
12 | 6 | 3 | 77 | 2025-09-20
19 | 11 | 3 | 94 | 2025-09-23

Главное

  • База данных — упорядоченный набор данных, которым управляет СУБД.
  • В реляционной базе данные хранятся в таблицах: строка — один объект, столбец — одно свойство.
  • Первичный ключ однозначно определяет строку, а внешний ключ ссылается на строку другой таблицы.
  • SQL — декларативный язык: ты говоришь, что нужно, а СУБД решает, как это получить.
  • SQLite, MySQL, PostgreSQL и SQL Server понимают один и тот же базовый SQL и различаются лишь в деталях.

Проверь себя

Вопросов: 10. Каждый правильный ответ приносит XP.

1 / 10
Где в таблице хранится вся информация об одном объекте (например, об одном ученике)?