Инструкции SELECT, INSERT, DELETE, UPDATE, рассмотренные ранее, предназначены для обработки данных. В совокупности эти инструкции называются языком обработки данных, или DML (Data Manipulation Language). Инструкции DML могут модифицировать информацию, хранимую в базе данных, но не могут изменять ее структуру. Например, ни одна из этих инструкций не позволяет создавать и удалять таблицы или столбцы.
Для изменения структуры базы данных предназначен другой набор инструкций SQL, который называется языком определения данных, или DDL (Data Definition Language). С помощью инструкций DDL можно:
• определить структуру новой таблицы и создать её;
• удалить таблицу, которая больше не нужна;
• изменить определение существующей таблицы;
• определить виртуальную таблицу (или представление) данных
В большинстве случаев инструкции DDL обеспечивают высокий уровень доступа к данным и позволяют пользователю не вникать в детали хранения информации в базе данных на физическом уровне. Они оперируют абстрактными объектами базы данных, такими как таблицы и столбцы. Однако DDL не может совершенно не затрагивать вопросов, связанных с физической памятью. Инструкции и предложения DDL, управляющие физической памятью, могут быть разными в различных СУБД.
Ядро языка определения данных образуют три команды:
• CREATE (создать), позволяющая определить и создать объект базы данных;
• DROP (удалить), служащая для удаления существующего объекта базы данных;
• ALTER (изменить), с помощью, которой можно изменить определение объекта базы данных.
Все основные реляционные СУБД позволяют использовать три указанные команды DDL во время своей работы. Таким образом, структура реляционной базы данных является динамической. Например, СУБД может создавать, удалять или изменять таблицы, одновременно с этим обеспечивая доступ пользователям к базе данных. Это – одно из главных преимуществ реляционных баз данных по сравнению с более ранними системами, в которых изменять структуру базы данных можно было только после прекращения работы СУБД. Это означает, что с течением времени база данных может расти и изменяться. Ее промышленная эксплуатация может продолжаться в то время, когда в базу данных добавляются все новые таблицы и модули.
Хотя DDL и DML являются двумя отдельными частями SQL, в большинстве реляционных СУБД такое разделение существует лишь на абстрактном уровне. Обычно инструкции DDL и DML в СУБД абсолютно равноправны, и их можно произвольно чередовать как в интерактивном, так и в программном SQL. Если программе или пользователю требуется таблица для временного хранения результатов, они могут создать эту таблицу, заполнить ее, проделать с данными необходимую работу и затем удалить таблицу. Это, опять-таки, является большим преимуществом по сравнению с более ранними моделями представления данных, где структура базы данных жестко фиксировалась при ее создании.