Что такое 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.
На сегодня это все, надеюсь, материал был Вам полезен, удачи!
Oracle – группа команд DDL, DML, DCL
К базе данных Oracle мы можем обратиться только на SQL. Этот язык запросов делиться на несколько групп. Документация выделят 4 группы.
SELECT в книгах эту команду относят к DML. Ее функция – возвратить набор данных. Правда в PL/SQL разработчики часто используют SELECT для создания неявных курсоров. Это уже чистое программирование на языке PL/SQL. Но с точки зрения SQL, SELECT это команда которая может принимать входящие параметры.
DDL (Data definition language) язык определения данных. DDL is a language used by a database management system (like Oracle) that allows users to define the database and specify data types, structures and constraints on the data. Другими словами, этот язык определяет структуру таблицы, как построить индекс и прочее. Явные представители этого раздела – это команды создания, удаления и изменения объектов, хранящихся в БД. Объекты – это таблицы, индексы, кластеры, синонимы и тд. Они показаны на рисунке.
К примеру команда ‘create’ для создания нового объекта в БД Oralce. Alter – команда изменения состояния объектов. Drop – команда для удаления объектов. Alalyze и прочие. У данных команд, есть одна особенность, мы не можем передавать параметры в них. Как команда написана, так она и будет выполнена. Команда DDL открывает собственную транзакцию, и сама же закрывает ее. Транзакция может откатиться неудачей.
Следующая группа команд это DML (Data Manipulation Language) – commands can be used to manipulate data within existing database tables. Команда DDL работает автономно, фиксирует все другие транзакции, она выполняет изменения в словаре мета данных. И команда DML также вносит изменения в таблицы, но уже не в системные, а в пользовательские данные. Insert – вставляет новую запись в пользовательскую таблицу. Update – изменение состоянии записи пользовательской таблицы. Delete – удаление записи из пользовательской таблицы. Начиная с Oracle 9 появилась команда MERGE – добавляет запись, если такой записи нет, модифицирует если такой записи нет, и все в одной команде. Используется крайне редко, но очень удобная, редкая потому что нет ее в SQL. Для команд DML характерно принятие параметра IN. В Oracle любая команда DML выполняется в БД в виде курсора – открывается курсор.
Группа команд DCL (Data Control Language) is the category of SQL statements that control access to the data and to the database. COMMIT – фиксирует транзакцию. ROLLBACK – откат изменения. SET transaction – для открытия транзакции, тоже может стартовать транзакцию. SAVE point – зафиксировать точку транзакции. Команды DCL не принимают параметров.
Блок. Begin …. End. Можем в нем выполнить любое количество команд. Есть свои правила и особенности, это уже чистое программирование. Можно объявлять переменные, обрабатывать excerptions и прочее. Механизм программирования сервера базы данных Oracle. Анонимный блок может принимать IN параметр, но он может возвращать результаты.
Это было небольшое отступление. Более подробно будет все рассмотрено в последующих статьях. Или продолжиться эта запись.
Упражнения по SQL
SELECT (обучающий этап) задачи по SQL запросам 120 штук, DML 10 шт. Дистанционное обучение языку баз данных SQL. Интерактивные упражнения и тестирование по операторам SELECT,INSERT,UPDATE,DELETE языка SQL. SQL remote education. SQL statements exercises. Подзапросы, Соединение таблиц, Функции SQL, Введение в SQL, Скачать книги по SQL. Команды SQL,CREATE SEQUENCE,CREATE SYNONYM,CREATE USER,CREATE VIEW,Create Table,DROP,GRANT,INSERT,REVOKE,SET ROLE,SET TRANSACTION,SQL ALTER TABLE,SQL команды.
суббота, 12 января 2019 г.
Команды DML
Язык SQL. Формирование запросов к базе данных
SQL — этом мощный и в то же время не сложный язык для управления базами данных. Он поддерживается практически всеми современными базами данных. SQL подразделятся на два подмножества команд: DDL (Data Definition Language — язык определения данных) и DML (Data Manipulation Language — язык обработки данных). Команды DDL используются для создания новых баз данных, таблиц и столбцов, а команды DML — для чтения, записи, сортировки, фильтрования, удаления данных.Structured Query Language (Язык Структурированных Запросов) разработан корпораций IBM в начале 1970-х годов. В 1986 году SQL был впервые стандартизирован организаций ANSI.
Здесь будут рассмотрены подробно лишь команды DML, поскольку их приходится использовать гораздо чаще, чем команды DDL, то есть дается просто понятие о SQL.
О командах DDL
CREATE — используется для создания новых таблиц, столбцов и индексов.
DROP — используется для удаления столбцов и индексов.
ALTER — используется для добавления в таблицы новых столбцов и изменения определенных столбцов.
Команды DML
SELECT — наиболее часто используемая команда, применяется для получения набора данных из таблицы базы данных. Команда SELECT имеет следующий синтаксис:
SELECT список_полей1 FROM имя_таблицы [WHERE критерий ORDER BY список_полей2 [ASC | DESC]]
Операторы, находящие внутри квадратных скобок не обязательны, а вертикальная черта означает, что должна присутствовать одна из указанных фраз, но не обе.
Для примера создадим простейший запрос на получение данных из полей «name» и «phone» таблицы «friends»:
SELECT name, phone FROM friends
Если необходимо получить все поля таблицы, то не обязательно их перечислять, достаточно поставить звездочку (*):
SELECT * FROM friends
Для исключения из выводимого списка повторяющихся записей, используется ключевое слово DISTINCT:
SELECT DISTINCT name FROM friends
Если необходимо получить отдельную запись, то используется оператор WHERE. Например, нам надо получить из таблицы «friends» номер телефона «Сергей Иванов»:
SELECT * FROM friends WHERE name = ‘ Сергей Иванов’
или наоборот, нам надо узнать кому принадлежит телефон 293-89-13:
SELECT * FROM friends WHERE phone = 293-89-13′
Помимо этого можно использовать подстановочные символы, таким образом, создавая шаблоны поиска. Для этого используется оператор LIKE. Оператор LIKE имеет следующие операторы подстановки:
* — соответствует строке состоящей из одного или более символов;
_ — соответствует одному любому символу;
[] — соответствует одному символу из определенного набора;
Например, для получения записей из поля «name» содержащих слово «Сергей», запрос будит выглядеть следующим образом:
SELECT * FROM friends WHERE name LIKE ‘*Сергей*’
Для определения порядка, в котором возвращаются данные, используется оператор ORDER BY. Без этого оператора порядок возвращаемых данных невозможно предсказать. Ключевые слова ASC и DESC позволяют определить направление сортировки. ASC — упорядочивает по возрастанию, а DESC — по убыванию.
Например, запрос на получение списка записей из поля «name» в алфавитном порядке будет выглядеть следующим образом:
SELECT * FROM friends ORDER BY name
Обратим внимание на то, что ключевое слово ASC указывать не обязательно, поскольку оно используется по умолчанию.
INSERT — данная команда служит для добавления новой записи в таблицу. Записывается она следующим образом:
INSERT INTO имя_таблицы VALUES (список_значений)
Обратим внимание на то, что типы значений в списке значений должны соответствовать типам значений полей таблицы, например:
INSERT INTO friends VALUES (‘Анна Осипова’, ‘495-09-81’)
В данном примере в таблицу friends добавляется новая запись с указанными значениями.
UPDATE — эта команда применяется для обновления данных в таблице и чаще всего используется совместно с оператором WHERE. Команда UPDATE имеет следующий синтаксис:
UPDATE имя_таблицы SET имя_поля = значение [WHERE критерий]
Если опустить оператор WHERE, то будут обновлены данные во всех определенных полях таблицы. Для примера, поменяем номер телефона Сергея Иванова:
UPDATE friends SET phone = ‘255-55-55’ WHERE name = ‘Сергей Иванов’
DELETE — как вы уже наверное поняли, эта команда служит для удаления записей из таблицы. Как и UPDATE, команда DELETE обычно используется с оператором WHERE, если этот оператор пропустить, то будут удалены все данные из указанной таблицы. Синтаксис команды DELETE выглядит следующим образом:
Разница между DDL и DML
Понимание разницы между DDL ( Data Definition Language ) и DML ( Data Manipulation Language ) в SQL имеет решающее значение для эффективного управления и манипулирования базами данных. В этой статье мы подробно рассмотрим ключевые различия между этими двумя важнейшими командами SQL и покажем вам, как использовать их для оптимизации производительности базы данных. Итак, независимо от того, новичок ли вы в SQL или опытный профессионал, эта статья является обязательной к прочтению для всех, кто хочет улучшить свои навыки управления базами данных. Давайте начнем!
Что такое DDL ?
DDL ( Data Definition Language ) — это подмножество языка SQL (Structured Query Language), используемое для определения структуры базы данных и ее объектов, таких как таблицы, представления, индексы и процедуры. DDL Операторы используются для создания, изменения и удаления объектов базы данных, включая таблицы, представления, индексы и хранимые процедуры. Некоторые из наиболее распространенных DDL операторы включают:
- CREATE : Этот оператор создает новый объект базы данных, такой как таблица, представление или индекс. Например, следующий оператор SQL создает таблицу «customers»:
CREATE TABLE customers ( id INT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255 ));
- ALTER : Этот оператор используется для изменения существующего объекта базы данных. Например, следующий оператор SQL добавляет новый столбец » email » в таблицу » customers «:
ALTER TABLE customers ADD email VARCHAR(255) ;
- DROP : Этот оператор используется для удаления существующего объекта базы данных. Например, следующий оператор SQL удаляет таблицу «customers»:
DROP TABLE customers;
- TRUNCATE : Этот оператор используется для удаления всех строк в таблице, но в отличие от оператора DROP он сохраняет структуру таблицы и индексы.
- RENAME : Этот оператор используется для переименования существующего объекта базы данных. Например, следующий оператор SQL переименовывает таблицу «customers» в «clients»:
RENAME TABLE customers TO clients;
Важно отметить, что DDL операторы выполняются немедленно и являются постоянными, то есть после создания, изменения или удаления объекта изменения невозможно отменить. Поэтому необходимо быть осторожным и убедиться, что у вас есть резервная копия базы данных перед выполнением любых DDL операторов. Кроме того, DDL операторы обычно выполняются администратором базы данных или разработчиком с соответствующими привилегиями и разрешениями на изменение структуры базы данных.
Что такое DML ?
DML ( Data Manipulation Language ) — это подмножество языка SQL (язык структурированных запросов), который используется для манипулирования данными в базе данных. DML Операторы используются для вставки, обновления и удаления данных в базе данных. Некоторые из наиболее распространенных DML операторы включают:
- SELECT : Этот оператор используется для получения данных из одной или нескольких таблиц базы данных. Например, следующий SQL-запрос извлекает все записи из таблицы «customers»:
SELECT * FROM customers;
- INSERT : Этот оператор используется для вставки новых данных в таблицу. В качестве примера, следующий оператор SQL вставляет новую строку в таблицу «customers»:
INSERT INTO customers (id, name, address) VALUES (1, ‘John Smith,’ ‘123 Main St’);
- UPDATE : Этот оператор используется для изменения существующих данных в таблице. Например, следующий оператор SQL обновляет адрес клиента с идентификатором 1 в таблице «customers»:
UPDATE customers SET address = ‘456 Park Ave’ WHERE >
- DELETE : Этот оператор используется для удаления данных из таблицы. Например, следующий оператор SQL удаляет клиента с идентификатором 1 из таблицы «customers»:
DELETE FROM customers WHERE >
DML Операторы выполняются немедленно и могут быть отменены с помощью оператора отката. Важно отметить, что хотя DDL операторы используются для создания, изменения и удаления объектов базы данных, DML операторы используются для манипулирования данными внутри этих объектов.
Попробуйте no-code платформу AppMaster
AppMaster поможет создать любое веб, мобильное или серверное приложение в 10 раз быстрее и 3 раза дешевле
DML Операторы обычно выполняются конечными пользователями, например, приложениями или системами, взаимодействующими с базой данных для получения, обновления или удаления данных. Система управления базой данных запускает DML операторы после выполнения запроса.
DDL vs DML
DDL ( Data Definition Language ) и DML ( Data Manipulation Language ) являются подмножествами SQL (Structured Query Language), которые используются для управления и манипулирования базами данных. Однако они служат разным целям и имеют разные характеристики.
DDL определяет структуру базы данных и ее объекты, такие как таблицы, представления, индексы и процедуры. DDL операторы используются для создания, изменения и удаления объектов базы данных, включая таблицы, представления, индексы и хранимые процедуры. Примеры DDL операторов включают CREATE, ALTER, DROP, TRUNCATE и RENAME . DDL операторы выполняются немедленно и являются постоянными, то есть после создания, изменения или удаления объекта изменение невозможно отменить. Поэтому важно быть осторожным и убедиться, что у вас есть резервная копия базы данных перед выполнением любых DDL операторов. DDL операторы обычно выполняются администратором базы данных или разработчиком с соответствующими привилегиями и разрешениями на изменение структуры базы данных.
DML используется для манипулирования данными в базе данных. DML операторы используются для вставки, обновления и удаления данных в базе данных. Примерами DML операторов включают SELECT, INSERT, UPDATE , и DELETE . DML операторы выполняются немедленно и могут быть отменены с помощью оператора отката. DML операторы обычно выполняются конечными пользователями, например, приложениями или системами, взаимодействующими с базой данных для получения, обновления или удаления данных.
В целом, DDL используется для определения и управления структурой базы данных, в то время как DML используется для манипулирования данными в базе данных. DDL утверждения являются постоянными и не могут быть отменены, в то время как DML утверждения выполняются немедленно и могут быть отменены. DDL утверждения выполняются уполномоченным персоналом, в то время как конечные пользователи выполняют DML утверждения.
Почему DDL ?
DDL ( Data Definition Language ) определяет структуру базы данных и ее объекты, такие как таблицы, представления, индексы и процедуры. DDL Операторы используются для создания, изменения и удаления объектов базы данных, включая таблицы, представления, индексы и хранимые процедуры. Существует несколько причин, по которым DDL необходимо:
- Создание и управление базой данных: DDL операторы используются для создания и управления структурой базы данных. С помощью DDL , будет легче разрабатывать и поддерживать структуру базы данных.
- Целостность данных: DDL операторы обеспечивают соблюдение ограничений целостности данных, таких как первичные, внешние и уникальные ключи. Эти ограничения помогают обеспечить точность и согласованность данных в базе данных.
- Производительность: DDL операторы используются для создания индексов и других объектов базы данных, которые могут повысить производительность базы данных. Например, создание индекса для таблицы может повысить скорость выполнения запросов к этой таблице.
- Безопасность данных: DDL операторы могут использоваться для установки разрешений на объекты базы данных, чтобы контролировать, кто может получить к ним доступ и манипулировать ими. Это помогает гарантировать, что только авторизованные пользователи могут получать доступ к данным в базе данных и изменять их.
- Резервное копирование и восстановление данных: DDL утверждения используются для создания и поддержки процедур резервного копирования и восстановления. Это помогает гарантировать, что база данных может быть восстановлена в случае сбоя.
Попробуйте no-code платформу AppMaster
AppMaster поможет создать любое веб, мобильное или серверное приложение в 10 раз быстрее и 3 раза дешевле
DDL statement важен, поскольку используется для создания и управления структурой базы данных, обеспечения целостности данных, повышения производительности, обеспечения безопасности данных и поддержания процедур резервного копирования и восстановления. Все эти функции необходимы для бесперебойной, безопасной и эффективной работы базы данных.
Почему DML ?
DML ( Data Manipulation Language ) используется для манипулирования данными в базе данных. DML Операторы используются для вставки, обновления и удаления данных в базе данных. Существует несколько причин, по которым DML является важным:
- Ввод и обслуживание данных: DML операторы используются для вставки новых данных в базу данных, а также для обновления или удаления существующих данных. Это необходимо для поддержания точности и полноты данных в базе данных.
- Поиск данных: DML Операторы типа SELECT используются для получения данных из одной или нескольких таблиц базы данных. Это необходимо для приложений и систем, которые могут получать доступ и анализировать данные в базе данных.
- Целостность данных: DML операторы могут использоваться для обеспечения ограничений целостности данных, таких как ссылочная целостность, путем обновления или удаления данных в связанных таблицах.
- Аудит данных: DML операторы могут использоваться для отслеживания изменений данных в базе данных, например, кто и когда внес изменения. Это полезно для целей аудита и соблюдения нормативных требований.
- Резервное копирование и восстановление данных: DML утверждения можно использовать для создания и поддержки процедур резервного копирования и восстановления. Это помогает гарантировать, что база данных может быть восстановлена в случае сбоя.
DML statement важен, поскольку он используется для вставки, обновления и удаления данных в базе данных, извлечения данных из базы данных, обеспечения целостности данных, отслеживания изменений в данных и поддержания процедур резервного копирования и восстановления. Все эти функции необходимы для бесперебойной, точной и эффективной работы базы данных.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
В чем разница между DDL и DML ?
DDL ( Data Definition Language ) — это набор команд SQL для определения схемы базы данных. Он просто имеет дело с описаниями схемы базы данных и используется для создания и изменения структуры объектов базы данных. Примеры DDL операторов включают CREATE, ALTER , и DROP .
DML ( Data Manipulation Language ) — это набор команд SQL, используемых для манипулирования данными в пределах схемы, созданной DDL . Он имеет дело с фактическими данными и используется для вставки, обновления и извлечения данных из базы данных. Примерами DML включают SELECT, INSERT, UPDATE , и DELETE .
Можно ли DDL утверждения могут быть откатаны?
Нет, DDL утверждения не могут быть откатаны, поскольку они вносят постоянные изменения в схему базы данных.
Можно ли свернуть DML операторы могут быть свернуты?
Да, DML операторы можно откатывать, поскольку они вносят временные изменения в данные в базе данных.
Какие операторы SQL включены в DDL ?
DDL включает такие операторы SQL, как CREATE, ALTER , и DROP , которые используются для создания, изменения и удаления структур базы данных, таких как таблицы, индексы и пользователи.
Какие операторы SQL включены в DML ?
DML включает SQL-операторы, такие как SELECT, INSERT, UPDATE , и DELETE , которые используются для получения, вставки, обновления и удаления данных из базы данных.
Каков порядок выполнения операторов DDL и DML операторов?
DDL сначала выполняются операторы, а DML операторы выполняются после. Это связано с тем, что схема базы данных должна быть определена до того, как можно будет манипулировать данными.