Основные команды SQL
SQL — это язык программирования, основанный на работе с реляционными базами данных посредством извлечения из них этих данных и их последующей обработки с помощью специальных структурированных запросов.
Основываясь на стандартах данного языка программирования, разные компании выпустили собственные СУБД, применяющие свои стандарты SQL. Среди них: MySQL, PostgreSQL, Microsoft SQL Server и другие.
Несмотря на разнообразие СУБД, все они применяются практически одинаково для многих БД.
В данной статье мы рассмотрим основные команды SQL, опишем их синтаксис и принцип работы.
Виды SQL команд
Все 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 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';
Основные команды SQL
Сюда отнесем 4 основные команды SQL: SELECT
, INSERT
, UPDATE
и DELETE
. Все они принадлежат ко второму виду команд (DML). Ниже расскажем о каждой из них более подробно.
SELECT
Самая главная команда SQL, необходимая для выборки набора данных из таблицы – SELECT
. Ее синтаксис представлен ниже:
SELECT [DISTINCT | ALL] 'Столбцы таблиц'
FROM 'Перечень таблиц'
[WHERE 'Правила фильтрации']
[GROUP BY 'Правила группировки']
[HAVING 'Правила фильтрации сгруппированных записей']
[ORDER BY 'Сортировка данных']
[LIMIT 'Фильтрация количества выбираемых записей'];
Данная команда включает в себя большое количество операторов. Те, что указаны в квадратных скобках, использовать не обязательно. Ниже рассмотрим каждый из операторов отдельно.
DISTINCT и ALL
DISTINCT
и ALL
предназначены для фильтрации выводимых записей при выполнении команды SELECT
. Первый используется в тех случаях, когда необходимо извлечь только уникальные строки без повторений. Второй выводит все строки без исключений и применяется по умолчанию.
FROM
FROM
необходим для указания списка таблиц, из которых впоследствии будут извлекаться данные.
WHERE
WHERE
нужен для того, чтобы добавить некоторые правила для извлечения требующейся информации из таблицы. В качестве правил можно указывать операторы сравнения, специальные или логические операторы. Основные операторы и их описание будут представлены ниже.
Оператор |
Виды и описание |
Операторы сравнения |
|
Специальные операторы |
|
Логические операторы |
|
GROUP BY
Данный оператор группирует данные одного или нескольких столбцов и зачастую применяется с такими функциями, как:
COUNT
– команда, которая возвращает количество записей столбца или всей таблицы в целом;MAX
,MIN
– команда, возвращающая максимальное и минимальное значение выбранного столбца;SUM
– команда в SQL, которая возвращает сумму значений выбранного столбца;AVG
– команда, возвращающая среднее значение столбца таблицы.
HAVING
Данный оператор схож с WHERE
и связан с предыдущим оператором. Однако он применяется исключительно с агрегатными данными.
ORDER BY
Данный оператор сортирует данные в порядке возрастания (ASC) или убывания (DESC). Первый применяется по умолчанию.
LIMIT
Данный оператор применяется в тех случаях, когда необходимо ввести ограничения на количество выбираемых из таблицы записей.
INSERT
INSERT
– это команда в SQL для добавления данных в таблицу.
Синтаксис команды представлен ниже:
INSERT INTO 'Название таблицы' [('Имя столбца 1', …, 'Имя столбца N')]
VALUES ('Значения столбца 1', …, 'Значения столбца N);
UPDATE
UPDATE
необходима для обновления всех данных в таблице после завершения над ними операций.
Синтаксис команды представлен ниже:
UPDATE 'Название таблицы'
SET 'Поле 1' = 'Значения поля 1', …, 'Поле N' = 'Значения поля N'
WHERE 'Правила ограничений';
DELETE
Команда в 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 'Имя точки сохранения' 'Имя точки сохранения';
Что запомнить
- SQL – это язык программирования, основанный на работе с реляционными базами данных посредством извлечения из них данных и их последующей обработки с помощью специальных структурированных запросов.
- Несмотря на разнообразие СУБД, все команды применяются практически одинаково для многих БД.
- Все SQL-команды для баз данных классифицируются на 4 вида: DDL, DML, DCL и TCL.
- В SQL возможно указать диапазон данных таблиц, вводя некоторые ограничения на них.
- Самая главная команда SQL, необходимая для извлечения данных из таблицы –
SELECT
. Она включает в себя большое количество операторов, каждый из которых был подробно описан в данной статье.