SQL: Unterschied zwischen den Versionen

Aus KGS-Wiki
Keine Bearbeitungszusammenfassung
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:

  1. dem SQL-Server, auf dem die Daten in Relationen gespeichert sind, und
  2. 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:

  1. Abfragen an den Datenbestand.
  2. Bearbeitungen am Datenbestand, d.h. Operationen zum Einfügen, Ändern und Löschen von Daten
  3. 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

🕳
Lückenhaft

In diesem Artikel oder Abschnitt fehlen noch wichtige Informationen.

Hilf dem KGS-Wiki, indem du sie recherchierst und einfügst.

Datenbestand bearbeiten

Datenbank aufbauen