SQL: Unterschied zwischen den Versionen
Sn (Diskussion | Beiträge) (Artikel begonnen) |
Sn (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 13: | Zeile 13: | ||
== Abfragen == | == Abfragen == | ||
SQL-Abfragen beginnen mit dem Schlüsselwort <code>[[Projektion (Relationenalgebra)|SELECT]]</code>:<syntaxhighlight lang="sql"> | SQL-Abfragen beginnen mit dem Schlüsselwort <code>[[Projektion (Relationenalgebra)|SELECT]]</code>:<syntaxhighlight lang="sql" line="1"> | ||
SELECT spalten | SELECT spalten | ||
FROM relation; | FROM relation; | ||
</syntaxhighlight>Diese Anfrage liefert alle ausgewählten [[Attribut (Informatik)|Spalten]] aus der angegebenen Relation zurück. Um alle Spalten einer Relation zu erhalten, schreibt man<syntaxhighlight lang="sql" line="1"> | |||
SELECT * | |||
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"> | |||
SELECT spalten | |||
FROM relation | |||
WHERE bedingung; | |||
</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]]}} | |||
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. | |||
Bei gleichnamigen Spalten muss zusätzlich die Relation angegeben werden, deren Spalte betrachtet werden soll. Die Schreibweise ist <code>relation.spalte</code>. In allen anderen Fällen kann die Relation ebenfalls angegeben werden, muss aber nicht. <syntaxhighlight lang="sql" line="1"> | |||
SELECT spalten | |||
FROM relation1, relation2 | |||
WHERE relation1.spalteX = relation2.spalteY | |||
AND weitereBedingungen; | |||
</syntaxhighlight>{{Lückenhaft}} | </syntaxhighlight>{{Lückenhaft}} | ||
Version vom 6. Februar 2023, 15:17 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
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;
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
.
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;
In diesem Artikel oder Abschnitt fehlen noch wichtige Informationen.
Hilf dem KGS-Wiki, indem du sie recherchierst und einfügst.