Информатика
Тема 3: Основы программированияУрок 7: SQL. Работа с базами данных
- Видео
- Тренажер
- Теория
В этом уроке мы посмотрим, как работать с современными БД и писать запросы на языке SQL (Structured Query Language).
Таблицы в современных БД очень напоминают Excel. Те же понятия таблиц, столбцов и строк, при этом у столбцов есть чётко заданные типы данных (числа, даты, строки). В БД таблицы могут быть связаны между собой, отсюда их название — Реляционные Базы Данных (relation — связь). Для управления базами данных мы используем различные СУБД (Системы Управления БД) — Microsoft SQL, PostgreSQL, MySQL, Oracle.
Общая концепция связанных таблиц есть практически везде.
SQL — язык запросов для работы с базами данных. SQL помогает эффективно находить среди большого объёма данных нужную информацию, а затем сортировать, структурировать и представлять её в наиболее простом и понятном виде.
С помощью SQL можно:
● собирать и хранить данные в виде таблиц;
● изменять их содержимое и структуру;
● объединять данные и выполнять вычисления;
● защищать и распределять доступ.
Язык запросов SQL тоже стандартизирован, и, хотя отличия в зависимости от производителя СУБД есть, на базовом уровне они не существенны. Мы рассмотрим работу с SQL на примере СУБД MySQL и её онлайн версии: https://onecompiler.com/mysql/3ync4wtqw
Что значит, что таблицы связаны? У таблиц есть некое общее поле, обычно числовой идентификатор. Есть таблица должностей (positions) и таблица отделов (departments), с которыми связана таблица сотрудников (employees). Связь идет с помощью полей DepartmentID и PositionID в таблице сотрудников.
Создавая отдельные таблицы под Должности и Отделы, решается сразу несколько задач. Разделение данных позволяет в одном месте редактировать название отдела или должности, вместо поиска всех строк с одним отделом в таблице Сотрудников и редактирования их. Также эти таблицы можно использовать и для других таблиц в будущем, например для данных о структуре компании, или в таблицах документов, где нужно указывать отдел и должность.
Также на практике часто используются 4 базовых функции при работе с базами данных: Create, Read, Update, Delete. Создать новые данные, прочитать существующие, обновить что-то в существующих, и удалить данные.
Эти функции, на языке SQL записываются как: INSERT INTO—вставка новых данных в таблицу, SELECT—выбор из таблицы, UPDATE—обновление существующих данных, DELETE—удаление данных.
например, для таблицы выше выбрать имя и email:
Select name, email FROM employees;
выбрать имя и email с условием что имя равно Иван:
Select name, email FROM employees where name=’Иван’;
или вот условие на дату найма после 01.01.2022:
Select name, email FROM employees where HireDate>’2022-01-01’;
И последнее, о чем стоит рассказать, это соединение таблиц. Например, мы хотим к таблице сотрудников присоединить таблицу с названием его отдела (departments):
Рис. 23.3
Мы можем объединить только те таблицы, у которых есть общее ключевое поле. Чтобы объединять строки из двух или более таблиц на основе ключевого поля между ними, используется оператор JOIN. Всего есть четыре типа соединений, но чаще всего используется LEFT JOIN. С помощью левого внешнего соединения выбираются все записи первой (левой) таблицы, даже если они не соответствуют записям во второй (правой) таблице.
вот как выглядит запрос:
SELECT employees.name, employees.email,
departments.Name AS dptName
FROM employees
LEFT JOIN departments ON employees.DepartmentID=departments.id
Начнем снизу — в последней строке видно условие объединения таблиц, что DepartmentID в таблице employees равен столбцу id в таблице departments.
А в первой строке появилось еще ключевое слово AS для создания псевдонима столбца. Так как два столбца Name в обеих таблицах называются одинаково, мы дали псевдоним dptName столбцу из таблицы отделов.
Отметим, что SQL – это именно язык запросов, а не язык программирования. Его используют только для работы с базами данных. Написать на нём полноценный сайт или приложение невозможно.
Дополнительные материалы:
§1.6 Система управления базами данных (Информатика: учебник для 9 класса / Л.Л. Босова, А.Ю. Босова. — М.: БИНОМ. Лаборатория знаний, 2013)
Глава 3. Базы данных (Информатика. Углубленный уровень: учебник для 11 класса: в 2 ч. Ч.1 / К.Ю. Поляков, Е.А. Еремин. — М.: БИНОМ. Лаборатория знаний, 2013)