SQL: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „Man-Pages“ durch „Man-Page“
 
(21 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
'''topic''' - Kurzbeschreibung
==Beschreibung==
==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.
'''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.
Zeile 20: Zeile 20:


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}}
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}}
==Installation==
==Anwendungen==
===Fehlerbehebung===
==Syntax==
===Optionen===
===Parameter===
===Umgebungsvariablen===
===Exit-Status===
==Konfiguration==
===Dateien===
==Sicherheit==
==Dokumentation==
===RFC===
===Man-Pages===
===Info-Pages===
===Literatur===
*Donald D. Chamberlin, Raymond F. Boyce: ''SEQUEL: A Structured English Query Language''. In: ''SIGMOD Workshop.'' Vol. 1 1974, S. 249–264.
*Donald D. Chamberlin, Morton M. Astrahan, Kapali P. Eswaran, Patricia P. Griffiths, Raymond A. Lorie, James W. Mehl, Phyllis Reisner, Bradford W. Wade: ''SEQUEL 2: A Unified Approach to Data Definition, Manipulation, and Control''. In: ''IBM Journal of Research and Development.'' 20(6) 1976, S. 560–575.
*Günter Matthiessen, Michael Unterstein: ''Relationale Datenbanken und SQL in Theorie und Praxis'' Springer Vieweg, [[index.php?title=Special:BookSources/9783642289859|ISBN 978-3-642-28985-9]].
*Edwin Schicker: ''Datenbanken und SQL – Eine praxisorientierte Einführung.'' Teubner, [[index.php?title=Special:BookSources/351902991X|ISBN 3-519-02991-X]].
*Oliver Bartosch, Markus Throll: ''Einstieg in SQL.'' Galileo Press, [[index.php?title=Special:BookSources/3898424979|ISBN 3-89842-497-9]].
*Daniel Warner, Günter Leitenbauer: ''SQL.'' Franzis, [[index.php?title=Special:BookSources/3772375278|ISBN 3-7723-7527-8]].
*H. Faeskorn-Woyke, B. Bertelsmeier, P. Riemer, E. Bauer: ''Datenbanksysteme, Theorie und Praxis mit SQL2003, Oracle und MySQL.'' Pearson-Studium, [[index.php?title=Special:BookSources/9783827372666|ISBN 978-3-8273-7266-6]].
*Jörg Fritze, Jürgen Marsch: ''Erfolgreiche Datenbankanwendung mit SQL3. Praxisorientierte Anleitung – effizienter Einsatz – inklusive SQL-Tuning.'' Vieweg Verlag, [[index.php?title=Special:BookSources/3528552107|ISBN 3-528-55210-7]].
*Can Türker: ''SQL 1999 & SQL 2003.'' Dpunkt Verlag, [[index.php?title=Special:BookSources/3898642194|ISBN 3-89864-219-4]].
*Gregor Kuhlmann, Friedrich Müllmerstadt: ''SQL.'' Rowohlt, [[index.php?title=Special:BookSources/3499612453|ISBN 3-499-61245-3]].
*Michael J. Hernandez, John L. Viescas: ''Go To SQL.'' Addison-Wesley, [[index.php?title=Special:BookSources/382731772X|ISBN 3-8273-1772-X]].
*[[Alfons Kemper|A. Kemper]], A. Eickler: ''Datenbanksysteme – Eine Einführung.'' Oldenbourg, [[index.php?title=Special:BookSources/3486250531|ISBN 3-486-25053-1]].
*Marcus Throll, Oliver Bartosch: ''Einstieg in SQL 2008.'' 2. Auflage. Galileo Computing, [[index.php?title=Special:BookSources/9783836210393|ISBN 978-3-8362-1039-3]] inklusive Übungssoftware SQL-Teacher
*Marco Skulschus: ''SQL und relationale Datenbanken'' Comelio Medien, [[index.php?title=Special:BookSources/9783939701118|ISBN 978-3-939701-11-8]].
*Michael Wagner: ''SQL/XML:2006 – Evaluierung der Standardkonformität ausgewählter Datenbanksysteme'' 1. Auflage. Diplomica Verlag, [[index.php?title=Special:BookSources/3836696096|ISBN 3-8366-9609-6]].
*Christian F. G. Schendera: ''SQL mit SAS. Band 1: PROC SQL für Einsteiger''. Oldenbourg Wissenschaftsverlag, München 2011, [[index.php?title=Special:BookSources/9783486598407|ISBN 978-3-486-59840-7]].
*Christian F. G. Schendera: ''SQL mit SAS. Band 2: Fortgeschrittenes PROC SQL''. Oldenbourg Wissenschaftsverlag, München 2012, [[index.php?title=Special:BookSources/9783486598360|ISBN 978-3-486-59836-0]].
*[[Christopher J. Date|C. J. Date]] with [[Hugh Darwen]]: ''A Guide to the SQL standard: a users guide to the standard database language SQL, 4th ed.'', Addison-Wesley, USA 1997, [[index.php?title=Special:BookSources/9780201964264|ISBN 978-0-201-96426-4]]
*Jim Melton: ''Advanced SQL:1999: Understanding Object-Relational and Other Advanced Features, 1st ed.'', Morgan Kaufmann, USA, 2002, [[index.php?title=Special:BookSources/9781558606777|ISBN 978-1558606777]].
==Siehe auch==
==Links==
===Projekt-Homepage===
===Weblinks===
===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>
[[Kategorie:Entwurf]]
=Wikipedia=
== Abfragen ==
[[SQL:Abfragen]]
==Einfügen von Datensätzen (<code>INSERT INTO ... VALUES ...</code>)==
<syntaxhighlight lang="sql">
INSERT INTO Vorlesung (VorlNr, Titel, PersNr) VALUES (1000, 'Softwareentwicklung 1', 12);
INSERT INTO Vorlesung (VorlNr, Titel, PersNr) VALUES (1600, 'Algorithmen', 12);
INSERT INTO Vorlesung (VorlNr, Titel, PersNr) VALUES (1200, 'Netzwerke 1', 20);
INSERT INTO Vorlesung (VorlNr, Titel, PersNr) VALUES (1001, 'Datenbanken', 15);
</syntaxhighlight>
fügt vier Datensätze in die Tabelle <code>Vorlesung</code> ein. Die Werte müssen mit den Datentypen der Felder <code>VorlNr</code>, <code>Titel</code> und <code>PersNr</code> zusammenpassen.
<syntaxhighlight lang="sql">
SELECT *
  FROM Vorlesung;
</syntaxhighlight>
liefert dann zum Beispiel das Ergebnis (die Reihenfolge kann auch anders sein):
{| class="wikitable"
|-
!<code>VorlNr</code>!!<code>Titel</code>
!<code>PersNr</code>
|-
|<code>1001</code>
|<code>Datenbanken</code>
|<code>15</code>
|-
|<code>1000</code>
|<code>Softwareentwicklung 1</code>
|<code>12</code>
|-
|<code>1200</code>
|<code>Netzwerke 1</code>
|<code>20</code>
|-
|<code>5001</code>||<code>ET</code>
|<code>12</code>
|-
|<code>5022</code>||<code>IT</code>
|<code>12</code>
|-
|<code>1600</code>
|<code>Algorithmen</code>
|<code>12</code>
|-
|<code>5045</code>||<code>DB</code>
|<code>15</code>
|}
==Ändern von Datensätzen (<code>UPDATE</code>)==
<syntaxhighlight lang="sql">
UPDATE Vorlesung
  SET VorlNr = VorlNr + 1000,
      PersNr = 20
WHERE PersNr = 15;
</syntaxhighlight>
ändert alle Datensätze, für die <code>PersNr</code> den Wert <code>15</code> hat. Der Wert von <code>VorlNr</code> wird um <code>1000</code> erhöht und der Wert von <code>PersNr</code> auf <code>20</code> gesetzt.
Ergebnis eines nachfolgenden <code>SELECT *</code> ist, eventuell mit anderer Reihenfolge:
{| class="wikitable"
|-
!<code>VorlNr</code>!!<code>Titel</code>
!<code>PersNr</code>
|-
|<code>1000</code>
|<code>Softwareentwicklung 1</code>
|<code>12</code>
|-
|<code>1200</code>
|<code>Netzwerke 1</code>
|<code>20</code>
|-
|<code>1600</code>
|<code>Algorithmen</code>
|<code>12</code>
|-
|<code>2001</code>
|<code>Datenbanken</code>
|<code>20</code>
|-
|<code>5001</code>||<code>ET</code>
|<code>12</code>
|-
|<code>5022</code>||<code>IT</code>
|<code>12</code>
|-
|<code>6045</code>||<code>DB</code>
|<code>20</code>
|}
==Löschen von Datensätzen (<code>DELETE</code>)==
<syntaxhighlight lang="sql">
DELETE FROM Vorlesung
WHERE PersNr = 12;
</syntaxhighlight>
löscht alle Datensätze, für die <code>PersNr</code> den Wert <code>12</code> hat.
Ergebnis eines nachfolgenden <code>SELECT *</code>, eventuell in anderer Reihenfolge:
{| class="wikitable"
|-
!<code>VorlNr</code>!!<code>Titel</code>
!<code>PersNr</code>
|-
|<code>1200</code>
|<code>Netzwerke 1</code>
|<code>20</code>
|-
|<code>2001</code>
|<code>Datenbanken</code>
|<code>20</code>
|-
|<code>6045</code>||<code>DB</code>
|<code>20</code>
|}
===Zusammenfassung von <code>INSERT</code>, <code>UPDATE</code> und <code>DELETE</code>===
Verallgemeinert sehen die Änderungsanweisungen wie folgt aus.
<code>INSERT</code>-Anweisung:
<syntaxhighlight lang="sql">
INSERT INTO Quelle [(Auswahlliste)]
VALUES (Werteliste) | SELECT <Auswahlkriterien>;
</syntaxhighlight>
<code>UPDATE</code>-Anweisung:
<syntaxhighlight lang="sql">
UPDATE Quelle SET Zuweisungsliste
[FROM From-Klausel]
[WHERE Auswahlbedingung];
</syntaxhighlight>
<code>DELETE</code>-Anweisung:
<syntaxhighlight lang="sql">
DELETE FROM Quelle
[WHERE Auswahlbedingung];
</syntaxhighlight>
=Datendefinition=
siehe [[SQL:Datendefinition]]
==Programmieren mit SQL==
siehe [[SQL:Programmierung]]


== Chronologie ==
== Chronologie ==
Zeile 261: Zeile 51:
|}
|}


==Sprachstandard==
==Syntax==
siehe [[SQL:Standards]]
* [[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]]


==Weblinks==
==Sicherheit==
==Dokumentation==
===RFC===
===Man-Page===
===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}}
{{Wikibooks|Einführung in SQL|SQL}}
*[https://www.youtube.com/playlist?list=PLC4UZxBVGKte0o6iUssqQVmXhryrOqPXi Erklärvideos zu SQL], Big Data Analytics Group, Uni Saarland
*[https://www.youtube.com/playlist?list=PLC4UZxBVGKte0o6iUssqQVmXhryrOqPXi Erklärvideos zu SQL], Big Data Analytics Group, Uni Saarland
Zeile 271: Zeile 85:
*[https://esb-dev.github.io/mat/sql-merkblatt.pdf Merkblatt SQL]
*[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.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.&nbsp;B. SQL:2003 und SQL:2008 (englisch)
*[http://www.wiscorp.com/SQLStandards.html Frei verfügbare SQL-Standard-Dokumente], z.&nbsp;B.&nbsp;SQL:2003 und SQL:2008 (englisch)
*[http://www.1keydata.com/de/sql/ SQL-Tutorial]
*[http://www.1keydata.com/de/sql/ SQL-Tutorial]
*[http://sqltutor.fsv.cvut.cz/cgi-bin/sqltutor GNU SQLTutor]
*[http://sqltutor.fsv.cvut.cz/cgi-bin/sqltutor GNU SQLTutor]
Zeile 280: Zeile 94:
*[https://docs.microsoft.com/en-us/sql/t-sql/language-reference?view=sql-server-ver15 Transact-SQL Reference (Database Engine)]
*[https://docs.microsoft.com/en-us/sql/t-sql/language-reference?view=sql-server-ver15 Transact-SQL Reference (Database Engine)]


==Siehe auch==
===Einzelnachweise===
 
*[[Data Manipulation Language]]
*[[Data Definition Language]]
*[[Data Control Language]]
*[[Transaction Control Language]]
*[[SQL-Injection]]
*[[SchemaSQL]]
*[[Continuous Query Language]]
*[[Liste der Datenbankmanagementsysteme]]
*[[Bereichsabfrage]]
 
==Einzelnachweise==
<references />
<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>


{{Normdaten|TYP=s|GND=4134010-3|LCCN=sh/86/6628}}


[[index.php?title=Kategorie:SQL| ]]
[[Kategorie:SQL]]
[[Index.php?title=Kategorie:SQL]]
[[Kategorie:Abkürzung]]
[[Kategorie:Abkürzung]]

Aktuelle Version vom 6. November 2024, 12:51 Uhr

topic - Kurzbeschreibung

Beschreibung

SQL (offizielle Aussprache [Vorlage:IPA], mitunter auch [Vorlage:IPA]; auf Deutsch auch häufig die deutsche Aussprache der Buchstaben) ist eine Datenbanksprache zur Definition von Datenstrukturen in relationalen Datenbanken sowie zum Bearbeiten (Einfügen, Verändern, Löschen) und Abfragen von darauf basierenden Datenbeständen.

Die Sprache basiert auf der relationalen Algebra, ihre Syntax ist relativ einfach aufgebaut und semantisch an die englische Umgangssprache angelehnt. Ein gemeinsames Gremium von ISO und IEC standardisiert die Sprache unter Mitwirkung nationaler Normungsgremien wie ANSI oder DIN. Durch den Einsatz von SQL strebt man die Unabhängigkeit der Anwendungen vom eingesetzten Datenbankmanagementsystem an.

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 ([[[:Vorlage:IPA]]], 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.[1]

Sprachelemente

Bestandteile von SQL

SQL-Befehle lassen sich in fünf Kategorien unterteilen (Zuordnung nach der Theorie der Datenbanksprachen in Klammern):

Die Bezeichnung SQL bezieht sich auf das englische Wort Vorlage:". 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. Vorlage:Siehe auch

Chronologie

Jahr Beschreibung
1975 SEQUEL = Structured English Query Language, der Vorläufer von SQL, wird für das Projekt System R von IBM entwickelt.
1979 SQL gelangt mit Oracle V2 erstmals durch Relational Software Inc. auf den Markt.
1986 SQL1 wird von ANSI als Standard verabschiedet.
1987 SQL1 wird von der Internationalen Organisation für Normung (ISO) als Standard verabschiedet und 1989 nochmals überarbeitet.
1992 Der Standard SQL2 oder SQL-92 wird von der ISO verabschiedet.
1999 SQL3 oder SQL:1999 wird verabschiedet. Im Rahmen dieser Überarbeitung werden weitere wichtige Features (wie etwa Trigger oder rekursive Abfragen) hinzugefügt.
2003 SQL:2003. Als neue Features werden aufgenommen SQL/XML, Window functions, Sequences.
2006 SQL/XML:2006. Erweiterungen für SQL/XML[2].
2008 SQL:2008 bzw. ISO/IEC 9075:2008. Als neue Features werden aufgenommen INSTEAD OF-Trigger, TRUNCATE-Statement und FETCH Klausel.
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.
2016 SQL:2016 bzw. ISO/IEC 9075:2016. Als neue Features werden aufgenommen JSON und „row pattern matching“.
2019 SQL/MDA:2019. Erweiterungen für einen Datentyp „mehrdimensionales Feld“.

Syntax

Sicherheit

Dokumentation

RFC

Man-Page

Info-Pages

Siehe auch

Links

Projekt-Homepage

Weblinks

Vorlage:Wikibooks

Einzelnachweise

Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5