DDL (Data Definition Language) — to język definicji danych, przeznaczony do określania struktury bazy danych (tworzenie, modyfikowanie, usuwanie tabel, schematów, indeksów itp.):
CREATE TABLE, ALTER TABLE, DROP TABLE.DML (Data Manipulation Language) — to język manipulacji danymi, który działa z zawartością tabel (dodawanie, modyfikowanie, usuwanie, wybieranie wierszy):
INSERT, UPDATE, DELETE, SELECT.Na przykład, różni użytkownicy mogą mieć różne prawa tylko do DML lub tylko do DDL:
-- DDL: tworzenie tabeli CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(100) ); -- DML: wstawianie danych INSERT INTO users (id, name) VALUES (1, 'Ivan');
"Czy można cofnąć polecenie DDL (na przykład, DROP TABLE), jeśli zostało wykonane w jawnej transakcji?"
Większość systemów zarządzania bazą danych (np. PostgreSQL, Oracle) obsługuje transakcje dla DDL, ale wiele z nich nie pozwala na cofnięcie poleceń DDL, nawet jeśli są one wyraźnie owinięte w transakcję. W MySQL polecenia DDL zawsze są natychmiast zapisywane.
BEGIN; DROP TABLE employees; ROLLBACK;
W większości przypadków tabela zostanie na zawsze usunięta, nawet pomimo cofnięcia.
Historia
Utrata tabeli w środowisku deweloperskim po przypadkowym wykonaniu DROP TABLE — polecenie jest nieodwracalne, pomimo cofnięcia transakcji.
Historia
Organizacja przyznała administracyjne prawa projektowi, który w wyniku błędu spowodował masową zmianę schematu bazy danych przez ALTER, co doprowadziło do długiego przestoju usługi i utraty zamówień.
Historia
Odmówienie praw do DDL nowicjuszom, zespół zapomniał, że procedury do wdrożenia migracji wymagają dostępu do DDL — wydanie nie powiodło się po kilku godzinach śledztwa i pilnego podniesienia ról.