Основные команды SQL, чтобы вспомнить базу.
Создание базы данных и таблиц
CREATE DATABASE database_name;
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
);
Вставка данных
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
Обновление данных
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
Удаление данных
DELETE FROM table_name
WHERE condition;
Запросы данных
Выбор данных
SELECT column1, column2, ...
FROM table_name
WHERE condition;
Сортировка данных
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC];
Группировка данных
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;
Соединения (Joins)
Внутреннее соединение (INNER JOIN)
SELECT columns
FROM table1
INNER JOIN table2
ON table1.common_column = table2.common_column;
Левое соединение (LEFT JOIN)
SELECT columns
FROM table1
LEFT JOIN table2
ON table1.common_column = table2.common_column;
Правое соединение (RIGHT JOIN)
SELECT columns
FROM table1
RIGHT JOIN table2
ON table1.common_column = table2.common_column;
Типы данных
Числовые типы
INT
— целое числоFLOAT
— число с плавающей точкойDECIMAL
— число с фиксированной точкой
Текстовые типы
CHAR
— строка фиксированной длиныVARCHAR
— строка переменной длиныTEXT
— длинный текст
Типы даты и времени
DATE
— дата (YYYY-MM-DD)DATETIME
— дата и время (YYYY-MM-DD HH:MM:SS)TIMESTAMP
— временная метка
Основные типы связей
В реляционных базах данных связи между таблицами играют ключевую роль в организации и управлении данными. Вот основные типы связей:
1. Один-к-одному (One-to-One)
Каждая запись в одной таблице соответствует одной записи в другой таблице.
- Пример: Таблица
Пользователи
и таблицаПрофили
, где каждый пользователь имеет один профиль.
CREATE TABLE Users (
user_id INT PRIMARY KEY,
username VARCHAR(50)
);
CREATE TABLE Profiles (
profile_id INT PRIMARY KEY,
user_id INT,
bio TEXT,
FOREIGN KEY (user_id) REFERENCES Users(user_id)
);
2. Один-ко-многим (One-to-Many)
Одна запись в одной таблице может соответствовать нескольким записям в другой таблице.
- Пример: Таблица
Категории
и таблицаПродукты
, где каждая категория может содержать несколько продуктов.
CREATE TABLE Categories (
category_id INT PRIMARY KEY,
category_name VARCHAR(50)
);
CREATE TABLE Products (
product_id INT PRIMARY KEY,
product_name VARCHAR(50),
category_id INT,
FOREIGN KEY (category_id) REFERENCES Categories(category_id)
);
3. Многие-ко-многим (Many-to-Many)
Каждая запись в одной таблице может соответствовать нескольким записям в другой таблице и наоборот. Для реализации такой связи обычно используется промежуточная таблица.
- Пример: Таблица
Студенты
и таблицаКурсы
, где каждый студент может записаться на несколько курсов, а каждый курс может включать нескольких студентов.
CREATE TABLE Students (
student_id INT PRIMARY KEY,
student_name VARCHAR(50)
);
CREATE TABLE Courses (
course_id INT PRIMARY KEY,
course_name VARCHAR(50)
);
CREATE TABLE Enrollments (
student_id INT,
course_id INT,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES Students(student_id),
FOREIGN KEY (course_id) REFERENCES Courses(course_id)
);
4. Самоссылающиеся связи (Self-Referencing)
Таблица может ссылаться сама на себя, что полезно для представления иерархий.
- Пример: Таблица
Сотрудники
, где каждый сотрудник может иметь менеджера, который также является сотрудником.
CREATE TABLE Employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(50),
manager_id INT,
FOREIGN KEY (manager_id) REFERENCES Employees(employee_id)
);
Ключи и индексы
Первичный ключ (Primary Key)
Первичный ключ — это уникальный идентификатор каждой записи в таблице. Он гарантирует, что каждая строка в таблице уникальна и может быть однозначно идентифицирована. Основные функции первичного ключа:
- Уникальность: Обеспечивает уникальность каждой записи в таблице.
- Идентификация: Позволяет однозначно идентифицировать каждую запись.
- Целостность данных: Предотвращает дублирование записей.
- Связи: Используется для создания связей между таблицами через внешние ключи.
Пример создания первичного ключа:
CREATE TABLE Users (
user_id INT PRIMARY KEY,
username VARCHAR(50)
);
Внешний ключ (Foreign Key)
Внешний ключ — это поле или набор полей в одной таблице, которое ссылается на первичный ключ другой таблицы. Основные функции внешнего ключа:
- Связи между таблицами: Обеспечивает связь между таблицами, поддерживая целостность данных.
- Целостность ссылок: Гарантирует, что значения внешнего ключа соответствуют значениям первичного ключа в связанной таблице.
- Каскадные операции: Позволяет выполнять каскадные обновления и удаления.
Пример создания внешнего ключа:
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
user_id INT,
order_date DATE,
FOREIGN KEY (user_id) REFERENCES Users(user_id)
);
Уникальный ключ (Unique Key)
Уникальный ключ — это ограничение, которое обеспечивает уникальность значений в одном или нескольких столбцах таблицы. В отличие от первичного ключа, уникальный ключ может принимать значение NULL.
Пример создания уникального ключа:
CREATE TABLE Products (
product_id INT PRIMARY KEY,
product_name VARCHAR(50) UNIQUE
);
Индексы (Indexes)
Индексы — это структуры данных, которые улучшают скорость выполнения запросов к базе данных. Индексы создаются на одном или нескольких столбцах таблицы и позволяют быстро находить записи.
Пример создания индекса:
CREATE INDEX idx_product_name
ON Products (product_name);
Эти ключи и индексы помогают поддерживать целостность данных, оптимизировать запросы и обеспечивать эффективное управление базой данных.