Почему команда alter называется DDL, а не DML?

Я просматривал различные команды в SQL и наткнулся на команду alter, которая называется DDL (язык определения данных). Мы можем изменить столбец и значения в нем, поэтому мы можем манипулировать данными с помощью этой команды, так почему же команда alter не упоминается как DML (язык манипулирования данными).

Я гуглил, и я не могу найти хорошего объяснения, поэтому, пожалуйста, помогите мне с этим.


person Lakshaya Maheshwari    schedule 02.02.2016    source источник
comment
ALTER TABLE изменяет структуру таблицы, поэтому это DDL   -  person a_horse_with_no_name    schedule 02.02.2016


Ответы (5)


Команда ALTER используется для изменения структуры базы данных. И это то, что делает DDL, то есть операторы DDL используются для определения структуры или схемы базы данных.

Принимая во внимание, что оператор DML используется для управления данными в объектах схемы.

person Rahul Tripathi    schedule 02.02.2016

DDL — изменить схему.

Это включает в себя создание таблиц, переименование столбцов, удаление представлений и т. д. Такие операторы являются DDL, даже если они могут создавать (значение по умолчанию), изменять (путем преобразования) или даже терять (удалять столбец) данные как часть процесса. По сути, любая команда CREATE/DROP/ALTER является DDL.

DML — изменить информацию/данные в схеме; без обновления схемы.

Сюда входят операторы DELETE и UPDATE.

Иногда DDL и DML необходимо использовать вместе, чтобы правильно перенести схему; но это две разные категории команд SQL, и DML никогда не приводит к изменению схемы.

person user2864740    schedule 02.02.2016
comment
Это должен быть ответ, поскольку другие говорят только то, что ОП уже знает; что DDL предназначен для определения структуры, а DML — для управления данными. Его пример был о том, как DDL манипулирует данными, и это единственное объяснение, которое включает манипулирование данными среди возможностей DDL... - person Martin; 21.06.2018

Причина Команда ALTER не обрабатывает данные. Он используется для изменения определения столбца, таблицы или других объектов БД.

См. http://www.w3schools.com/sql/sql_alter.asp.

person Kousalik    schedule 02.02.2016

«Данные» — это данные в таблицах, определенные пользователем через DDL. «Метаданные» — это данные в таблицах, предварительно определенные СУБД, которые описывают таблицы (сами и определенные пользователем). Таким образом, DML манипулирует данными в пользовательских таблицах или (обычно только) читает метаданные из системных таблиц, в то время как DDL определяет (CREATE, ALTER, DROP) пользовательские таблицы. и в качестве побочного эффекта обновляет метаданные в системных таблицах.

person philipxy    schedule 02.02.2016

Команда ALTER может быть как DDL, так и DML. Я знал, что ALTER является DDL в прошлом, как и большинство тех, кто ответил на это. Однако в MySQL 5.7.x вы увидите, что вскоре после инициализации базы данных с помощью mysqld --initialize --console создается учетная запись пользователя root по умолчанию и соответствующий пароль. Вы можете получить доступ к своей базе данных с этой недавно созданной учетной записью пользователя root, НО вы абсолютно ничего не можете сделать после входа в систему. Единственным оператором SQL, разрешенным на этом этапе, является оператор ALTER. Это используется для изменения пароля по умолчанию, сгенерированного во время инициализации. Синтаксис ALTER USER 'root'@'localhost' IDENTITIED BY 'new_password'; . Это единственное утверждение, которое принимает база данных. Это изменяет/обновляет/манипулирует данными (паролем) в таблице пользователей. В связи с этим я пришел к выводу, что оператор ALTER может быть как DDL, так и DML.

person Allan Nila Chongwe    schedule 06.05.2019