BD-1st-2.4-lab1.tresc-1.1-Slajd5
Język SQL
Język SQL jest językiem deklaratywnym. Charakterystyczną cechą języków deklaratywnych jest to, że opisują „co” ma być zrobione, ale nie „jak”. W praktyce oznacza to, że użytkownik opisuje w języku SQL efekt jaki chce uzyskać (odczytanie telefonów wszystkich pracowników o nazwisku zaczynającym się na literę ‘A’, podniesienie pensji wszystkim profesorom itp.), ale nie sposób w jaki ma to być zrobione (sekwencja operacji dyskowych, które prowadzą do wykonania polecenia). Sposób wykonania polecenia jest automatycznie dobierany przez SZBD i zależy od fizycznego sposobu składowania danych.
Język SQL jest zorientowany na przetwarzanie zbiorów. Ponieważ dane są przechowywane w relacjach, które są zbiorami krotek, konstrukcje języka SQL dotyczą przetwarzania zbiorów i nie zawierają poleceń uwzględniających jakiś porządek na krotkach.
W języku SQL można wyróżnić trzy grupy poleceń:
DML – język manipulacji danymi pozwalający na odczytywanie danych z relacji (polecenie SELECT) oraz na wstawianie, modyfikację i usuwanie danych z relacji (polecenia: INSERT, UPDATE, MERGE i DELETE).
DDL – język definicji danych pozwalający na tworzenie, modyfikację i usuwanie relacji (polecenia CREATE, ALTER i DROP).
DCL – język kontroli danych pozwalający na zapewnienie autoryzacji dostępu do danych oraz zarządzanie transakcjami. Najważniejsze polecenia to GRANT i REVOKE (czasem zaliczane do DDLa) oraz COMMIT, ROLLBACK i SAVEPOINT.
W języku SQL nie rozróżnia się dużych i małych liter. Wszystkie słowa kluczowe i nazwy (np. relacji i atrybutów) w języku SQL można pisać zarówno dużymi jak i małymi literami. Przykładowo, wyrażenia: nazwisko, Nazwisko i NAZWISKO są identyczne.
W poleceniach SQL ignorowane są znaki końca linii. Wszystkie słowa kluczowe i wyrażenia w języku SQL można rozdzielać zarówno spacjami jak i znakami końca linii. W rezultacie dowolne polecenie SQL można sformatować w dowolny sposób (może ono zajmować jeden długi wiersz, lub kilka krótszych wierszy).
Każde polecenie SQL powinno być zakończone średnikiem. Próba wykonania polecenia nie zakończonego w ten sposób może zakończyć się błędem, chociaż istnieją sytuacje, gdy pominięcie średnika jest dozwolone.