Бесплатная миграция IT-инфраструктуры в облако

Основные команды SQL

Илья Ушаков
Илья Ушаков
Технический писатель
26 января 2023 г.
8080
9 минут чтения
Средний рейтинг статьи: 5

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

Передает значение по умолчанию, если при вводе данных ничего не указывалось. 

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)

Ограничения целостности можно добавлять на этапе создания таблицы. Кроме того их список можно редактировать и после, а также добавлять имена ограничениям. Для этих целей понадобится команда 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

Основные команды 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 нужен для того, чтобы добавить некоторые правила для извлечения требующейся информации из таблицы. В качестве правил можно указывать операторы сравнения, специальные или логические операторы. Основные операторы и их описание будут представлены ниже.

Оператор

Виды и описание

Операторы сравнения

= либо != – равенство и неравенство соответственно;

< либо > – меньше и больше;

<= либо >= – меньше или равно и больше или равно.

Специальные операторы

ALL – возвращает ИСТИНУ, если все значения подзапроса подходят под заданные условия;

ANY – возвращает ИСТИНУ, если хотя бы одно из значений подзапроса подходит под заданные условия;

BETWEEN – отбирает значения, входящие в заданный диапазон;

IN – отбирает значения, удовлетворяющие заданному списку;

LIKE – отбирает значения, соответствующие указанной маске.

Логические операторы

NOT – предназначен для замены значений специальных операторов на противоположные;

OR – отбирает значения, если хотя бы одно из условий, перечисленных через OR, выполняется;

AND – отбирает значения, если все из условий, перечисленных через AND, выполняются;

XOR – отбирает значения, если только одно из условий, перечисленных через XOR, выполняется.

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 'Имя точки сохранения' 'Имя точки сохранения';
Запустите базу данных в облаке Timeweb Cloud

Что запомнить

  • SQL – это язык программирования, основанный на работе с реляционными базами данных посредством извлечения из них данных и их последующей обработки с помощью специальных структурированных запросов.
  • Несмотря на разнообразие СУБД, все команды применяются практически одинаково для многих БД.
  • Все SQL-команды для баз данных классифицируются на 4 вида: DDL, DML, DCL и TCL.
  • В SQL возможно указать диапазон данных таблиц, вводя некоторые ограничения на них.
  • Самая главная команда SQL, необходимая для извлечения данных из таблицы – SELECT. Она включает в себя большое количество операторов, каждый из которых был подробно описан в данной статье.
Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server
26 января 2023 г.
8080
9 минут чтения
Средний рейтинг статьи: 5
Пока нет комментариев