Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Кратко о задаче
Все SQL-команды для баз данных классифицируются на 4 вида: DDL, DML, DCL и TCL. Ниже опишем каждый из видов более подробно:
- DDL – это перечень команд, которые необходимы для создания объектов БД и описания их структуры.
- DML – это перечень операторов, которые служат для проведения корректировок данных.
- DCL – это специализированные команды, которые предоставляют и забирают доступ к данным у пользователей БД.
- TCL – все команды данного вида относятся к процессу управления транзакциями.
Базы данных в SQL — это комплекс некоторых взаимосвязанных записей, хранимых в таблицах, которые, в свой черед, делятся на столбцы и строки. Первые служат для описания хранимых данных, а вторые для их хранения.
В первую группу (DDL) входят:
CREATE– отвечает за создание объектов БД. Благодаря данной команде пользователь может создать БД и таблицу в ней:
CREATE DATABASE 'Название БД';
CREATE TABLE 'Наименование таблицы';ALTERнеобходима для корректировки созданных объектов БД. Например, ее возможно применить для правки названия созданной таблицы:
ALTER TABLE 'Старое название' RENAME TO 'Новое название';DROP– необходима для удаления объектов БД. Благодаря ей возможно удалить созданную базу или ее таблицу:
DROP DATABASE 'Название БД';
DROP TABLE 'Название таблицы';База данных может быть не одна, а также может включать в себя множество таблиц. Чтобы увидеть список всех существующих баз данных, выполним:
Чтобы выбрать БД с которой пользователь продолжит работу, нужно выполнить:
Чтобы увидеть все таблицы определенной базы данных, нужно выполнить:
SHOW TABLES 'Название БД';Далее пользователь может узнать все сведения о столбцах выбранной таблицы:
DESCRIBE 'Название таблицы';Возможные ограничения целостности в БД
В SQL возможно указать диапазон данных таблиц, вводя некоторые ограничения на них.
Ниже будут перечислены основные ограничения целостности, их краткое описание и примеры.
| Тип ограничения | Описание | Пример (SQL Server / MySQL) |
|---|---|---|
| DEFAULT | Передает значение по умолчанию, если при вводе данных ничего не указывалось. | wages INT DEFAULT 30000 |
| NOT NULL | Запрещает передавать значения NULL. | wages INT NOT NULL |
| UNIQUE | Следит за тем, чтобы все передаваемые в пределах одной таблицы значения были исключительными. | `wages INT UNIQUE / |
| wages INT, | ||
| UNIQUE (wages)` | ||
| PRIMARY KEY | Данный тип объединяет в себе NOT NULL и UNIQUE. Считается основной для построения индексов. | wages INT PRIMARY KEY / |
wages INT, | ||
PRIMARY KEY (wages) | ||
| FOREIGN KEY | Предназначен для организации связи у двух разных таблиц. | CREATE TABLE workers ( |
workerID int NOT NULL PRIMARY KEY, | ||
name VARCHAR(17) NOT NULL, | ||
surname VARCHAR(17) NOT NULL | ||
); CREATE TABLE salaries ( | ||
wagesID int NOT NULL PRIMARY KEY, | ||
wages INT NOT NULL, | ||
workerID int FOREIGN KEY REFERENCES workers(workerID) | ||
); | ||
| CHECK | Данный тип вводит ограничения на передаваемые в таблицу значения. | wages INT CHECK (wages>=20000) / |
wages INT, | ||
CHECK (wages>=20000) |
Пример (SQL Server / MySQL)
Передает значение по умолчанию, если при вводе данных ничего не указывалось.
Запрещает передавать значения NULL.
Следит за тем, чтобы все передаваемые в пределах одной таблицы значения были исключительными.
Данный тип объединяет в себе NOT NULL и UNIQUE. Считается основной для построения индексов.
wages INT PRIMARY KEY /
wages INT,
PRIMARY KEY (wages)
Предназначен для организации связи у двух разных таблиц.
CREATE TABLE workers (
workerID int NOT NULL PRIMARY KEY,
name VARCHAR(17) NOT NULL,
surname VARCHAR(17) NOT NULL
);
CREATE TABLE salaries (
wagesID int NOT NULL PRIMARY KEY,
wages INT NOT NULL,
workerID int FOREIGN KEY REFERENCES workers(workerID)
);
Данный тип вводит ограничения на передаваемые в таблицу значения.
wages INT CHECK (wages>=20000) /
wages INT,
CHECK (wages>=20000)
Ограничения целостности можно добавлять на этапе создания таблицы. Кроме того их список можно редактировать и после, а также добавлять имена ограничениям. Для этих целей понадобится команда ALTER, которая была описана в статье ранее.
Синтаксис добавления ограничений и их удаления представлен ниже:
ALTER TABLE 'Название таблицы' ADD CONSTRAINT 'Имя ограничения' 'Тип ограничения';
ALTER TABLE 'Название таблицы' DROP 'Имя ограничения';В качестве примера добавим некоторые ограничение на передаваемые значения:
ALTER TABLE 'salaries' ADD CONSTRAINT 'Check_wages' CHECK (wages>=20000);
ALTER TABLE 'salaries' DROP 'Check_wages';Сюда отнесем 4 основные команды SQL: SELECT, INSERT, UPDATE и DELETE. Все они принадлежат ко второму виду команд (DML). Ниже расскажем о каждой из них более подробно.
Самая главная команда SQL, необходимая для выборки набора данных из таблицы – SELECT. Ее синтаксис представлен ниже:
SELECT [DISTINCT | ALL] 'Столбцы таблиц'
FROM 'Перечень таблиц'
[WHERE 'Правила фильтрации']
[GROUP BY 'Правила группировки']
[HAVING 'Правила фильтрации сгруппированных записей']
[ORDER BY 'Сортировка данных']
[LIMIT 'Фильтрация количества выбираемых записей'];Данная команда включает в себя большое количество операторов. Те, что указаны в квадратных скобках, использовать не обязательно. Ниже рассмотрим каждый из операторов отдельно.
DISTINCT и ALL предназначены для фильтрации выводимых записей при выполнении команды SELECT. Первый используется в тех случаях, когда необходимо извлечь только уникальные строки без повторений. Второй выводит все строки без исключений и применяется по умолчанию.
FROM необходим для указания списка таблиц, из которых впоследствии будут извлекаться данные.
WHERE нужен для того, чтобы добавить некоторые правила для извлечения требующейся информации из таблицы. В качестве правил можно указывать операторы сравнения, специальные или логические операторы. Основные операторы и их описание будут представлены ниже.
| Оператор | Виды и описание |
|---|---|
| Операторы сравнения | = либо != – равенство и неравенство соответственно; < либо > – меньше и больше; <= либо >= – меньше или равно и больше или равно. |
| Специальные операторы | ALL – возвращает ИСТИНУ, если все значения подзапроса подходят под заданные условия; ANY – возвращает ИСТИНУ, если хотя бы одно из значений подзапроса подходит под заданные условия; BETWEEN – отбирает значения, входящие в заданный диапазон; IN – отбирает значения, удовлетворяющие заданному списку; LIKE – отбирает значения, соответствующие указанной маске. |
| Логические операторы | NOT – предназначен для замены значений специальных операторов на противоположные; OR – отбирает значения, если хотя бы одно из условий, перечисленных через OR, выполняется; AND – отбирает значения, если все из условий, перечисленных через AND, выполняются; XOR – отбирает значения, если только одно из условий, перечисленных через XOR, выполняется. |
= либо != – равенство и неравенство соответственно;
< либо > – меньше и больше;
<= либо >= – меньше или равно и больше или равно.
ALL – возвращает ИСТИНУ, если все значения подзапроса подходят под заданные условия;
ANY – возвращает ИСТИНУ, если хотя бы одно из значений подзапроса подходит под заданные условия;
BETWEEN – отбирает значения, входящие в заданный диапазон;
IN – отбирает значения, удовлетворяющие заданному списку;
LIKE – отбирает значения, соответствующие указанной маске.
NOT – предназначен для замены значений специальных операторов на противоположные;
OR – отбирает значения, если хотя бы одно из условий, перечисленных через OR, выполняется;
AND – отбирает значения, если все из условий, перечисленных через AND, выполняются;
XOR – отбирает значения, если только одно из условий, перечисленных через XOR, выполняется.
Данный оператор группирует данные одного или нескольких столбцов и зачастую применяется с такими функциями, как:
COUNT– команда, которая возвращает количество записей столбца или всей таблицы в целом;MAX,MIN– команда, возвращающая максимальное и минимальное значение выбранного столбца;SUM– команда в SQL, которая возвращает сумму значений выбранного столбца;AVG– команда, возвращающая среднее значение столбца таблицы.
Данный оператор схож с WHERE и связан с предыдущим оператором. Однако он применяется исключительно с агрегатными данными.
Данный оператор сортирует данные в порядке возрастания (ASC) или убывания (DESC). Первый применяется по умолчанию.
Данный оператор применяется в тех случаях, когда необходимо ввести ограничения на количество выбираемых из таблицы записей.
INSERT – это команда в SQL для добавления данных в таблицу.
Синтаксис команды представлен ниже:
INSERT INTO 'Название таблицы' [('Имя столбца 1', …, 'Имя столбца N')]
VALUES ('Значения столбца 1', …, 'Значения столбца N);UPDATE необходима для обновления всех данных в таблице после завершения над ними операций.
Синтаксис команды представлен ниже:
UPDATE 'Название таблицы'
SET 'Поле 1' = 'Значения поля 1', …, 'Поле N' = 'Значения поля N'
WHERE 'Правила ограничений';Команда в SQL для удаления некоторых данных из таблицы – DELETE. Ее синтаксис представлен ниже:
DELETE FROM 'Название таблицы'
WHERE 'Правила ограничений';Команды управления данными
В данном разделе будут рассмотрены две команды, которые относятся к третьему виду команд (DCL) – это GRANT и REVOKE. Они отвечают за предоставление и лишение привилегий у пользователя БД.
GRANT отвечает за предоставление привилегий. Ее синтаксис выглядит следующим образом:
GRANT 'Системная привилегия' ON 'Название таблицы' TO 'Имя пользователя';REVOKE, в свою очередь, отвечает за лишение привилегий. Ее синтаксис аналогичен команде GRANT:
REVOKE 'Системная привилегия' ON 'Название таблицы' FROM 'Имя пользователя';Команды управления транзакциями
Перечень этих команд относится к 4 виду (TCL) и ориентирован на контроль выполняемых в БД транзакций. Стоит сразу обратить внимание на то, что работать с данными командами в MySQL Workbench возможно только при выключенной функции автоматической фиксации изменений.
Выделим 3 основные команды, относящиеся к данному виду:
COMMIT;ROLLBACK;SAVEPOINT.
Первая команда из списка выше необходима для объявления транзакции, вторая – для ее отката, а третья для указания логической точки сохранения, чтобы разделить все транзакции на блоки, с возможностью вернуться к одному из них. Их синтаксис будет представлен ниже:
'Выполнение операций над БД'
COMMIT;
'Выполнение операций над БД'
ROLLBACK;
SAVEPOINT 'Имя точки сохранения';Чтобы вернуться к требующейся точке сохранения, необходимо выполнить:
ROLLBACK TO 'Имя точки сохранения';Чтобы навсегда исключить ненужную точку сохранения, выполняем:
RELEASE SAVEPOINT 'Имя точки сохранения' 'Имя точки сохранения';Запустите базу данных в облаке Simple-Server
- SQL – это язык программирования, основанный на работе с реляционными базами данных посредством извлечения из них данных и их последующей обработки с помощью специальных структурированных запросов.
- Несмотря на разнообразие СУБД, все команды применяются практически одинаково для многих БД.
- Все SQL-команды для баз данных классифицируются на 4 вида: DDL, DML, DCL и TCL.
- В SQL возможно указать диапазон данных таблиц, вводя некоторые ограничения на них.
- Самая главная команда SQL, необходимая для извлечения данных из таблицы –
SELECT. Она включает в себя большое количество операторов, каждый из которых был подробно описан В этом материале.
Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.