Do którego podzbioru języka SQL należą polecenia CREATE TABLE, ALTER TABLE i DROP TABLE, służące do tworzenia, zmiany i usuwania struktury tabel?
GRANT i REVOKE.CREATE, ALTER i DROP definiują strukturę bazy, więc należą do DDL.INSERT, UPDATE, DELETE), a nie ich strukturę.SELECT, które odczytują dane i niczego nie zmieniają.Polecenia, które zmieniają strukturę bazy, a nie same dane, tworzą podzbiór DDL (Data Definition Language). CREATE TABLE zakłada nową tabelę z kolumnami i ich typami, ALTER TABLE zmienia istniejącą, na przykład dodaje kolumnę, a DROP TABLE usuwa tabelę razem z zawartością. Do DDL należą też CREATE DATABASE, CREATE INDEX i TRUNCATE.
Dobrym testem jest pytanie, czy polecenie operuje na obiektach bazy, czy na wierszach. Przykład ALTER TABLE klienci ADD telefon VARCHAR(15); zmienia definicję tabeli, więc to DDL, natomiast UPDATE klienci SET telefon = '123'; zmienia dane w wierszach, więc to DML.
Skróty SQL łatwo pomylić, bo każdy zawiera słowo Language, a różni się jednym członem. Data Manipulation Language to praca na wierszach: INSERT, UPDATE, DELETE. Polecenie DROP TABLE też coś usuwa, ale nie pojedyncze wiersze, tylko cały obiekt bazy, dlatego nie trafia do DML.
Data Control Language obejmuje uprawnienia, czyli GRANT i REVOKE. Kto kojarzy „kontrolę” z panowaniem nad tabelami, może tu się pomylić, lecz chodzi wyłącznie o dostęp użytkowników. Data Query Language to zapytania SELECT, które niczego nie zmieniają.
Tworzenie, modyfikacja i usuwanie tabel to definiowanie struktury, a słowo Definition w nazwie DDL mówi to wprost.
Pomaga prosta reguła: jeżeli po wykonaniu polecenia zmienia się lista tabel albo ich kolumn, a nie same wartości w wierszach, to polecenie należy do definiowania struktury bazy.