SQL команды
Выделяют следующие группы команд SQL:
Команды языка определения данных
Команды языка определения данных DDL (Data Definition Language, язык определения данных) — это подмножество SQL, используемое для определения и модификации различных структур данных.
К данной группе относятся команды предназначенные для создания, изменения и удаления различных объектов базы данных. Команды CREATE (создание), ALTER (модификация) и DROP (удаление) имеют большинство типов объектов баз данных (таблиц, представлений, процедур, триггеров, табличных областей, пользователей и др.). Т.е. существует множество команд DDL, например, CREATE TABLE, CREATE VIEW, CREATE PROCEDURE, CREATE TRIGGER, CREATE USER, CREATE ROLE и т.д.
Некоторым кажется, что применение DDL является прерогативой администраторов базы данных, а операторы DML должны писать разработчики, но эти два языка не так-то просто разделить. Сложно организовать аффективный доступ к данным и их обработку, не понимая, какие структуры доступны и как они связаны. Также сложно проектировать соответствующие структуры, не зная, как они будут обрабатываться.
Команды языка управления данными
С помощью команд языка управления данными ( DCL (Data Control Language) ) можно управлять доступом пользователей к базе данных. Операторы управления данными включают в себя применяемые для предоставления и отмены полномочий команды GRANT и REVOKE, а также команду SET ROLE, которая разрешает или запрещает роли для текущего сеанса.
Команды языка управления транзакциями
Команды языка управления транзакциями ( TCL (Тгаnsасtiоn Соntrol Language) ) команды позволяют определить исход транзакции.
Команды управления транзакциями управляют изменениями в базе данных, которые осуществляются командами манипулирования данными.
Транзакция (или логическая единица работы) – неделимая с точки зрения воздействия на базу данных последовательность операторов манипулирования данными (чтения, удаления, вставки, модификации) такая, что либо результаты всех операторов, входящих в транзакцию, отображаются в БД, либо воздействие всех этих операторов полностью отсутствует.
COMMIT — заканчивает («подтверждает») текущую транзакцию и делает постоянными (сохраняет в базе данных) изменения, осуществленные этой транзакцией. Также стирает точки сохранения этой транзакции и освобождает ее блокировки. Можно также использовать эту команду для того, чтобы вручную подтвердить сомнительную распределенную транзакцию.
ROLLBACK — выполняет откат транзакции, т.е. отменяет все изменения, сделанные в текущей транзакции. Можно также использовать эту команду для того, чтобы вручную отменить работу, проделанную сомнительной распределенной транзакцией.
Понятие транзакции имеет непосредственную связь с понятием целостности базы данных. Очень часто база данных может обладать такими ограничениями целостности, которые просто невозможно не нарушить, выполняя только один оператор изменения БД. Например, невозможно принять сотрудника в отдел, название и код которого отсутствует в базе данных.
В системах с развитыми средствами ограничения и контроля целостности каждая транзакция начинается при целостном состоянии базы данных и должна оставить это состояние целостными после своего завершения. Несоблюдение этого условия приводит к тому, что вместо фиксации результатов транзакции происходит ее откат (т.е. вместо оператора COMMIT выполняется оператор ROLLBACK), и база данных остается в таком состоянии, в котором находилась к моменту начала транзакции, т.е. в целостном состоянии.
В связи со свойством сохранения целостности БД транзакции являются подходящими единицами изолированности пользователей, т.е., если с каждым сеансом работы с базой данных ассоциируется транзакция, то каждый пользователь начинает работу с согласованным состоянием базы данных, т.е. с таким состоянием, в котором база данных могла бы находиться, даже если бы пользователь работал с ней в одиночку.
Команды языка манипулирования данными
Команды языка манипулирования данными DML (Data Manipulation Language) позволяют пользователю перемещать данные в базу данных и из нее:
- INSERT — осуществляет вставку строк в таблицу.
- DELETE — осуществляет удаление строк из таблицы.
- UPDATE — осуществляет модификацию данных в таблице.
- SELECT — осуществляет выборку данных из таблиц по запросу.
Каждый, кто работает с SQL в среде Oracle, должен вооружиться книгами: справочником по языку SQL, таким как «Oracle SQL: The Essential Reference? (O’Reilly), руководством по оптимизации производительности, например «Oracle SQL Tuning Pocket Reference» (O’Reilly).
Что такое DDL, DML, DCL и TCL в языке SQL
Приветствую всех посетителей сайта Info-Comp.ru! В этом материале я расскажу Вам о том, что такое DDL, DML, DCL и TCL в языке SQL. Если Вы не знаете, что означают эти непонятные наборы букв и при этом работаете с языком SQL, то Вам обязательно необходимо прочитать данный материал.
Для начала давайте вспомним, что такое SQL, и для чего он нужен.
SQL – Structured Query Language
Structured Query Language (SQL) — язык структурированных запросов, с помощью него пишутся специальные запросы (SQL инструкции) к базе данных с целью получения этих данных из базы и для манипулирования этими данными.
Иными словами, язык SQL нужен для работы с базами данных, более подробно о языке SQL можете почитать в отдельной моей статье – Что такое SQL. Назначение и основа.
С точки зрения реализации язык SQL представляет собой набор операторов, которые делятся на определенные группы и у каждой группы есть свое назначение. В сокращенном виде эти группы называются DDL, DML, DCL и TCL.
Таким образом, эти непонятные буквы представляют собой аббревиатуру
названий групп операторов языка SQL.
DDL – Data Definition Language
Data Definition Language (DDL) – это группа операторов определения данных. Другими словами, с помощью операторов, входящих в эту группы, мы определяем структуру базы данных и работаем с объектами этой базы, т.е. создаем, изменяем и удаляем их.
В эту группу входят следующие операторы:
- CREATE – используется для создания объектов базы данных;
- ALTER – используется для изменения объектов базы данных;
- DROP – используется для удаления объектов базы данных.
DML – Data Manipulation Language
Data Manipulation Language (DML) – это группа операторов для манипуляции данными. С помощью этих операторов мы можем добавлять, изменять, удалять и выгружать данные из базы, т.е. манипулировать ими.
В эту группу входят самые распространённые операторы языка SQL:
- SELECT – осуществляет выборку данных;
- INSERT – добавляет новые данные;
- UPDATE – изменяет существующие данные;
- DELETE – удаляет данные.
DCL – Data Control Language
Data Control Language (DCL) – группа операторов определения доступа к данным. Иными словами, это операторы для управления разрешениями, с помощью них мы можем разрешать или запрещать выполнение определенных операций над объектами базы данных.
- GRANT – предоставляет пользователю или группе разрешения на определённые операции с объектом;
- REVOKE – отзывает выданные разрешения;
- DENY– задаёт запрет, имеющий приоритет над разрешением.
TCL – Transaction Control Language
Transaction Control Language (TCL) – группа операторов для управления транзакциями. Транзакция – это команда или блок команд (инструкций), которые успешно завершаются как единое целое, при этом в базе данных все внесенные изменения фиксируются на постоянной основе или отменяются, т.е. все изменения, внесенные любой командой, входящей в транзакцию, будут отменены.
Группа операторов TCL предназначена как раз для реализации и управления транзакциями. Сюда можно отнести:
- BEGIN TRANSACTION – служит для определения начала транзакции;
- COMMIT TRANSACTION – применяет транзакцию;
- ROLLBACK TRANSACTION – откатывает все изменения, сделанные в контексте текущей транзакции;
- SAVE TRANSACTION – устанавливает промежуточную точку сохранения внутри транзакции.
Заметка! Всем тем, кто только начинает свое знакомство с языком SQL, рекомендую прочитать книгу «SQL код» – это самоучитель по языку SQL, которую написал я, и в которой я подробно, и в то же время простым языком, рассказываю о языке SQL.
На сегодня это все, надеюсь, материал был Вам полезен, удачи!
Введение в структурированный язык запросов SQL
Реализация в SQL концепции операций, ориентированных на табличное представление данных , позволила создать компактный язык с небольшим набором предложений. Язык SQL может использоваться как для выполнения запросов к данным, так и для построения прикладных программ.
Основные категории команд языка SQL предназначены для выполнения различных функций, включая построение объектов базы данных и манипулирование ими, начальную загрузку данных в таблицы , обновление и удаление существующей информации, выполнение запросов к базе данных , управление доступом к ней и ее общее администрирование .
Основные категории команд языка SQL :
- DDL – язык определения данных;
- DML – язык манипулирования данными;
- DQL – язык запросов ;
- DCL – язык управления данными;
- команды администрирования данных;
- команды управления транзакциями
Определение структур базы данных (DDL)
Язык определения данных (Data Definition Language, DDL) позволяет создавать и изменять структуру объектов базы данных , например, создавать и удалять таблицы . Основными командами языка DDL являются следующие: CREATE TABLE , ALTER TABLE , DROP TABLE , CREATE INDEX , ALTER INDEX , DROP INDEX .
Манипулирование данными (DML)
Язык манипулирования данными ( Data Manipulation Language , DML) используется для манипулирования информацией внутри объектов реляционной базы данных посредством трех основных команд: INSERT , UPDATE , DELETE .
Выборка данных (DQL)
Язык запросов DQL наиболее известен пользователям реляционной базы данных , несмотря на то, что он включает всего одну команду SELECT . Эта команда вместе со своими многочисленными опциями и предложениями используется для формирования запросов к реляционной базе данных .
Язык управления данными (DCL — Data Control Language)
Команды управления данными позволяют управлять доступом к информации, находящейся внутри базы данных . Как правило, они используются для создания объектов, связанных с доступом к данным, а также служат для контроля над распределением привилегий между пользователями. Команды управления данными следующие: GRANT , REVOKE .
Команды администрирования данных
С помощью команд администрирования данных пользователь осуществляет контроль за выполняемыми действиями и анализирует операции базы данных ; они также могут оказаться полезными при анализе производительности системы. Не следует путать администрирование данных с администрированием базы данных , которое представляет собой общее управление базой данных и подразумевает использование команд всех уровней.
Команды управления транзакциями
Существуют следующие команды, позволяющие управлять транзакциями базы данных : COMMIT , ROLLBACK , SAVEPOINT , SET TRANSACTION .
DDL, DML, DCL и TCL в языке SQL
Рассказываем, что такое группы операторов в языке SQL и зачем они нужны.

