ГЛАВА 5. БАЗЫ ДАННЫХ

📌База данных (БД) – это система, в которой организованно хранятся данные.📌
📌Реляционные базы данных (SQL) – хранят данные в таблицах.📌
📌NoSQL базы данных – хранят данные в виде документов, ключ-значение, графов.📌
📌Примеры СУБД (систем управления базами данных):📌

  • Реляционные (SQL): MySQL, PostgreSQL, Oracle.
  • NoSQL(нерялиционная): MongoDB, Firebase, Redis.

Основные элементы базы данных

📌Таблица – структура, в которой хранятся данные.📌
📌Столбец (поле) – содержит один тип данных (например, имя, ID).📌
📌Строка (запись) – одна запись в таблице.📌
📌Первичный ключ (Primary Key) – уникальный идентификатор строки.📌
📌Внешний ключ (Foreign Key) – связывает таблицы между собой.📌

Типы данных в SQL

📌Часто используемые типы данных:📌

  • VARCHAR(n) – текст (например, имена).
  • INT – целые числа (например, возраст, ID).
  • FLOAT – числа с запятой (например, цены).
  • BOOLEAN – логические значения (true/false).
  • DATE – дата (например, «2024-01-31»).

SQL – язык работы с базами данных

📌SQL (Structured Query Language) – язык для управления данными в БД.📌
📌Основные команды SQL:📌

КомандаОписаниеПример
CREATE TABLEСоздать таблицуCREATE TABLE users (id INT, name VARCHAR(50));
INSERT INTOДобавить данныеINSERT INTO users VALUES (1, ‘Alice’);
SELECTПолучить данныеSELECT * FROM users;
UPDATEОбновить данныеUPDATE users SET name=’Bob’ WHERE id=1;
DELETEУдалить данныеDELETE FROM users WHERE id=1;
DROP TABLEУдалить таблицуDROP TABLE users;

Фильтрация данных в SQL

📌Как выбрать определённые данные?📌

WHERE – выбирает строки с нужными значениями.
SELECT * FROM users WHERE name = ‘Alice’;

ORDER BY – сортирует данные.
SELECT * FROM users ORDER BY name ASC;

LIMIT – ограничивает количество строк.
SELECT * FROM users LIMIT 5;

DISTINCT – убирает дубликаты.
SELECT DISTINCT city FROM users;

LIKE – поиск по шаблону.
SELECT * FROM users WHERE name LIKE ‘A%’;

Связи между таблицами

📌Типы связей в БД:📌

Один ко многим (1:M) – один элемент связан с несколькими (например, один пользователь – много заказов).
Многие ко многим (M:M) – связь через промежуточную таблицу.
Один к одному (1:1) – редкий тип (например, один паспорт – один человек).
Внешний ключ (FOREIGN KEY) – используется для связи таблиц.

CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
FOREIGN KEY (user_id) REFERENCES users(id)
);

Работа с группировками

📌Группировка данных в SQL:📌

GROUP BY – группирует данные.

SELECT city, COUNT(*) FROM users GROUP BY city;

HAVING – фильтрация после GROUP BY.

SELECT city, COUNT(*) FROM users GROUP BY city HAVING COUNT(*) > 10;

Соединение таблиц (JOIN)

📌Типы соединений (JOIN):📌

INNER JOIN – выводит только совпадающие данные.
LEFT JOIN – все данные из первой таблицы + совпадающие из второй.
RIGHT JOIN – все данные из второй таблицы + совпадающие из первой.

SELECT users.name, orders.order_id
FROM users
INNER JOIN orders ON users.id = orders.user_id;

Удаление и изменение таблиц

📌Основные команды:📌

DROP TABLE – полностью удаляет таблицу.
ALTER TABLE – изменяет структуру таблицы.
TRUNCATE TABLE – очищает таблицу, не удаляя её структуру.