SQL: Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 13: | Zeile 13: | ||
== Abfragen == | == Abfragen == | ||
=== Projektion === | |||
SQL-Abfragen beginnen mit dem Schlüsselwort <code>[[Projektion (Relationenalgebra)|SELECT]]</code>:<syntaxhighlight lang="sql" line="1"> | SQL-Abfragen beginnen mit dem Schlüsselwort <code>[[Projektion (Relationenalgebra)|SELECT]]</code>:<syntaxhighlight lang="sql" line="1"> | ||
SELECT spalten | SELECT spalten | ||
Zeile 19: | Zeile 22: | ||
SELECT * | SELECT * | ||
FROM relation; | FROM relation; | ||
</syntaxhighlight>Mit dem Schlüsselwort <code>WHERE</code> können Bedingungen gestellt werden, nach denen die Ergebnisse gefiltert werden:<syntaxhighlight lang="sql" line="1"> | </syntaxhighlight> | ||
=== Selektion === | |||
Mit | |||
=== Selektion === | |||
Mit dem Schlüsselwort <code>WHERE</code> können Bedingungen gestellt werden, nach denen die Ergebnisse gefiltert werden:<syntaxhighlight lang="sql" line="1"> | |||
SELECT spalten | SELECT spalten | ||
FROM relation | FROM relation | ||
Zeile 25: | Zeile 34: | ||
</syntaxhighlight>Mit <code>AND</code> und <code>OR</code> können mehrere Bedingungen verknüpft werden. Negiert werden Bedingungen mit <code>NOT</code>. | </syntaxhighlight>Mit <code>AND</code> und <code>OR</code> können mehrere Bedingungen verknüpft werden. Negiert werden Bedingungen mit <code>NOT</code>. | ||
{{Hinweisbaustein|INHALT=Anders als in den meisten Programmiersprachen wird in SQL nicht <code>==</code> zum Abfragen der Gleichheit verwendet, sondern <code>=</code>!|ICON=[[File:Achtung.svg|32px]]}} | {{Hinweisbaustein|INHALT=Anders als in den meisten Programmiersprachen wird in SQL nicht <code>==</code> zum Abfragen der Gleichheit verwendet, sondern <code>=</code>!|ICON=[[File:Achtung.svg|32px]]}} | ||
=== Kreuzprodukt === | |||
Es können mehrere Relationen mit Kommata getrennt angegeben werden. In diesem Fall wird ein [[Kreuzprodukt]] gebildet und alle Tupel aus allen Relationen miteinander verknüpft. Darum sollte in diesem Fall unbedingt mit <code>WHERE</code> sichergestellt werden, dass die Tupel sinnvoll verknüpft werden und die Ergebnismenge nicht unhandlich wird. | Es können mehrere Relationen mit Kommata getrennt angegeben werden. In diesem Fall wird ein [[Kreuzprodukt]] gebildet und alle Tupel aus allen Relationen miteinander verknüpft. Darum sollte in diesem Fall unbedingt mit <code>WHERE</code> sichergestellt werden, dass die Tupel sinnvoll verknüpft werden und die Ergebnismenge nicht unhandlich wird. | ||
Zeile 32: | Zeile 43: | ||
WHERE relation1.spalteX = relation2.spalteY | WHERE relation1.spalteX = relation2.spalteY | ||
AND weitereBedingungen; | AND weitereBedingungen; | ||
</syntaxhighlight>{{Lückenhaft}} | </syntaxhighlight> | ||
=== Join === | |||
Relationen können auch mit dem Schlüsselwort <code>[[Join|JOIN]]</code> verknüpft werden, wobei eine Bedingung angegeben werden muss, unter der gejoint wird. Dieser Bedingung wird nicht <code>WHERE</code>, sondern <code>ON</code> vorangestellt.<syntaxhighlight lang="sql" line="1"> | |||
SELECT spalten | |||
FROM relation1 | |||
JOIN relation2 | |||
ON relation1.spalteX = relation2.spalteY | |||
JOIN relation3 | |||
ON relation1.spalteQ = relation3.spalteR | |||
WHERE bedingungen; | |||
</syntaxhighlight> | |||
=== Umbenennung === | |||
{{Lückenhaft}} | |||
== Datenbestand bearbeiten == | == Datenbestand bearbeiten == |
Version vom 6. Februar 2023, 15:43 Uhr
SQL (ausgesprochen "Eskuel" von normalen Menschen, "sikwel" von anstrengenden Menschen und "squirrel" von verstörenden Menschen) ist eine Datenbanksprache, mit der Datenbanken aufgebaut und bearbeitet werden können.
Eine SQL-Datenbank besteht aus zwei Komponenten:
- dem SQL-Server, auf dem die Daten in Relationen gespeichert sind, und
- dem SQL-Client, der an den Server Anfragen schickt, um die Daten abzufragen oder zu bearbeiten.
Die Anfragen, die der Client schicken kann, lassen sich in drei Kategorien unterteilen:
- Abfragen an den Datenbestand.
- Bearbeitungen am Datenbestand, d.h. Operationen zum Einfügen, Ändern und Löschen von Daten
- Bearbeitungen an der Datenbankstruktur, d.h. Operationen zum Erstellen, Ändern und Löschen der Tabellen
Abfragen
Projektion
SQL-Abfragen beginnen mit dem Schlüsselwort SELECT
:
SELECT spalten
FROM relation;
Diese Anfrage liefert alle ausgewählten Spalten aus der angegebenen Relation zurück. Um alle Spalten einer Relation zu erhalten, schreibt man
SELECT *
FROM relation;
Selektion
Mit
Selektion
Mit dem Schlüsselwort WHERE
können Bedingungen gestellt werden, nach denen die Ergebnisse gefiltert werden:
SELECT spalten
FROM relation
WHERE bedingung;
Mit AND
und OR
können mehrere Bedingungen verknüpft werden. Negiert werden Bedingungen mit NOT
.
Kreuzprodukt
Es können mehrere Relationen mit Kommata getrennt angegeben werden. In diesem Fall wird ein Kreuzprodukt gebildet und alle Tupel aus allen Relationen miteinander verknüpft. Darum sollte in diesem Fall unbedingt mit WHERE
sichergestellt werden, dass die Tupel sinnvoll verknüpft werden und die Ergebnismenge nicht unhandlich wird.
Bei gleichnamigen Spalten muss zusätzlich die Relation angegeben werden, deren Spalte betrachtet werden soll. Die Schreibweise ist relation.spalte
. In allen anderen Fällen kann die Relation ebenfalls angegeben werden, muss aber nicht.
SELECT spalten
FROM relation1, relation2
WHERE relation1.spalteX = relation2.spalteY
AND weitereBedingungen;
Join
Relationen können auch mit dem Schlüsselwort JOIN
verknüpft werden, wobei eine Bedingung angegeben werden muss, unter der gejoint wird. Dieser Bedingung wird nicht WHERE
, sondern ON
vorangestellt.
SELECT spalten
FROM relation1
JOIN relation2
ON relation1.spalteX = relation2.spalteY
JOIN relation3
ON relation1.spalteQ = relation3.spalteR
WHERE bedingungen;
Umbenennung
In diesem Artikel oder Abschnitt fehlen noch wichtige Informationen.
Hilf dem KGS-Wiki, indem du sie recherchierst und einfügst.