SQL | |
Az első változat kelte | 1974 |
---|---|
Paradigma | deklaratív , eljárási , objektum-orientált |
Szerző | Donald D. Chamberlin és Raymond F. Boyce |
Fejlesztő | IBM |
Utolsó verzió | SQL: 2016 (2016) |
Gépelés | statikus és erős |
Nyelvjárások | SQL-86, SQL-89, SQL-92, SQL: 1999, SQL: 2003, SQL: 2008, SQL: 2011, SQL: 2016 |
Befolyásolt | CQL , LINQ , Windows PowerShell |
Végrehajtások | sok |
Operációs rendszer | Cross-platform |
Fájlkiterjesztés | sql |
Kiterjesztés | .sql |
---|---|
MIME típus | application/x-sql, application/sql |
Fejlesztette | ISO / IEC |
Formátum típusa | Adatbázis |
Alapértelmezett | ISO / IEC 9075 |
Az SQL (a Structured Query Language rövidítése , francia strukturált lekérdezési nyelven ) egy szabványosított számítógépes nyelv, amelyet a relációs adatbázisok kihasználására használnak . Az SQL adatkezelési nyelvi része lehetővé teszi adatok keresését, hozzáadását, módosítását vagy törlését a relációs adatbázisokban.
Az adatkezelési nyelv mellett:
Az 1974-ben létrehozott, 1986 óta szabványosított nyelvet a piacon lévő relációs adatbázis-kezelő rendszerek (rövidítve RDBMS) túlnyomó többsége felismeri .
SQL része ugyanannak a családnak, mint a nyelv ALPHA (amelyből a leszármazottja), négyzet, quel (integrálva Ingres ), illetve a QBE (Zloof). Születésekor SEQUEL-nek hívták, de ez a név SQL-re változott, mivel a SEQUEL a Hawker-Siddeley repülőgépgyártó cég bejegyzett védjegye volt .
Júniusban 1970-ben , Edgar Frank Codd megjelent a cikk A relációs modell az adatok nagy Shared adatbankok folyóiratban Communications of the ACM ( Association for Computing Machinery ). Ez a relációs adattár alapján a logika elsőrendű predikátumok hamar felismerte, mint egy érdekes elméleti modell lekérdezéséhez adatbázisok , és inspirálta a fejlesztés a strukturált angol Query Language ( SEQUEL ). Structured Query angolul „), későbbi nevén SQL miatt védjegy konfliktus .
Ezt az első verziót az IBM -nél 1970-ben Donald Chamberlin és Raymond Boyce fejlesztette ki. Ezt az első verziót a relációs adatbázisban tárolt adatok manipulálására és szerkesztésére tervezték az IBM System R adatbázis-kezelő rendszer segítségével . A név folytatás, melyet a kereskedelemben regisztrált repülőgép gyártó Hawker Siddeley egy adatgyűjtő rendszer, elvetették, és szerződött SQL 1975 SQL ezután várhatóan lesz egy kulcsfontosságú eleme a jövő FS projekt .
A 1979 , relációs Software, Inc. (most Oracle Corporation ) bemutatta az első kereskedelmi forgalomban kapható SQL, gyorsan emulált más gyártók.
SQL-ben elfogadott egy ajánlást az Amerikai Szabványügyi Intézet (ANSI) a 1986 , majd mint egy nemzetközi szabvány szerint ISO in 1987 , mint az ISO / IEC 9075 - Számítástechnika - adatbázis nyelvek - SQL .
A nemzetközi SQL szabvány számos változaton ment keresztül:
Év | Vezetéknév | Megnevezés | Hozzászólások |
---|---|---|---|
1986 | ISO / IEC 9075: 1986 | SQL-86 vagy SQL-87 | Az ANSI kiadta, majd az ISO fogadta el 1987-ben . |
1989 | ISO / IEC 9075: 1989 | SQL-89 vagy SQL-1 | Kisebb felülvizsgálat. |
1992 | ISO / IEC 9075: 1992 | SQL-92 (en) álnév SQL2 | Nagyobb felülvizsgálat. |
1999 | ISO / IEC 9075: 1999 | SQL-99 (en) álnév SQL3 | Reguláris kifejezések, rekurzív lekérdezések, triggerek, nem skaláris típusok és néhány objektum-orientált függvény (az utolsó két pont kissé ellentmondásos és még nem terjedt el széles körben). |
2003 | ISO / IEC 9075: 2003 | SQL: 2003 (en) | Bevezetés az XML manipulációhoz szükséges függvényekbe, "ablakfunkciók", szabványosított rendelések és oszlopok saját előállítású értékekkel (beleértve az identitásoszlopokat is). |
2008 | ISO / IEC 9075: 2008 | SQL: 2008 (en) | Hozzáadott néhány ablakolási funkciót (ntile, lead, lag, első érték, utolsó érték, n-edik érték), korlátozza a sorok számát (OFFSET / FETCH), kisebb javulás a különböző típusokon, kurzorokon és automatikus növekedési mechanizmusokon. |
2011 | ISO / IEC 9075: 2011 | SQL: 2011 (hu) | Támogatás az időbeli táblákhoz (automatikus historizálás). |
Mint minden más, az ISO által kiadott nemzetközi szabvány, az ISO / IEC 9075 is megvásárolható e szervezet weboldaláról. A szabvány legújabb tervezete a wiscorp.com oldalon érhető el.
Az SQL nyelvet főleg háromféleképpen használják:
Az SQL utasításokat úgy írják, hogy azok hasonlítsanak a hétköznapi angol mondatokra. Ez a hasonlóság célja a tanulás és az olvasás megkönnyítése.
Ez egy deklaratív nyelv, vagyis lehetővé teszi a várt eredmény leírását anélkül, hogy leírná, hogyan érhető el. A DBMS-ek lekérdezés-optimalizálókkal vannak felszerelve - mechanizmusok, amelyek automatikusan meghatározzák a műveletek végrehajtásának optimális módját , beleértve az algoritmikus bonyolultság becslését is . Ez az adatbázisban található adatokból összegyűjtött statisztikákon alapul (rekordok száma, oszlopban lévő különálló értékek száma stb.).
Az SQL utasítások 4 területet fednek le:
adatmanipulációs nyelvAz adatbázis tartalmának kezelésére vonatkozó utasítások a SELECT , UPDATE , INSERT vagy DELETE kulcsszavakkal kezdődnek, amelyek megfelelnek a tartalom keresésének, módosításának, hozzáadásának és törlésének műveleteinek.
Különböző kulcsszavak, például a FROM , a JOIN és a GROUP BY jelzik a relatív algebra műveleteket , amelyeket el kell végezni a manipulálandó tartalom megszerzése érdekében.
adatmeghatározási nyelvA metaadatok manipulálására vonatkozó utasítások - az adatbázis felépítésének, szervezetének és jellemzőinek leírása - a CREATE , ALTER , DROP , RENAME , COMMENT vagy TRUNCATE kulcsszavakkal kezdődnek, amelyek megfelelnek a hozzáadás, módosítás, törlés, átnevezés, megjegyzés vagy ürítés műveleteinek. metaadatok. Ezeket a kulcsszavakat azonnal követi a használni kívánt metaadatok típusa - TÁBLÁZAT , NÉZET , INDEX ...
adatkezelő nyelv és tranzakcióvezérlő nyelvA GRANT és a REVOKE kulcsszavak bizonyos személyek műveleteinek engedélyezésére, engedélyek hozzáadására vagy eltávolítására szolgálnak. Míg a COMMIT és a ROLLBACK kulcsszavakat használják a tranzakciók végrehajtásának megerősítésére vagy törlésére .
Az SQL szintaxis az ISO 9075 szabvány tárgya . Ez a szabvány lehetőséget ad a DBMS- gyártóknak , hogy konkrét és nem szabványosított utasításokat adjanak hozzá. A szabvány alakult ki az évek során, hogy lépést tartsanak igényeket, és adatbázis-kezelő gyártók gyakran hozzáadott képességek termékeik, még mielőtt azok tárgyát szabványoknak, így eltérések megértésében és a megértés. Értelmezést, amely készült a forráskód SQL által különféle DBMS szoftverek. Ezek a különbségek azt jelentik, hogy egy adott DBMS-hez óvintézkedések nélkül írt forráskód nem feltétlenül fog működni egy másik DBMS-mel.
Az SQL több adatbázist kezelhet és általában kezel . Az elején meg kell adnia, hogy melyikkel szeretne dolgozni, egy USE utasítással
USE mabase;Az adatkezelési nyelvet DML vagy Adatkezelő nyelv, DML, angol, egy részhalmaza SQL használják hozzá, módosíthat és törölhet adatok:
A NULL kulcsszót az SQL-ben vezették be, hogy a relációs modellben hiányzó információkat fejezzen ki. A NULL bevezetése, az IGAZ és HAMIS mellett, a háromlagos logika alapja . A NULL-nek nincs értéke az SQL-ben (és nem tagja egyetlen adattípusnak sem), ez egy fenntartott kulcsszó, jelezve, hogy hiányoznak az információk. Ezért a NULL-rel, még magával a NULL-rel való összehasonlítás sem lehet IGAZ vagy HAMIS, ismeretlennek kell lennie, és nincs logikai értéke. Valójában a NULL nem tekinthető egyenlőnek a NULL értékkel, mivel a két hiányzó információ, amelyet ez a két különálló NULL jelent, eltérőnek bizonyulhat. Általában azt mondjuk, hogy a NULL egy "marker".
Más lekérdezési nyelvek tartalmazzák az SQL őseit, például a QUEL (QUERY English Language) vagy a QBE (Query By Example) nyelvet. Az QBE nyelv azonban, amely nagyon különbözik az SQL-től, továbbra is érvényben van a „file” típusú RDBMS-ben, például a Paradox (Ansa Software / Borland / Corel) vagy a Microsoft Access (adatbázis) a Microsoft-tól .
Meg kell jegyezni, hogy a WITH technikát részben átvette az SQL: 1999 szabvány a " Common Table Expression " ( franciaul CTE vagy Table d'Expression Partagée francia) létrehozására, vagyis felhasználhatatlan, nem példányos nézetekre. azzal a lekérdezéssel, amelyben megjelennek, a kifejezések faktorizálása vagy a rekurzív lekérdezések megírása érdekében, hogy elegánsan megoldják a fák vagy grafikonok bejárását.
Egyéb jelöltek:
|
Mindezeknek a rendszereknek vannak bizonyos sajátosságaik, amelyek némelyike másokban nem található meg. Mindig érdekes az RDBMS referencia kézikönyve, konkrét vagy összetett kérések során, valamint azok optimalizálása.