SQL | |
Datum první verze | 1974 |
---|---|
Paradigma | deklarativní , procedurální , objektově orientovaný |
Autor | Donald D. Chamberlin a Raymond F. Boyce |
Vývojář | IBM |
Poslední verze | SQL: 2016 (2016) |
Psaní na stroji | statické a silné |
Dialekty | SQL-86, SQL-89, SQL-92, SQL: 1999, SQL: 2003, SQL: 2008, SQL: 2011, SQL: 2016 |
Ovlivněno | CQL , LINQ , Windows PowerShell |
Implementace | mnoho |
Operační systém | Cross-platform |
Přípona souboru | sql |
Rozšíření | .sql |
---|---|
Typ MIME | application/x-sql, application/sql |
Vyvinul | ISO / IEC |
Typ formátu | Databáze |
Standard | ISO / IEC 9075 |
SQL (zkratka pro Structured Query Language , ve francouzštině strukturovaný dotazovací jazyk ) je standardizovaný počítačový jazyk používaný k využívání relačních databází . Část jazyka SQL pro manipulaci s daty umožňuje vyhledávat, přidávat, upravovat nebo mazat data v relačních databázích.
Kromě jazyka pro manipulaci s daty:
Jazyk, který byl vytvořen v roce 1974 a je standardizován od roku 1986, je uznáván převážnou většinou systémů správy relačních databází (zkráceně RDBMS) na trhu.
SQL je součástí stejné rodiny jako jazyky alfa (z nichž je potomek), náměstí, Quel (integrován do Ingres ) nebo QBE (Zloof). Když se zrodilo jméno SEQUEL, tento název byl změněn na SQL kvůli skutečnosti, že SEQUEL byla registrovaná ochranná známka výrobce letadel Hawker-Siddeley .
V červnu 1970 , Edgar Frank Codd publikoval článek relační model dat pro velké sdílené databanky v časopise Communications of ACM ( Sdružení pro výpočetní techniku ). Toto relační úložiště založené na logice predikátů prvního řádu bylo rychle rozpoznáno jako zajímavý teoretický model pro dotazování databází a inspirovalo k vývoji Structured English QUEry Language ( SEQUEL ). Strukturovaný dotaz v angličtině “), později přejmenovaný na SQL kvůli konflikt ochranných známek .
Vyvinuté v IBM v roce 1970 Donald Chamberlin a Raymond Boyce, tato první verze byla navržena tak, aby manipulovat a upravovat data uložená v relační databázi pomocí IBM System R databázový systém . Jméno SEQUEL, který byl komerčně zaregistrována letadla výrobce Hawker Siddeley pro systém pro sběr dat, bylo upuštěno a smluvně SQL v roce 1975. SQL pak se očekávalo, aby se stal klíčovým prvkem budoucího projektu FS .
V roce 1979 společnost Relational Software, Inc. (nyní Oracle Corporation ) představila první komerčně dostupnou verzi SQL, rychle emulovanou jinými dodavateli.
SQL byl přijat jako doporučení Americkým normalizačním institutem (ANSI) v roce 1986 , poté jako mezinárodní standard ISO v roce 1987 jako ISO / IEC 9075 - Informační technologie - Databázové jazyky - SQL .
Mezinárodní standard SQL prošel řadou revizí:
Rok | Příjmení | Označení | Komentáře |
---|---|---|---|
1986 | ISO / IEC 9075: 1986 | SQL-86 nebo SQL-87 | Publikováno ANSI a poté přijato ISO v roce 1987 . |
1989 | ISO / IEC 9075: 1989 | SQL-89 nebo SQL-1 | Drobná revize. |
1992 | ISO / IEC 9075: 1992 | SQL-92 (en) alias SQL2 | Hlavní revize. |
1999 | ISO / IEC 9075: 1999 | SQL-99 (en) alias SQL3 | Regulární výrazy, rekurzivní dotazy, triggery, nekalární typy a několik objektově orientovaných funkcí (poslední dva body jsou poněkud kontroverzní a dosud nejsou široce implementovány). |
2003 | ISO / IEC 9075: 2003 | SQL: 2003 (cs) | Představení funkcí pro manipulaci s XML, „okenních funkcí“, standardizovaných objednávek a sloupců s vlastními hodnotami (včetně sloupců identity). |
2008 | ISO / IEC 9075: 2008 | SQL: 2008 (cs) | Přidány některé funkce oken (ntile, lead, lag, první hodnota, poslední hodnota, n-ta hodnota), omezení počtu řádků (OFFSET / FETCH), drobné vylepšení u odlišných typů, kurzory a mechanismy automatického zvyšování. |
2011 | ISO / IEC 9075: 2011 | SQL: 2011 (cs) | Přidána podpora pro dočasné tabulky (automatická historizace). |
Jako každá mezinárodní norma vydaná ISO je možné ISO / IEC 9075 zakoupit na webových stránkách této organizace. Nejnovější návrh normy je k dispozici na wiscorp.com.
Jazyk SQL se používá hlavně třemi způsoby:
Příkazy SQL jsou psány způsobem, který se podobá běžným anglickým větám. Tato zamýšlená podobnost má usnadnit učení a čtení.
Jedná se o deklarativní jazyk, to znamená, že umožňuje popsat očekávaný výsledek, aniž by popisoval, jak jej získat. DBMS jsou vybaveny optimalizátory dotazů - mechanismy, které automaticky určují optimální způsob provádění operací, včetně odhadu složitosti algoritmu . To je založeno na statistikách shromážděných z údajů obsažených v databázi (počet záznamů, počet odlišných hodnot ve sloupci atd.).
Příkazy SQL pokrývají 4 oblasti:
jazyk manipulace s datyPokyny pro manipulaci s obsahem databáze začínají klíčovými slovy SELECT , UPDATE , INSERT nebo DELETE, která odpovídají operacím hledání obsahu, úpravy, přidání a odstranění.
Různá další klíčová slova , například FROM , JOIN a GROUP BY, se používají k označení operací relační algebry, které se mají provést za účelem získání obsahu, s nímž se má manipulovat.
jazyk definice datPokyny pro manipulaci s metadaty - popis struktury, organizace a charakteristik databáze - začínají klíčovými slovy CREATE , ALTER , DROP , RENAME , COMMENT nebo TRUNCATE, které odpovídají operacím přidání, úpravy, mazání, přejmenování, komentáře nebo vyprázdnění metadata. Za těmito klíčovými slovy bezprostředně následuje typ metadat, která se mají použít - TABLE , VIEW , INDEX ...
jazyk kontroly dat a jazyk kontroly transakcíKlíčová slova GRANT a REVOKE se používají k autorizaci operací určitým lidem, k přidání nebo odebrání autorizace. Zatímco klíčová slova COMMIT a ROLLBACK se používají k potvrzení nebo zrušení provádění transakcí .
Syntaxe SQL podléhá standardní normě ISO 9075 . Tento standard ponechává producentům DBMS možnost přidat konkrétní a nestandardizované pokyny. Standard se v průběhu let vyvíjel, aby držel krok s požadavky, a prodejci DBMS často přidali do svých produktů funkce dříve, než se stanou předmětem standardů, což způsobilo rozdíly v porozumění a porozumění. Interpretace, kterou provádí zdrojový kód v SQL různý software DBMS. Tyto rozdíly znamenají, že zdrojový kód napsaný bez preventivních opatření pro daný DBMS nemusí nutně fungovat s jiným DBMS.
SQL může spravovat a obecně spravovat více databází. Na začátku musíte určit instrukcí USE, s kým chcete pracovat
USE mabase;Jazyk pro manipulaci s daty DML nebo Data Manipulation Language, DML, v angličtině, je podmnožinou jazyka SQL používaného k přidávání, úpravám a mazání dat:
Klíčové slovo NULL bylo zavedeno v SQL k vyjádření chybějících informací v relačním modelu. Zavedení NULL s PRAVDA a NEPRAVDA je základem ternární logiky . NULL nemá v SQL žádnou hodnotu (a není členem žádného datového typu), jedná se o vyhrazené klíčové slovo, což znamená, že chybí informace. Proto srovnání s NULL, dokonce ani s NULL samotným, nemůže být TRUE nebo FALSE, musí být neznámé a nemá žádnou logickou hodnotu. Skutečně NULL nelze považovat za rovný NULL, protože dvě chybějící informace, které tyto dvě odlišné NULL představují, se mohou ukázat jako odlišné. Obecně říkáme, že NULL je „značka“.
Mezi další jazyky dotazů patří předkové SQL, například QUEL (QUery English Language) nebo jazyk QBE (Query By Example). Jazyk QBE , který se velmi liší od jazyka SQL, však stále platí v „souborovém“ typu RDBMS, jako je Paradox (Ansa Software / Borland / Corel) nebo Microsoft Access (databáze) od společnosti Microsoft .
Je třeba poznamenat, že technika WITH byla částečně převzata do standardu SQL: 1999 k vytvoření „ Common Table Expression “ (CTE nebo Table d'Expression Partagée ve francouzštině), to znamená neinicializované pohledy, které lze použít ... pomocí dotazu, ve kterém se objevují, aby bylo možné faktorizovat výrazy nebo dokonce umožnit psaní rekurzivních dotazů za účelem elegantního řešení procházení stromů nebo grafů.
Mezi další kandidáty patří:
|
Všechny tyto systémy mají určité zvláštnosti, z nichž některé se v jiných nenacházejí. Vždy je také zajímavé odkazovat na referenční příručku RDBMS, a to během konkrétních nebo složitých požadavků a také k jejich optimalizaci.