Иван Ванькович
Автор статьи
23 ноября 2022 в 15:13
В статье обсудим категории команд в языке SQL и выясним, что означает и что в себя включает DDL, DML, DCL и TCL. Объясним термины, приведем примеры команд и изучим базовые концепции Structured Query Language.
Коротко о языке структурированных запросов SQL
Сейчас SQL де-факто — стандарт среди языков запросов к реляционным базам данных. Компании прикладывают много сил, чтобы их хранилища данных были SQL-совместимыми, например Amazon Redshift, Snowflake, Firebolt и другие. Но еще полвека назад разработчики активно думали над тем, какую модель данных и язык выбрать для своей базы данных.
На курсе Skypro «Аналитик данных» язык SQL учат для того, чтобы обращаться к базам данных и обрабатывать полученную информацию.
До реляционной модели использовали два основных варианта:
network data model — обладала высокой сложностью запросов при большой вероятности испортить данные;
hierarchy data model — отличалась дублированием данных и отсутствием независимости языка запросов от модели данных.
Математик Эдгар Кодд долго наблюдал, как люди тратят время, каждый раз переписывая запросы при изменении схемы таблицы или схемы хранения данных, а затем придумал реляционную модель данных. Она основывается на табличном способе представления данных.
Главные преимущества реляционной модели:
хранение данных в простых структурах данных;
доступ к данным через высокоуровневый язык;
независимость от физического хранения данных.
Кодд предложил использовать язык реляционной алгебры для доступа к данным. Идея реляционной модели понравилась сообществу — в семидесятые разработали первые реляционные БД: Ingres, System R и Oracle. Вместе с System R появился язык запросов SEQUEL, позже переименованный в SQL.
Structured Query Language — язык программирования, который широко используется в современных системах управления базами данных для сохранения, обработки и изменения данных. SQL относится к семейству декларативных языков. Ключевая цель в том, чтобы сказать системе, какой ответ необходим, то есть описать ожидаемый результат, а не процесс его получения. Это означает, что некоторые СУБД ответственны за эффективное исполнение запросов. Такие системы имеют сложные оптимизаторы запросов, которые способны переписывать запросы и искать оптимальные стратегии исполнения.
Язык SQL используют и тестировщики. На курсе Skypro «Инженер по тестированию» учат с его помощью составлять автоматические тесты.
Команды SQL — это операторы, которые используются для коммуникации с базой данных, выполнения определенных задач и функций. Все команды делятся на четыре категории: DDL, DML, DCL, и TCL.
Протестировать команды поможет сервис DB Fiddle. Используемый код совместим с PostgreSQL v14.
Аналитик данных: новая работа через 5 месяцев
Получится, даже если у вас нет опыта в IT

Узнать больше о SQL помогают курсы по Java-разработке от онлайн-университета Skypro. Базовая программа рассчитана на 11 месяцев обучения, а ускоренная позволяет заработать первые деньги в IT уже через три месяца. Оплатить курсы можно в рассрочку.
