Таблицы в SQL: типы и операции
Анализ данных • 15 июля 2024 • 5 мин чтения
Таблицы в SQL: типы и операции
Базы данных, к которым обращаются команды SQL, состоят из таблиц. В этой статье мы подробно рассмотрим различные типы таблиц и основные операции, которые можно выполнять над ними.
Таблицы в SQL (Structured Query Language) — это ключевые объекты реляционных баз данных, предназначенные для хранения данных в структурированном формате. Термин «реляционные базы данных» означает, что данные в них хранятся в виде взаимосвязанных таблиц.
SQL-таблицы состоят из строк и столбцов: каждая строка представляет одну запись, а каждый столбец — атрибут этой записи. Это означает, что каждый столбец описывает какое-то свойство или характеристику записей в таблице. Например, в таблице сотрудников (Employees) столбцы могут включать следующие атрибуты записей сотрудников в каждой строке: кодовый номер сотрудника (EmployeeID), имя (FirstName), фамилия (LastName), дата рождения (BirthDate), дата найма (HireDate) и зарплата (Salary).
Пример таблицы SQL Employees с данными сотрудников компании
Таблицы обеспечивают удобство в управлении данными, позволяют эффективно выполнять запросы, сортировать, фильтровать и агрегировать данные.
Есть разные типы таблиц SQL:
● обычные,
● секционированные,
● временные,
● системные,
● широкие.
Выбор типа таблицы в SQL зависит от различных факторов, включая размер данных, структуру данных, частоту операций чтения и записи, требования к производительности.
Научиться создавать таблицы в SQL и управлять данными в базах поможет курс «SQL для работы с данными и аналитики». После обучения на курсе вы сможете уверенно использовать SQL в работе с базами данных и получите навыки работы с PostgreSQL, ClickHouse и другими инструментами.
Обычные таблицы — базовый и наиболее распространённый тип таблиц в реляционных базах данных. Их используют для хранения данных, которые часто запрашиваются и обновляются.
В обычных таблицах применяют ограничения — условия, которые применяются к данным в таблице, чтобы обеспечить их целостность, правильность и согласованность. Они поддерживают целостность базы данных, помогают предотвратить ввод некорректных данных и указывают на отсутствие данных в столбце. Отсутствие данных обозначается специальным значением NULL.
NULL — это не то же самое, что ноль при числовых данных или пустая строка при текстовых данных, это именно отсутствие значения.
Основные типы ограничений:
1. PRIMARY KEY — первичный ключ таблицы SQL. Уникально определяет каждую запись в таблице. Это ограничение должно содержать уникальные значения и не допускает NULL.
2. FOREIGN KEY — внешний ключ таблицы SQL. Используется для связи одной таблицы с другой. Обеспечивает целостность данных, гарантируя, что значение столбца или группы столбцов соответствует значению столбца в другой таблице.
3. UNIQUE — уникальное значение. Обеспечивает уникальность значений в одном или сразу в нескольких столбцах таблицы. Это ограничение допускает наличие одного значения NULL в столбце.
4. NOT NULL — не допускается значение NULL. Ограничение даёт гарантию, что столбец не будет содержать значение NULL. Это полезно для столбцов, которые всегда должны иметь значение.
5. CHECK — проверка. Используется для проверки, что все значения в столбце удовлетворяют определенному условию.
6. DEFAULT — значение по умолчанию. Задаёт значение для столбца по умолчанию, если не указано иное значение при вставке записи.
Пример создания обычной таблицы в SQL с названием Employees
При создании таблиц SQL важно правильно выбрать тип данных, которые используются в каждом столбце. В примере создания обычной таблицы для хранения имён и фамилий используются строки переменной длины (VARCHAR), для дат — тип DATE, а для денежных значений — десятичный тип (DECIMAL). Кроме того, ограничения, такие как NOT NULL, могут быть использованы для обеспечения того, чтобы определённые столбцы всегда содержали значения.
Секционированные таблицы предназначены для улучшения производительности и управляемости крупных таблиц с помощью разделения их на более мелкие и управляемые секции. Такие секции программисты называют партициями. Каждая партиция может храниться в отдельном месте на диске, что позволяет более эффективно обрабатывать большие объёмы данных и уменьшает время выполнения запросов. Например, данные могут быть разделены по датам или географическим регионам.
Пример создания секционированной таблицы в SQL
Секционирование может быть выполнено по диапазону данных, списку или хэш-функции (функция, которая преобразует данные в хэш-код), в зависимости от потребностей системы. Например, если компания ведёт продажи в нескольких регионах, можно создать партиции по регионам. Таблица в таком виде упростит анализ продаж по регионам и ускорит выполнение запросов.
Временные таблицы используются для временного хранения данных в рамках текущей сессии или транзакции. Они автоматически удаляются после завершения сессии или транзакции. Это делает их полезными для промежуточных расчётов и временных данных.
Временные таблицы могут быть глобальными и локальными. Глобальные временные таблицы доступны для всех сессий, а локальные — только для текущей сессии.
Пример создания временной таблицы в SQL
Временные таблицы особенно полезны для сложных запросов и операций, где требуется промежуточное хранение данных. Например, при создании отчётов, которые требуют сложных агрегатных функций и объединений, временные таблицы могут значительно упростить процесс.
Системные таблицы содержат метаданные и информацию о структуре базы данных, таких как схемы, таблицы, индексы и другие объекты. Пользователи обычно не манипулируют системными таблицами напрямую, так как они управляются СУБД (Системой управления базами данных). Однако доступ к системным таблицам может быть полезен для получения информации о структуре базы данных и её состоянии.
Пример обращения к системным таблицам в SQL
Эта команда возвращает информацию о всех таблицах, определённых в базе данных. Системные таблицы могут содержать информацию о колонках таблиц, индексах, ключах и других объектах, что позволяет администраторам баз данных и разработчикам лучше понимать и управлять структурой базы данных.
Широкие таблицы представляют собой таблицы, которые могут содержать большое количество столбцов — до 1024. Они используются для хранения данных, которые характеризуются большим числом атрибутов. Такие таблицы полезны в случаях, когда необходимо работать с широким набором данных, например, в аналитических приложениях.
Пример создания широкой таблицы в SQL
Широкие таблицы требуют особого внимания к проектированию и индексации, чтобы избежать проблем с производительностью. Например, при создании широкой таблицы важно продумать, какие столбцы будут наиболее часто использоваться в запросах, и исходя из этого настроить индексы.
Связанными таблицами в SQL называют таблицы, между которыми существует определённая связь или отношение. Вот основные типы связей между таблицами:
- Один ко многим (One-to-Many). Такая связь означает, что одна запись в одной таблице может иметь множество соответствующих записей в другой таблице.
- Многие ко многим (Many-to-Many). Эта связь означает, что множество записей в одной таблице может быть связано со множеством записей в другой таблице.
- Один к одному (One-to-One). Связь «один к одному» означает, что каждая запись в одной таблице может быть связана с одной записью в другой таблице.
Основную роль в установлении и поддержании связей между таблицами в базе данных играет внешний ключ (FOREIGN KEY). Он указывает на столбец или набор столбцов в одной таблице, которые ссылаются на первичный ключ (или уникальный ключ) в другой таблице.
Для управления данными пользователи баз данных используют команды, проводящие операции. Среди основных операций — создание таблиц, вставка, выборка, обновление и удаление данных.
Чтобы в базу данных SQL добавить таблицу, нужно определить структуру таблицы, включая названия и типы данных столбцов, а также любые необходимые ограничения. Важно учитывать, какие данные будут храниться в таблице и как они будут использоваться.
Пример создания таблицы в SQL
SQL-код из примера создаёт таблицу Departments с помощью команды CREATE с двумя столбцами: DepartmentID и DepartmentName. Столбец DepartmentID является первичным ключом, а DepartmentName не может быть NULL.
При создании таблицы также можно указать другие ограничения, например уникальность значений в столбце или ссылочную целостность с помощью команды FOREIGN KEY.
Вставка данных в таблицу осуществляется с помощью оператора INSERT. За один раз можно вставлять одну или несколько строк. Важно, чтобы вставляемые данные соответствовали типам данных столбцов таблицы.
Пример вставки данных с тремя строками в таблицу в SQL
Выборка данных из таблиц осуществляется с помощью оператора SELECT. Можно выбирать только определенные столбцы или все, а также фильтровать, сортировать и агрегировать данные.
Пример простого запроса
Пример выбора конкретных столбцов с фильтрацией
Оператор SELECT также поддерживает различные функции и операции для обработки данных, такие как JOIN для объединения таблиц, GROUP BY для группировки данных и ORDER BY для сортировки результатов.
Обновление данных в таблице осуществляется с помощью оператора UPDATE. Можно обновлять один или несколько столбцов для одной или нескольких строк, соответствующих условиям.
Пример обновления столбцов Salary и HireDate
Оператор UPDATE позволяет изменять данные в таблице, соответствующие определённым критериям. При использовании этого оператора важно учитывать возможность ошибок и несоответствий, поэтому часто рекомендуется сначала проверить изменения с помощью оператора SELECT.
Удаление данных из таблицы SQL осуществляется с помощью оператора DELETE. Этот оператор позволяет удалить одну или несколько строк, соответствующих определённым условиям. Если не указать условие, оператор DELETE удалит все строки из таблицы.
Пример удаления строк из таблицы, когда значение столбца Department равно “HR”
При использовании оператора DELETE важно помнить, что:
- Удаление данных является необратимой операцией. Необходимо убедиться, что указанные строки действительно нужно удалить и что это не повредит целостность данных в базе.
- Можно предварительно выполнить операцию SELECT с аналогичными условиями, чтобы убедиться, что выбраны именно строки, которые нужно удалить.
- Для обеспечения целостности данных и возможности отката операции в случае ошибки можно использовать транзакции.
В реляционных базах данных, с которыми работает SQL, данные хранятся в таблицах. SQL-таблицы состоят из строк и столбцов: каждая строка представляет одну запись, а каждый столбец — атрибут этой записи. В зависимости от структуры данных и целей можно создать обычные, секционированные, временные, системные и широкие таблицы. В обычных таблицах применяют ограничения — правила, которые применяются к данным в таблице. Пользователи могут управлять таблицами в базах данных, используя команды для создания таблиц, вставки, выборки, обновления и удаления данных.
Читать также: