Jak nazywa się podzbiór strukturalnego języka zapytań, związany z formułowaniem zapytań do bazy danych za pomocą polecenia SELECT?
INSERT, UPDATE i DELETE.SELECT.GRANT i REVOKE.CREATE, ALTER i DROP.Pytanie z egzaminu CKE, czerwiec 2014 (arkusz E.14-X-14.05).
Polecenia SQL dzieli się na podzbiory według tego, co robią z bazą. Zapytania odczytujące dane, czyli polecenie SELECT z klauzulami WHERE, ORDER BY czy GROUP BY, tworzą podzbiór DQL (Data Query Language). Takie polecenie niczego w bazie nie zmienia, tylko zwraca wynik, na przykład SELECT nazwisko FROM klienci WHERE miasto = 'Opole';.
Do zapamiętania cały podział: DDL definiuje strukturę (CREATE, ALTER, DROP), DML zmienia dane (INSERT, UPDATE, DELETE), DCL nadaje uprawnienia (GRANT, REVOKE), a DQL odpytuje bazę. W części podręczników SELECT zalicza się do DML, ale gdy wydziela się osobny podzbiór zapytań, nazywa się on właśnie DQL.
Pomyłka zwykle bierze się z rozwinięć skrótów, które brzmią podobnie. Data Manipulation Language kojarzy się z „manipulowaniem” danymi, a odczyt też wydaje się pracą na danych. DML obejmuje jednak polecenia, które dane zmieniają: INSERT dodaje wiersze, UPDATE je modyfikuje, a DELETE usuwa.
Data Definition Language dotyczy struktury, a nie zawartości. Poleceniami DDL tworzy się i zmienia tabele, bazy czy indeksy, na przykład CREATE TABLE lub ALTER TABLE. Data Control Language służy z kolei do zarządzania dostępem: GRANT nadaje użytkownikowi prawa, REVOKE je odbiera.
Polecenie SELECT nie tworzy obiektów, nie zmienia wierszy i nie nadaje uprawnień - tylko pyta bazę o dane. Słowo „Query” w nazwie Data Query Language oznacza właśnie zapytanie, stąd SQL DQL.
Przy klasyfikowaniu polecenia wystarczy więc zapytać, czy zmienia ono strukturę, dane albo uprawnienia, czy tylko odczytuje zawartość tabel.