В реляционных базах данных основным элементом для хранения данных является таблица.
SQL таблица состоит из строк и столбцов, где каждая строка представляет собой запись, а каждый столбец — атрибут этой записи. Давайте разберемся подробнее
В этой статье мы рассмотрим основы создания, модификации и работы с таблицами в SQL, используя более сложные примеры и технические термины.
Создание таблицы (CREATE TABLE)
Для создания новой таблицы в базе данных используется команда CREATE TABLE. В этой команде указываются имя таблицы и список столбцов с их типами данных, а также ограничения (constraints) на эти столбцы.
Пример создания таблицы:
CREATE TABLE employees (
employee_id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
hire_date DATE DEFAULT CURRENT_DATE,
salary DECIMAL(10, 2) CHECK (salary > 0),
department_id INT,
CONSTRAINT fk_department
FOREIGN KEY (department_id) REFERENCES departments(department_id)
);
В этом примере создается таблица employees с семью столбцами. Столбец employee_id является первичным ключом (PRIMARY KEY) и автоматически увеличивается (AUTO_INCREMENT). Столбцы first_name и last_name не могут быть NULL (NOT NULL). Столбец email имеет уникальное ограничение (UNIQUE). Столбец salary имеет ограничение CHECK, чтобы значение было больше нуля. Столбец department_id является внешним ключом (FOREIGN KEY), ссылающимся на department_id в таблице departments.
Вставка данных в таблицу (INSERT INTO)
Для добавления новых записей в таблицу используется команда INSERT INTO. Можно вставить несколько записей за один запрос, что повышает производительность.
Пример вставки нескольких записей:
INSERT INTO employees (first_name, last_name, email, hire_date, salary, department_id)
VALUES
('John', 'Doe', Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. ', '2023-01-15', 75000, 5),
('Jane', 'Smith', Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. ', '2023-02-20', 80000, 3),
('Emily', 'Davis', Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. ', '2023-03-10', 72000, 4);
Этот запрос добавляет три новых записи в таблицу employees.
Обновление данных в таблице (UPDATE)
Для изменения существующих данных в таблице используется команда UPDATE. Обновление может быть условным, включающим подзапросы (subqueries) и использование коррелированных подзапросов (correlated subqueries).
Пример обновления с подзапросом:
UPDATE employees
SET salary = salary * 1.1
WHERE department_id = (SELECT department_id FROM departments WHERE department_name = 'Sales');
Этот запрос увеличивает зарплату сотрудников на 10%, если они работают в отделе "Sales".
Удаление данных из таблицы (DELETE)
Для удаления записей из таблицы используется команда DELETE. Удаление может быть условным, включающим сложные условия и подзапросы.
Пример удаления с подзапросом:
DELETE FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE department_name = 'HR' AND location = 'New York');
Этот запрос удаляет всех сотрудников, которые работают в отделе "HR" и расположены в Нью-Йорке.
Изменение структуры таблицы (ALTER TABLE)
Для изменения структуры таблицы, добавления или удаления столбцов, изменения типа данных столбцов используется команда ALTER TABLE. Можно также добавить или удалить ограничения.
Пример добавления нового столбца:
ALTER TABLE employees
ADD phone_number VARCHAR(15) DEFAULT 'Not Provided';
Этот запрос добавляет новый столбец phone_number в таблицу employees с значением по умолчанию 'Not Provided'.
Пример добавления ограничения:
ALTER TABLE employees
ADD CONSTRAINT chk_salary CHECK (salary >= 50000);
Этот запрос добавляет ограничение CHECK, чтобы зарплата была не меньше 50000.
Удаление таблицы (DROP TABLE)
Для удаления таблицы из базы данных используется команда DROP TABLE. Можно также использовать команду CASCADE для удаления связанных объектов.
Пример удаления таблицы:
DROP TABLE employees CASCADE;
Этот запрос полностью удаляет таблицу employees и все связанные с ней объекты.
Индексы (INDEXES)
Индексы используются для повышения производительности поиска данных в таблице. Создание индекса может значительно ускорить выполнение запросов SELECT. Индексы могут быть уникальными (UNIQUE), кластерными (CLUSTERED) и некластерными (NON-CLUSTERED).
Пример создания уникального индекса:
CREATE UNIQUE INDEX idx_email
ON employees (email);
Этот запрос создает уникальный индекс idx_email на столбце email таблицы employees.
Внешние ключи (FOREIGN KEY)
Внешние ключи используются для обеспечения ссылочной целостности между таблицами. Внешний ключ указывает, что значения в одном столбце должны соответствовать значениям в столбце другой таблицы. Это помогает предотвратить нарушение данных.
Пример создания таблицы с внешним ключом:
CREATE TABLE departments (
department_id INT PRIMARY KEY,
department_name VARCHAR(100) NOT NULL,
location VARCHAR(100)
);
CREATE TABLE employees (
employee_id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
hire_date DATE DEFAULT CURRENT_DATE,
salary DECIMAL(10, 2) CHECK (salary > 0),
department_id INT,
CONSTRAINT fk_department
FOREIGN KEY (department_id) REFERENCES departments(department_id)
ON DELETE SET NULL
ON UPDATE CASCADE
);
В этом примере создаются две таблицы: departments и employees, где department_id в таблице employees является внешним ключом, ссылающимся на department_id в таблице departments. При удалении строки из departments соответствующий department_id в employees будет установлен в NULL, а при обновлении значения department_id в departments оно будет автоматически обновлено в employees.
Заключение
Таблицы являются основным элементом для хранения данных в реляционных базах данных. Понимание того, как создавать, изменять и управлять таблицами, является ключевым навыком для работы с SQL.
Создание таблиц, управление данными, создание индексов и внешних ключей — все это важные аспекты работы с реляционными базами данных, обеспечивающие целостность и производительность данных.
Владение этими техниками позволяет эффективно работать с данными, обеспечивая высокую производительность и надежность приложений.
| Реклама Yandex |
|
|
Внимание! Данная статья не является официальной документацией.Использование информации необходимо выполнять с осторожностью, используя для этого тестовую среду.
Если у вас есть вопросы о построении современных систем резервного копирования, репликации, синхронизации данных и защиты от программ вымогателей обратитесь в нашу компанию для получения консультации о современных технологиях резервного копирования и восстановления данных. Наша компания имеет более чем 20-летний опыт в этой области. |
||||
Десять лучших практик резервного копирования в Казахстане
- Перенос гипервизора Proxmox на новый физический сервер
- Использование OpenShift для контейнеров Docker — глубокое погружение
- Использование Wazuh для мониторинга безопасности Proxmox
- Установка, настройка и использование Fail2Ban на zVirt
- Установка, настройка и использование Graylog Community Edition в Proxmox
- Установка, настройка и использование Elasticsearch в Proxmox
- Установка, настройка и использование Kibana в Proxmox
- Установка, настройка и использование Logstash в Proxmox
- Использование ИИ для анализа логов Proxmox
- Установка, настройка и использование Ceph в OpenStack
