SQL | |
Data pierwszej wersji | 1974 |
---|---|
Paradygmat | deklaratywny , proceduralny , obiektowy |
Autor | Donald D. Chamberlin i Raymond F. Boyce |
Deweloper | IBM |
Ostatnia wersja | SQL: 2016 (2016) |
Pisanie na maszynie | statyczny i mocny |
Dialekty | SQL-86, SQL-89, SQL-92, SQL: 1999, SQL: 2003, SQL: 2008, SQL: 2011, SQL: 2016 |
Pod wpływem | CQL , LINQ , Windows PowerShell |
Realizacje | wiele |
System operacyjny | Wieloplatformowy |
Rozszerzenie pliku | sql |
Rozbudowa | .sql |
---|---|
Typ MIME | application/x-sql, application/sql |
Opracowany przez | ISO / IEC |
Typ formatu | Baza danych |
Standard | ISO / IEC 9075 |
SQL (skrót od Structured Query Language , we francuskim ustrukturyzowanym języku zapytań ) to ustandaryzowany język komputerowy używany do wykorzystywania relacyjnych baz danych . Część SQL języka manipulacji danymi umożliwia wyszukiwanie, dodawanie, modyfikowanie lub usuwanie danych w relacyjnych bazach danych.
Oprócz języka manipulacji danymi:
Stworzony w 1974 roku, ujednolicony od 1986 roku język rozpoznawany jest przez zdecydowaną większość systemów zarządzania relacyjnymi bazami danych (w skrócie RDBMS) na rynku.
SQL należy do tej samej rodziny co języki ALPHA (którego jest potomkiem), SQUARE, QUEL (zintegrowany z Ingresem ) czy QBE (Zloof). Narodził się pod nazwą SEQUEL, ale nazwa ta została zmieniona na SQL ze względu na fakt, że SEQUEL był zastrzeżonym znakiem towarowym producenta samolotów Hawker-Siddeley .
W czerwcu 1970 roku , Edgar Frank Codd opublikował artykuł relacyjnym modelu danych dla Large Shared Data Banks w Journal Communications of the ACM ( Association for Computing Machinery ). To relacyjne repozytorium oparte na logice predykatów pierwszego rzędu zostało szybko uznane za interesujący model teoretyczny do wykonywania zapytań do baz danych i zainspirowało do opracowania Structured English QUEry Language ( SEQUEL ). konflikt znaków towarowych .
Opracowany w IBM w 1970 roku przez Donalda Chamberlin i Raymond Boyce, ta pierwsza wersja została zaprojektowana do manipulowania i edytować dane przechowywane w relacyjnej bazie danych przy użyciu System R zarządzania bazą danych systemu . Nazwa SEQUEL, która została zarejestrowana komercyjnie przez producenta samolotów Hawker Siddeley dla systemu akwizycji danych, została wycofana i zakontraktowana do SQL w 1975 roku. Oczekiwano, że SQL stanie się kluczowym elementem przyszłego projektu FS .
W 1979 roku firma Relational Software, Inc. (obecnie Oracle Corporation ) wprowadziła pierwszą komercyjnie dostępną wersję SQL, szybko emulowaną przez innych dostawców.
SQL został przyjęty jako zalecenie przez American Standards Institute (ANSI) w 1986 r. , następnie jako norma międzynarodowa przez ISO w 1987 r. jako ISO/IEC 9075 – Technologia informacyjna – Języki baz danych – SQL .
Międzynarodowy standard SQL przeszedł szereg zmian:
Rok | Nazwisko | Nazwa | Komentarze |
---|---|---|---|
1986 | ISO / IEC 9075: 1986 | SQL-86 lub SQL-87 | Opublikowane przez ANSI, a następnie przyjęte przez ISO w 1987 roku . |
1989 | ISO / IEC 9075: 1989 | SQL-89 lub SQL-1 | Niewielkiej zmiany. |
1992 | ISO / IEC 9075: 1992 | SQL-92 (pl) alias SQL2 | Poważna zmiana. |
1999 | ISO / IEC 9075: 1999 | SQL-99 (pl) alias SQL3 | Wyrażenia regularne, zapytania rekurencyjne, wyzwalacze, typy nieskalarne i kilka funkcji obiektowych (ostatnie dwa punkty są nieco kontrowersyjne i nie są jeszcze szeroko zaimplementowane). |
2003 | ISO / IEC 9075: 2003 | SQL: 2003 (pl) | Wprowadzenie funkcji do manipulacji XML, „funkcji okienkowych”, standaryzowanych zleceń i kolumn z własnymi wartościami (w tym kolumnami tożsamości). |
2008 | ISO / IEC 9075: 2008 | SQL: 2008 (pl) | Dodano kilka funkcji okienkowania (ntile, lead, lag, pierwsza wartość, ostatnia wartość, n-ta wartość), ograniczenie liczby wierszy (OFFSET/FETCH), drobne ulepszenia w różnych typach, kursorach i mechanizmach autoinkrementacji. |
2011 | ISO / IEC 9075: 2011 | SQL: 2011 (pl) | Dodano obsługę tabel czasowych (automatyczna historyzacja). |
Jak każda norma międzynarodowa opublikowana przez ISO, ISO / IEC 9075 można kupić na stronie internetowej tej organizacji. Najnowsza wersja robocza normy jest dostępna na stronie wiscorp.com.
Język SQL jest używany głównie na trzy sposoby:
Instrukcje SQL są pisane w sposób przypominający zwykłe zdania angielskie. To zamierzone podobieństwo ma na celu ułatwienie nauki i czytania.
Jest to język deklaratywny, to znaczy pozwala opisać oczekiwany wynik, bez opisu sposobu jego uzyskania. DBMS są wyposażone w optymalizatory zapytań - mechanizmy, które automatycznie określają optymalny sposób wykonywania operacji, w tym poprzez szacowanie złożoności algorytmicznej . Opiera się to na statystykach zebranych z danych zawartych w bazie (liczba rekordów, liczba odrębnych wartości w kolumnie itp.).
Instrukcje SQL obejmują 4 obszary:
Instrukcje manipulowania zawartością bazy danych rozpoczynają się słowami kluczowymi SELECT , UPDATE , INSERT lub DELETE , które odpowiadają odpowiednio operacjom wyszukiwania zawartości , modyfikacji , dodawania i usuwania .
Różne inne słowa kluczowe, takie jak FROM , JOIN i GROUP BY, są używane do wskazania operacji algebry relacyjnej, które należy wykonać w celu uzyskania treści, którą należy manipulować.
język definicji danychInstrukcje manipulowania metadanymi - opis struktury, organizacji i charakterystyki bazy danych - zaczynają się od słów kluczowych CREATE , ALTER , DROP , RENAME , COMMENT lub TRUNCATE , które odpowiadają operacjom dodawania , modyfikowania , usuwania , zmiany nazwy , komentarza lub opróżniania metadane. Po tych słowach kluczowych natychmiast następuje typ metadanych do użycia - TABLE , VIEW , INDEX ...
język kontroli danych i język kontroli transakcjiSłowa kluczowe GRANT i REVOKE służą do autoryzacji operacji dla określonych osób, dodawania lub usuwania autoryzacji. Natomiast słowa kluczowe COMMIT i ROLLBACK służą do potwierdzania lub anulowania wykonania transakcji .
Składnia SQL jest przedmiotem ISO 9075 standardzie . Standard ten pozostawia producentom DBMS możliwość dodawania szczegółowych i niestandardowych instrukcji. Średnia ewoluowała na przestrzeni lat, aby nadążyć za wymaganiami, a wydawcy DBMS często dodaje funkcje do swoich produktów, zanim stały się one przedmiotem normy, co powoduje różnice w zrozumieniu i zrozumienia. Interpretację, która jest wykonana z kodu źródłowego w SQL przez różne oprogramowanie DBMS. Różnice te oznaczają, że kod źródłowy napisany bez środków ostrożności dla danego DBMS niekoniecznie będzie działał z innym DBMS.
SQL może zarządzać i ogólnie zarządza wieloma bazami danych. Na początku musisz wskazać, z którym z nich chcesz pracować za pomocą instrukcji USE
USE mabase;Język manipulacji danymi DML lub Data Manipulation Language, DML, w języku angielskim, jest podzbiorem SQL używanym do dodawania, modyfikowania i usuwania danych:
Słowo kluczowe NULL zostało wprowadzone w SQL w celu wyrażenia brakujących informacji w modelu relacyjnym. Wprowadzenie NULL, wraz z TRUE i FALSE, jest podstawą logiki trójskładnikowej . NULL nie ma wartości w SQL (i nie należy do żadnego typu danych), jest to zastrzeżone słowo kluczowe, wskazujące na brak informacji. Dlatego porównanie z NULL, nawet z samym NULL, nie może być TRUE ani FALSE, musi być nieznane i nie ma wartości logicznej. Rzeczywiście, NULL nie może być uważany za równy NULL, ponieważ dwie brakujące informacje, które reprezentują te dwie różne wartości NULL, mogą okazać się różne. Ogólnie mówimy, że NULL to „znacznik”.
Inne języki zapytań obejmują przodków SQL, takich jak QUEL (QUERY English Language) lub język QBE (Query By Example). Jednak język QBE , bardzo różniący się od SQL, nadal obowiązuje w RDBMS typu „plik” typu Paradox (Ansa Software/Borland/Corel) czy Microsoft Access (baza danych) firmy Microsoft .
Należy zauważyć, że technika WITH została częściowo wykorzystana w standardzie SQL: 1999 do tworzenia „ Common Table Expression ” (CTE lub Table d'Expression Partagée po francusku), to znaczy widoków nieinstancjalnych , które mogą być używane przez zapytanie, w którym się pojawiają, w celu faktoryzacji wyrażeń lub umożliwienia pisania zapytań rekurencyjnych w celu eleganckiego rozwiązywania przechodzenia przez drzewa lub grafy.
Inni kandydaci to:
|
Wszystkie te systemy mają pewne osobliwości, z których niektóre nie występują w innych. Zawsze warto odnieść się do podręcznika RDBMS podczas konkretnych lub złożonych żądań, a także w celu ich optymalizacji.