SQL — это язык программирования, основанный на работе с реляционными базами данных посредством извлечения из них этих данных и их последующей обработки с помощью специальных структурированных запросов.
Основываясь на стандартах данного языка программирования, разные компании выпустили собственные СУБД, применяющие свои стандарты SQL. Среди них: MySQL, PostgreSQL, Microsoft SQL Server и другие.
Несмотря на разнообразие СУБД, все они применяются практически одинаково для многих БД.
В данной статье мы рассмотрим основные команды SQL, опишем их синтаксис и принцип работы.
Все SQL-команды для баз данных классифицируются на 4 вида: DDL, DML, DCL и TCL. Ниже опишем каждый из видов более подробно:
Базы данных в SQL — это комплекс некоторых взаимосвязанных записей, хранимых в таблицах, которые, в свой черед, делятся на столбцы и строки. Первые служат для описания хранимых данных, а вторые для их хранения.
В первую группу (DDL) входят:
CREATE
– отвечает за создание объектов БД. Благодаря данной команде пользователь может создать БД и таблицу в ней:CREATE DATABASE 'Название БД';
CREATE TABLE 'Наименование таблицы';
ALTER
необходима для корректировки созданных объектов БД. Например, ее возможно применить для правки названия созданной таблицы:ALTER TABLE 'Старое название' RENAME TO 'Новое название';
DROP
– необходима для удаления объектов БД. Благодаря ей возможно удалить созданную базу или ее таблицу:DROP DATABASE 'Название БД';
DROP TABLE 'Название таблицы';
База данных может быть не одна, а также может включать в себя множество таблиц. Чтобы увидеть список всех существующих баз данных, выполним:
SHOW DATABASES;
Чтобы выбрать БД с которой пользователь продолжит работу, нужно выполнить:
USE 'Название БД';
Чтобы увидеть все таблицы определенной базы данных, нужно выполнить:
SHOW TABLES 'Название БД';
Далее пользователь может узнать все сведения о столбцах выбранной таблицы:
DESCRIBE 'Название таблицы';
В SQL возможно указать диапазон данных таблиц, вводя некоторые ограничения на них.
Ниже будут перечислены основные ограничения целостности, их краткое описание и примеры.
Тип ограничения |
Описание |
Пример (SQL Server / MySQL) |
DEFAULT |
Передает значение по умолчанию, если при вводе данных ничего не указывалось. |
|
NOT NULL |
Запрещает передавать значения NULL. |
|
UNIQUE |
Следит за тем, чтобы все передаваемые в пределах одной таблицы значения были исключительными. |
|
PRIMARY KEY |
Данный тип объединяет в себе NOT NULL и UNIQUE. Считается основной для построения индексов. |
|
FOREIGN KEY |
Предназначен для организации связи у двух разных таблиц. |
|
CHECK |
Данный тип вводит ограничения на передаваемые в таблицу значения. |
|
Ограничения целостности можно добавлять на этапе создания таблицы. Кроме того их список можно редактировать и после, а также добавлять имена ограничениям. Для этих целей понадобится команда ALTER
, которая была описана в статье ранее.
Синтаксис добавления ограничений и их удаления представлен ниже:
ALTER TABLE 'Название таблицы' ADD CONSTRAINT 'Имя ограничения' 'Тип ограничения';
ALTER TABLE 'Название таблицы' DROP 'Имя ограничения';
В качестве примера добавим некоторые ограничение на передаваемые значения:
ALTER TABLE 'salaries' ADD CONSTRAINT 'Check_wages' CHECK (wages>=20000);
А теперь удалим его:
ALTER TABLE 'salaries' DROP 'Check_wages';
dbaas
Сюда отнесем 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
нужен для того, чтобы добавить некоторые правила для извлечения требующейся информации из таблицы. В качестве правил можно указывать операторы сравнения, специальные или логические операторы. Основные операторы и их описание будут представлены ниже.
Оператор |
Виды и описание |
Операторы сравнения |
|
Специальные операторы |
|
Логические операторы |
|
Данный оператор группирует данные одного или нескольких столбцов и зачастую применяется с такими функциями, как:
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 'Имя точки сохранения' 'Имя точки сохранения';
Запустите базу данных в облаке Timeweb Cloud
SELECT
. Она включает в себя большое количество операторов, каждый из которых был подробно описан в данной статье.