Do którego podzbioru języka SQL zalicza się polecenia START TRANSACTION, COMMIT i ROLLBACK, sterujące transakcjami?
INSERT, UPDATE, DELETE.CREATE TABLE.COMMIT zatwierdza zmiany, a ROLLBACK je wycofuje.GRANT, REVOKE).Polecenia, które grupują operacje w transakcję i decydują o jej losie, tworzą podzbiór TCL (Transaction Control Language). START TRANSACTION otwiera transakcję, COMMIT zatwierdza wszystkie zmiany wykonane od jej początku, a ROLLBACK je wycofuje. Do tej grupy należy też SAVEPOINT, który zapisuje punkt pośredni.
Typowy przykład to przelew: zmniejszenie salda jednego konta i zwiększenie drugiego muszą wykonać się razem. Jeśli drugie UPDATE się nie powiedzie, ROLLBACK cofa pierwsze. W MySQL transakcje obsługuje silnik InnoDB, a bez jawnej transakcji każde polecenie zatwierdzane jest od razu (tryb autocommit).
Bez transakcji każda pomyłka w połowie operacji zostawiłaby bazę w niespójnym stanie.
Najczęściej myli się tu TCL z DML, bo transakcja obejmuje zwykle polecenia INSERT czy UPDATE. Te polecenia rzeczywiście należą do DML, ale COMMIT i ROLLBACK same niczego w wierszach nie zmieniają - decydują tylko, czy wcześniejsze zmiany zostaną utrwalone.
DDL to definiowanie struktury bazy: CREATE, ALTER, DROP. Z transakcjami łączy go tylko to, że w MySQL takie polecenie niejawnie zatwierdza otwartą transakcję. DCL zajmuje się uprawnieniami, czyli GRANT i REVOKE, i słowo Control w nazwie bywa tu mylące.
Sterowanie transakcją ma własną nazwę: Transaction Control Language, w skrócie TCL.
Dobrym sprawdzianem jest pytanie, co polecenie robi samo w sobie. Jeśli nie tworzy obiektów, nie zmienia wierszy i nie nadaje praw, a jedynie zamyka lub cofa rozpoczętą grupę operacji, to należy do sterowania transakcjami.