|
|
(68 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| '''topic''' kurze Beschreibung
| | '''SQL''' - Structured Query Language |
| ==Beschreibung==
| |
| '''SQL''' (offizielle Aussprache [<nowiki/>{{IPA|ɛskjuːˈɛl}}], mitunter auch [<nowiki/>{{IPA|ˈsiːkwəl}}]; auf Deutsch auch häufig die deutsche Aussprache der Buchstaben) ist eine [[Datenbanksprache]] zur Definition von [[Datenstruktur]]en in [[Relationale Datenbank|relationalen Datenbanken]] sowie zum Bearbeiten (Einfügen, Verändern, Löschen) und Abfragen von darauf basierenden Datenbeständen. | |
|
| |
|
| Die Sprache basiert auf der [[Relationale Algebra|relationalen Algebra]], ihre [[Syntax]] ist relativ einfach aufgebaut und [[Formale Semantik|semantisch]] an die englische Umgangssprache angelehnt. Ein gemeinsames Gremium von [[Internationale Organisation für Normung|ISO]] und [[International Electrotechnical Commission|IEC]] [[Standardisierung|standardisiert]] die Sprache unter Mitwirkung nationaler Normungsgremien wie [[American National Standards Institute|ANSI]] oder [[Deutsches Institut für Normung|DIN]]. Durch den Einsatz von SQL strebt man die Unabhängigkeit der Anwendungen vom eingesetzten [[Datenbank#Datenbankmanagementsystem|Datenbankmanagementsystem]] an.
| | == Beschreibung == |
| | ; Structured Query Language |
| | Strukturierte Abfrage-Sprache |
|
| |
|
| Die Bezeichnung ''SQL'' wird im allgemeinen Sprachgebrauch als Abkürzung für „'''Structured Query Language'''“ (auf Deutsch: „Strukturierte Abfrage-Sprache“) aufgefasst, obwohl sie laut Standard ein eigenständiger Name ist. Die Bezeichnung leitet sich von dem Vorgänger SEQUEL ([{{IPA|ˈsiːkwəl}}], Structured English Query Language) ab, welche mit Beteiligung von [[Edgar F. Codd]] (IBM) in den 1970er Jahren von [[Donald D. Chamberlin]] und [[Raymond F. Boyce]] entwickelt wurde. SEQUEL wurde später in SQL umbenannt, weil SEQUEL ein eingetragenes Warenzeichen der [[Hawker Siddeley]] Aircraft Company ist.<ref>[http://www.mcjones.org/System_R/SQL_Reunion_95/sqlr95-System.html ''Diskussion über System R und zur Namensänderung von SEQUEL zu SQL'']</ref>
| | ; Aussprache |
| ==Sprachelemente==
| | {| class="wikitable options" |
| [[Datei:SQL.png|mini|Bestandteile von SQL]] | | | Aussprache || ɛskjuːˈɛl |
| | |- |
| | | Mitunter auch || siːkwəl |
| | |- |
| | | Deutsch häufig || Aussprache der Buchstaben |
| | |} |
| | |
| | ; Datenbanksprache |
| | * [[Datenbanksprache]] |
|
| |
|
| SQL-Befehle lassen sich in fünf Kategorien unterteilen (Zuordnung nach der Theorie der [[Datenbanksprache]]n in Klammern):
| | ; Definition |
| | * [[Datenstruktur]]en von [[Relationale Datenbank|relationalen Datenbanken]] |
|
| |
|
| *[[Data Query Language]] (DQL) – Befehle zur Abfrage und Aufbereitung der gesuchten Informationen, wird auch als Untermenge der DML klassifiziert
| | ; Bearbeiten |
| *[[Data Manipulation Language]] (DML) – Befehle zur [[Datenmanipulation]] (Ändern, Einfügen, Löschen von [[Datensatz|Datensätzen]]) und lesendem Zugriff | | * Einfügen |
| *[[Data Definition Language]] (DDL) – Befehle zur [[Datendefinition|Definition]] des [[Datenbankschema]]s (Erzeugen, Ändern, Löschen von [[Datenbanktabelle]]n, Definition von [[Primärschlüssel]]n und [[Fremdschlüssel]]n)
| | * Verändern |
| *[[Data Control Language]] (DCL) – Befehle für die [[Mehrbenutzersystem#Rechtemanagement|Rechteverwaltung]] | | * Löschen |
| *[[Transaction Control Language]] (TCL) – Befehle für die [[Transaktion (Informatik)|Transaktionskontrolle]] | |
|
| |
|
| Die Bezeichnung SQL bezieht sich auf das englische Wort {{"|Text=query|Übersetzung=[[Abfragesprache|Abfrage]]|lang=en}}. Mit Abfragen werden die in einer Datenbank gespeicherten Daten abgerufen, also dem Benutzer oder einer Anwendersoftware zur Verfügung gestellt.
| | ; Abfragen |
| | * Datenbestände |
|
| |
|
| Das Ergebnis einer Abfrage sieht wiederum aus wie eine Tabelle und kann oft auch wie eine Tabelle angezeigt, bearbeitet und weiterverwendet werden. {{Siehe auch|Datenbanktabelle}}
| | ; Relationale Algebra |
| | Basiert auf [[Relationale Algebra|relationalen Algebra]] |
| | * [[Syntax]] ist relativ einfach aufgebaut |
| | * [[Formale Semantik|semantisch]] an die englische Umgangssprache angelehnt |
| | * Ein gemeinsames Gremium von [[Internationale Organisation für Normung|ISO]] und [[International Electrotechnical Commission|IEC]] [[Standardisierung|standardisiert]] die Sprache unter Mitwirkung nationaler Normungsgremien wie [[American National Standards Institute|ANSI]] oder [[Deutsches Institut für Normung|DIN]] |
| | * Durch den Einsatz von SQL strebt man die Unabhängigkeit der Anwendungen vom eingesetzten [[Datenbank#Datenbankmanagementsystem|Datenbankmanagementsystem]] an |
|
| |
|
| == Chronologie == | | == Sprachelemente == |
| {| class="wikitable sortable" | | ; Kategorien von SQL-Befehlen |
| | [[Datei:SQL.png|mini|Bestandteile von SQL]] |
| | {| class="wikitable options" |
| | ! Language !! !! Beschreibung |
| |- | | |- |
| ! Jahr !! Beschreibung
| | | [[Data Query Language|Data Query]] || DQL || Abfrage und Aufbereitung der gesuchten Informationen, wird auch als Untermenge der DML klassifiziert |
| |- | | |- |
| | 1975 || ''SEQUEL'' = ''Structured English Query Language'', der Vorläufer von ''SQL'', wird für das Projekt [[System R]] von [[IBM]] entwickelt. | | | [[Data Manipulation Language|Data Manipulation]]|| DML|| [[Datenmanipulation]] (Ändern, Einfügen, Löschen von [[Datensatz|Datensätzen]]) und lesendem Zugriff |
| |- | | |- |
| | 1979 || ''SQL'' gelangt mit ''Oracle V2'' erstmals durch ''Relational Software Inc.'' auf den Markt. | | | [[Data Definition Language|Data Definition]] || DDL || [[Datendefinition|Definition]] des [[Datenbankschema]]s (Erzeugen, Ändern, Löschen von [[Datenbanktabelle]]n, Definition von [[Primärschlüssel]]n und [[Fremdschlüssel]]n) |
| |- | | |- |
| | 1986 || ''SQL1'' wird von [[American National Standards Institute|ANSI]] als Standard verabschiedet. | | | [[Data Control Language|Data Control]] || DCL || [[Mehrbenutzersystem#Rechtemanagement|Rechteverwaltung]] |
| |- | | |- |
| | 1987 || ''SQL1'' wird von der [[Internationale Organisation für Normung|Internationalen Organisation für Normung]] (ISO) als Standard verabschiedet und 1989 nochmals überarbeitet. | | | [[Transaction Control Language|Transaction Control]] || TCL || [[Transaktion (Informatik)|Transaktionskontrolle]] |
| |- | | |} |
| | 1992 || Der Standard ''SQL2'' oder ''SQL-92'' wird von der ISO verabschiedet.
| | |
| |- | | ; SQL |
| | 1999 || ''SQL3'' oder ''SQL:1999'' wird verabschiedet. Im Rahmen dieser Überarbeitung werden weitere wichtige Features (wie etwa [[Datenbanktrigger|Trigger]] oder rekursive Abfragen) hinzugefügt.
| | Bezeichnung SQL bezieht sich auf das englische Wort ''query'' (Abfragesprache|Abfrage) |
| | * Mit Abfragen werden die in einer Datenbank gespeicherten Daten abgerufen, also dem Benutzer oder einer Anwendersoftware zur Verfügung gestellt |
| | * Das Ergebnis einer Abfrage sieht wiederum aus wie eine Tabelle und kann oft auch wie eine Tabelle angezeigt, bearbeitet und weiterverwendet werden |
| | |
| | == Syntax == |
| | {| class="wikitable options" |
| |- | | |- |
| | 2003 || ''SQL:2003''. Als neue Features werden aufgenommen [[SQL/XML]], Window functions, Sequences. | | | [[SQL/Abfragen|Abfragen]] || |
| |- | | |- |
| | 2006 || ''SQL/XML:2006''. Erweiterungen für [[SQL/XML]]<ref name="SQLXML2006">{{Literatur |Titel=SQL/XML:2006 – Evaluierung der Standardkonformität ausgewählter Datenbanksysteme |Autor=Michael Wagner |Datum=2010 |Verlag=Diplomica Verlag |ISBN=3-8366-9609-6 |Seiten=100}}</ref>. | | | [[SQL/Einfügen|Einfügen]] || |
| |- | | |- |
| | 2008 || ''SQL:2008'' bzw. ISO/IEC 9075:2008. Als neue Features werden aufgenommen INSTEAD OF-Trigger, TRUNCATE-Statement und FETCH Klausel. | | | [[SQL/Ändern|Ändern]] || |
| |- | | |- |
| | 2011 || ''SQL:2011'' bzw. ISO/IEC 9075:2011. Als neue Features werden aufgenommen „Zeitbezogene Daten“ (PERIOD FOR). Es gibt Erweiterungen für Window functions und die FETCH Klausel. | | | [[SQL/Löschen|Löschen]] || |
| |- | | |- |
| | 2016 || ''SQL:2016'' bzw. ISO/IEC 9075:2016. Als neue Features werden aufgenommen JSON und „row pattern matching“. | | | [[SQL/Datendefinition|Datendefinition]] || |
| |- | |
| | 2019 || ''SQL/MDA:2019''. Erweiterungen für einen Datentyp „mehrdimensionales Feld“. | |
| |} | | |} |
|
| |
|
| ==Syntax==
| | <noinclude> |
| * [[SQL:Abfragen|Abfragen]]
| |
| * [[SQL:Einfügen|Einfügen]]
| |
| * [[SQL:Ändern|Ändern]]
| |
| * [[SQL:Löschen|Löschen]]
| |
| * [[SQL:Datendefinition|Datendefinition]]
| |
| * [[SQL:Programmierung|Programmierung]]
| |
| * [[SQL:Standards|Standards]]
| |
|
| |
|
| ==Sicherheit== | | == Anhang == |
| ==Dokumentation== | | === Siehe auch === |
| ===RFC===
| | {{Special:PrefixIndex/{{BASEPAGENAME}}/}} |
| ===Man-Pages===
| |
| ===Info-Pages===
| |
| ==Siehe auch== | |
| *[[Data Manipulation Language]]
| |
| *[[Data Definition Language]]
| |
| *[[Data Control Language]]
| |
| *[[Transaction Control Language]]
| |
| *[[SQL-Injection]]
| |
| *[[SchemaSQL]]
| |
| *[[Continuous Query Language]]
| |
| *[[Liste der Datenbankmanagementsysteme]]
| |
| *[[Bereichsabfrage]]
| |
| | |
| ==Links==
| |
| ===Projekt-Homepage===
| |
| ===Weblinks===
| |
| {{Wikibooks|Einführung in SQL|SQL}} | |
| *[https://www.youtube.com/playlist?list=PLC4UZxBVGKte0o6iUssqQVmXhryrOqPXi Erklärvideos zu SQL], Big Data Analytics Group, Uni Saarland
| |
| *{{dmoz|World/Deutsch/Computer/Programmieren/Sprachen/SQL/}}
| |
| *[http://www.torsten-horn.de/techdocs/sql.htm SQL-Grundlagen] – Einführung mit Beispielen und Vergleich diverser Datenbanken
| |
| *[https://esb-dev.github.io/mat/sql-merkblatt.pdf Merkblatt SQL]
| |
| *[http://www.mcjones.org/System_R/SQL_Reunion_95/ The 1995 SQL Reunion: People, Projects, and Politics] – zur frühen Geschichte von SQL (englisch)
| |
| *[http://www.wiscorp.com/SQLStandards.html Frei verfügbare SQL-Standard-Dokumente], z. B. SQL:2003 und SQL:2008 (englisch)
| |
| *[http://www.1keydata.com/de/sql/ SQL-Tutorial]
| |
| *[http://sqltutor.fsv.cvut.cz/cgi-bin/sqltutor GNU SQLTutor]
| |
| *[https://sqlcoach.informatik.hs-kl.de/sqlcoach/ SQLcoach] – Freies Üben von SQL
| |
| *[https://edb2.gm.th-koeln.de/apps/sqltrainer/ Interaktiver SQL-Trainer (Anmeldung notwendig)]
| |
| *[https://blog.homepage-webhilfe.de/Artikel/mysql-tutorial-fuer-anfaenger/ Blogbeitrag zu SQL-Befehlen und deren Einsatz in PHP]
| |
| *[http://sql-tuning.com/ SQL Tuning]
| |
| *[https://docs.microsoft.com/en-us/sql/t-sql/language-reference?view=sql-server-ver15 Transact-SQL Reference (Database Engine)]
| |
| | |
| ===Einzelnachweise===
| |
| <references />
| |
| ==Testfragen==
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 1''
| |
| <div class="mw-collapsible-content">'''Antwort1'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 2''
| |
| <div class="mw-collapsible-content">'''Antwort2'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 3''
| |
| <div class="mw-collapsible-content">'''Antwort3'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 4''
| |
| <div class="mw-collapsible-content">'''Antwort4'''</div>
| |
| </div>
| |
| <div class="toccolours mw-collapsible mw-collapsed">
| |
| ''Testfrage 5''
| |
| <div class="mw-collapsible-content">'''Antwort5'''</div>
| |
| </div>
| |
|
| |
|
| | === Links === |
| | ==== Weblinks ==== |
|
| |
|
| [[Kategorie:SQL]] | | [[Kategorie:SQL]] |
| [[Kategorie:Abkürzung]] | | [[Kategorie:Abkürzung]] |
| | |
| | </noinclude> |