Struc­tu­red Query Lan­guage (SQL) ist eine Pro­gram­mier­spra­che, die für die Ver­wal­tung und Bear­bei­tung rela­tio­na­ler Daten­ban­ken ent­wi­ckelt wurde. Sie wird häu­fig von Daten­ana­lys­ten und Daten­wis­sen­schaft­lern ver­wen­det, um Erkennt­nisse aus gro­ßen Daten­be­stän­den zu gewinnen.

SQL ist ein leis­tungs­fä­hi­ges Tool, mit dem eine Viel­zahl von Daten­ver­ar­bei­tungs­auf­ga­ben durch­ge­führt wer­den kön­nen, dar­un­ter Fil­tern, Sor­tie­ren, Grup­pie­ren und Agg­re­gie­ren von Daten. In die­sem Arti­kel wer­den 13 wich­tige SQL-Anwei­sun­gen behan­delt, mit denen Sie 90 % Ihrer Data Sci­ence-Auf­ga­ben erle­di­gen kön­nen. Diese Anwei­sun­gen sind leicht zu ver­ste­hen und zu imple­men­tie­ren und bie­ten Ihnen eine solide Grund­lage für die Arbeit mit SQL.

Unab­hän­gig davon, ob Sie neu in SQL sind oder bereits Erfah­rung damit haben, wird Ihnen die­ser Arti­kel wert­volle Ein­bli­cke und prak­ti­sche Tipps für die Arbeit mit Daten geben.

1 Sel­ect

Die SEL­ECT-Anwei­sung wird ver­wen­det, um Daten aus einer oder meh­re­ren Tabel­len in einer Daten­bank abzu­ru­fen. Sie soll­ten die Ver­wen­dung von SELECT zum Fil­tern, Sor­tie­ren und Grup­pie­ren von Daten mit ver­schie­de­nen Funk­tio­nen wie WHERE, ORDER BY und GROUP BY beherr­schen. Hier ist ein Bei­spiel für eine SELECT-Anweisung:

SELECT column1, column2, column3
FROM table_name
WHERE condition;

In die­sem Bei­spiel sind column1, column2 und column3 die Namen der Spal­ten, aus denen Sie Daten abru­fen möch­ten, und table_name ist der Name der Tabelle, die die Daten ent­hält. Die WHERE-Klau­sel ist optio­nal, wird aber ver­wen­det, um eine Bedin­gung anzu­ge­ben, die erfüllt sein muss, damit die Abfrage Daten abru­fen kann.

Das fol­gende Bei­spiel wählt alle Daten­sätze aus der Tabelle „Kun­den“ aus, bei denen das Alter des Kun­den grö­ßer oder gleich 18 ist:

SELECT *
FROM customers
WHERE age >= 18;

2 JOIN

Die JOIN-Anwei­sung wird ver­wen­det, um Daten aus zwei oder mehr Tabel­len in einer Daten­bank zu kom­bi­nie­ren. Sie soll­ten JOIN beherr­schen, um Daten aus meh­re­ren Tabel­len abzu­ru­fen und die Art der Ver­knüp­fung (z.B. INNER, LEFT, RIGHT, FULL OUTER) ent­spre­chend angeben.

Hier sind ein paar Bei­spiele für JOIN-Anwei­sun­gen:

INNER JOIN

Ein INNER JOIN gibt nur die Zei­len zurück, bei denen es eine Über­ein­stim­mung zwi­schen den Spal­ten in bei­den Tabel­len gibt. Hier ist ein Beispiel:

SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id;

In die­sem Bei­spiel wer­den die Tabelle orders und die Tabelle customers über die Spalte customer_id ver­bun­den. Die resul­tie­rende Tabelle ent­hält nur die Spal­ten order_id und customer_name, wenn es eine Über­ein­stim­mung zwi­schen den Spal­ten customer_id in bei­den Tabel­len gibt.

LEFT JOIN

Ein LEFT JOIN gibt alle Zei­len aus der lin­ken Tabelle und die pas­sen­den Zei­len aus der rech­ten Tabelle zurück. Wenn es keine Über­ein­stim­mung in der rech­ten Tabelle gibt, ent­hält das Ergeb­nis NULL-Werte. Hier ist ein Beispiel:

SELECT customers.customer_name, orders.order_id
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;

In die­sem Bei­spiel ist die Tabelle customers die linke Tabelle und die Tabelle Bestellungen die rechte Tabelle. Die Spalte customer_id wird zur Ver­knüp­fung der Tabel­len ver­wen­det. Die resul­tie­rende Tabelle ent­hält alle Zei­len aus der Tabelle customers und die pas­sen­den Zei­len aus der Tabelle orders. Wenn es keine Über­ein­stim­mung in der Tabelle orders gibt, ent­hält die Spalte order_id den Wert NULL.

RIGHT JOIN

Ein RIGHT JOIN gibt alle Zei­len aus der rech­ten Tabelle und die pas­sen­den Zei­len aus der lin­ken Tabelle zurück. Wenn es keine Über­ein­stim­mung in der lin­ken Tabelle gibt, ent­hält das Ergeb­nis NULL-Werte. Hier ist ein Beispiel:

SELECT customers.customer_name, orders.order_id
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;

In die­sem Bei­spiel ist die Tabelle orders die linke Tabelle und die Tabelle customers die rechte Tabelle. Die Spalte customer_id wird zur Ver­knüp­fung der Tabel­len ver­wen­det. Die resul­tie­rende Tabelle ent­hält alle Zei­len aus der Tabelle orders und die pas­sen­den Zei­len aus der Tabelle customers. Wenn es keine Über­ein­stim­mung in der Tabelle customers gibt, ent­hält die Spalte customer_name den Wert NULL.

OUTER JOIN

Ein OUTER JOIN in SQL wird ver­wen­det, um alle Zei­len aus einer oder bei­den Tabel­len zurück­zu­ge­ben, ein­schließ­lich der nicht über­ein­stim­men­den Zei­len. Es gibt zwei Arten von OUTER JOINs: LEFT OUTER JOIN und RIGHT OUTER JOIN.

Hier ist ein Bei­spiel für einen LEFT OUTER JOIN:

SELECT customers.customer_name, orders.order_id
FROM customers
LEFT OUTER JOIN orders
ON customers.customer_id = orders.customer_id;

In die­sem Bei­spiel ist die Tabelle customers die linke Tabelle und die Tabelle orders die rechte Tabelle. Die Spalte customer_id wird zur Ver­knüp­fung der Tabel­len ver­wen­det. Die resul­tie­rende Tabelle ent­hält alle Zei­len aus der Tabelle „customers“ und die pas­sen­den Zei­len aus der Tabelle „orders“. Wenn es keine Über­ein­stim­mung in der Tabelle orders gibt, ent­hält die Spalte order_id den Wert NULL.

Hier ist ein Bei­spiel für einen RIGHT OUTER JOIN:

SELECT customers.customer_name, orders.order_id
FROM customers
RIGHT OUTER JOIN orders
ON customers.customer_id = orders.customer_id;

In die­sem Bei­spiel ist die Tabelle orders die linke Tabelle und die Tabelle customers die rechte Tabelle. Die Spalte customer_id wird zur Ver­knüp­fung der Tabel­len ver­wen­det. Die resul­tie­rende Tabelle ent­hält alle Zei­len aus der Tabelle orders und die pas­sen­den Zei­len aus der Tabelle customers. Wenn es keine Über­ein­stim­mung in der Tabelle customers gibt, ent­hält die Spalte customer_name NULL-Werte.

Es ist erwäh­nens­wert, dass einige Daten­ban­ken mög­li­cher­weise keine RIGHT OUTER JOINs unter­stüt­zen, aber Sie kön­nen das glei­che Ergeb­nis erzie­len, indem Sie einen LEFT OUTER JOIN ver­wen­den und die Rei­hen­folge der Tabel­len vertauschen.

3 WHERE

Die WHERE-Anwei­sung wird ver­wen­det, um Daten auf der Grund­lage einer bestimm­ten Bedin­gung zu fil­tern. Sie soll­ten die WHERE-Anwei­sung beherr­schen, um nur die Daten abzu­ru­fen, die bestimmte Kri­te­rien erfüllen.

Hier ist ein Bei­spiel für die Ver­wen­dung einer „where“-Anweisung in SQL, um Daten aus einer Tabelle zu filtern:

Ange­nom­men, wir haben eine Tabelle mit dem Namen employees mit den Spal­ten name, depart­ment und salary. Wir kön­nen eine „where“-Anweisung ver­wen­den, um nur die­je­ni­gen Mit­ar­bei­ter aus­zu­wäh­len, die in der Abtei­lung „Ver­trieb“ arbei­ten und ein Gehalt von mehr als 50.000 $ haben:

SELECT name, department, salary
FROM employees
WHERE department = 'Sales' AND salary > 50000;

Diese Abfrage würde eine Liste aller Mit­ar­bei­ter zurück­ge­ben, die in der Abtei­lung „Sales“ arbei­ten und ein Gehalt von mehr als 50.000 $ haben, wobei ihre Namen, Abtei­lun­gen und Gehäl­ter in den Ergeb­nis­sen ange­zeigt werden.

4 GROUP BY

Die GROUP BY-Anwei­sung wird ver­wen­det, um Daten auf der Grund­lage einer oder meh­re­rer Spal­ten zu grup­pie­ren, und Aggre­gat­funk­tio­nen (z. B. COUNT, SUM, AVG) kön­nen ver­wen­det wer­den, um Zusam­men­fas­sun­gen der grup­pier­ten Daten zu berech­nen. Sie soll­ten die Ver­wen­dung von GROUP BY beherr­schen, um Daten nach Kate­go­rien zu analysieren.

Ange­nom­men, wir haben eine Tabelle mit dem Namen „employees“ mit Spal­ten für „name“, „depart­ment“ und „salary“. Wir kön­nen eine GROUP BY-Anwei­sung ver­wen­den, um die Mit­ar­bei­ter nach Abtei­lung zu grup­pie­ren und das Durch­schnitts­ge­halt für jede Abtei­lung zu berechnen:

SELECT department, AVG(salary) as avg_salary
FROM employees
GROUP BY department;

Diese Abfrage würde eine Liste aller Abtei­lun­gen und das Durch­schnitts­ge­halt für jede Abtei­lung zurück­ge­ben, das berech­net wird, indem die Summe aller Gehäl­ter für die Mit­ar­bei­ter in die­ser Abtei­lung genom­men und durch die Anzahl der Mit­ar­bei­ter in die­ser Abtei­lung geteilt wird. Die GROUP BY-Klau­sel wird ver­wen­det, um die Mit­ar­bei­ter nach Abtei­lung zu grup­pie­ren, und die AVG-Funk­tion wird ver­wen­det, um das Durch­schnitts­ge­halt für jede Abtei­lung zu berechnen.

department | avg_salary
-----------------------
Sales      | 65000
Marketing  | 55000
Engineering| 80000

In die­sem Bei­spiel sehen wir, dass die Ver­triebs­ab­tei­lung ein durch­schnitt­li­ches Gehalt von 65.000 $, die Mar­ke­ting­ab­tei­lung ein durch­schnitt­li­ches Gehalt von 55.000 $ und die Tech­nik­ab­tei­lung ein durch­schnitt­li­ches Gehalt von 80.000 $ hat.

5 HAVING

Die HAVING-Anwei­sung wird ver­wen­det, um Daten zu fil­tern, nach­dem sie durch die GROUP BY-Anwei­sung grup­piert wor­den sind. Sie soll­ten die Ver­wen­dung von HAVING beherr­schen, um grup­pierte Daten auf der Grund­lage bestimm­ter Bedin­gun­gen zu filtern.

Hier ist ein Bei­spiel für die Ver­wen­dung der HAVING-Klau­sel in SQL:

Ange­nom­men, wir haben eine Tabelle mit dem Namen orders mit den Spal­ten „order_id“, „customer_id“, „product_id“ und „quan­tity“. Wir möch­ten die Kun­den fin­den, die eine Gesamt­menge von min­des­tens 50 Ein­hei­ten von Pro­duk­ten bestellt haben. Wir kön­nen die GROUP BY-Klau­sel ver­wen­den, um die Bestel­lun­gen nach Kun­den zu grup­pie­ren und die Gesamt­menge jedes Pro­dukts zu berech­nen, das von jedem Kun­den bestellt wurde. Anschlie­ßend kön­nen wir die HAVING-Klau­sel ver­wen­den, um die Ergeb­nisse so zu fil­tern, dass nur Kun­den berück­sich­tigt wer­den, die eine Gesamt­menge von min­des­tens 50 Stück bestellt haben:

SELECT customer_id, SUM(quantity) AS total_quantity
FROM orders
GROUP BY customer_id
HAVING SUM(quantity) >= 50;

Diese Abfrage würde eine Liste aller Kun­den und der Gesamt­menge der bestell­ten Pro­dukte zurück­ge­ben, aber nur Kun­den ein­schlie­ßen, die eine Gesamt­menge von min­des­tens 50 Ein­hei­ten bestellt haben. Die GROUP BY-Klau­sel wird ver­wen­det, um die Bestel­lun­gen nach Kun­den zu grup­pie­ren, die SUM-Funk­tion wird ver­wen­det, um die Gesamt­menge der von jedem Kun­den bestell­ten Pro­dukte zu berech­nen, und die HAVING-Klau­sel wird ver­wen­det, um die Ergeb­nisse so zu fil­tern, dass nur Kun­den ein­be­zo­gen wer­den, die eine Gesamt­menge von min­des­tens 50 Stück bestellt haben.

Die Aus­gabe der Abfrage würde etwa so aussehen:

customer_id | total_quantity
---------------------------
123        | 60
456        | 70

In die­sem Bei­spiel sieht man, dass Kunde 123 ins­ge­samt 60 Ein­hei­ten der Pro­dukte bestellt hat und Kunde 456 ins­ge­samt 70 Ein­hei­ten der Pro­dukte. Beide Kun­den erfül­len die in der HAVING-Klau­sel ange­ge­bene Bedin­gung, die eine Gesamt­menge von min­des­tens 50 Ein­hei­ten erfordert.

6 Win­dow Function

Fens­ter­funk­tio­nen in SQL wer­den ver­wen­det, um Berech­nun­gen an einer Reihe von Zei­len durch­zu­füh­ren, die mit der aktu­el­len Zeile zusam­men­hän­gen. Diese Funk­tio­nen wer­den auf ein Fens­ter ange­wen­det, das eine Teil­menge von Zei­len einer Tabelle auf der Grund­lage einer bestimm­ten Bedin­gung oder Par­ti­tion ist. Hier sind einige Bei­spiele für Fens­ter­funk­tio­nen in SQL:

  1. ROW_NUMBER(): Diese Funk­tion ord­net jeder Zeile inner­halb einer Par­ti­tion eine ein­deu­tige fort­lau­fende Num­mer zu. Die Syn­tax für die Funk­tion ROW_NUMBER() lautet:
SELECT spalte1, spalte2, ..., ROW_NUMBER() OVER (ORDER BY spalte1) AS row_num
FROM tabellen_name;

Diese Abfrage gibt eine Ergeb­nis­menge mit einer zusätz­li­chen Spalte „row_num“ zurück, die die fort­lau­fen­den Num­mern ent­hält, die jeder Zeile auf der Grund­lage der Rei­hen­folge von „column1“ zuge­wie­sen wurden.

2. SUMME(): Diese Funk­tion berech­net die Summe einer Spalte inner­halb einer Par­ti­tion. Die Syn­tax für die Funk­tion SUM() lautet:

SELECT column1, column2, ..., SUM(column3) OVER (PARTITION BY column1) AS column3_sum
FROM table_name;

Diese Abfrage wird eine Ergeb­nis­menge mit einer zusätz­li­chen Spalte „column3_sum“ zurück­ge­ben, die die Summe von „column3“ für jede Par­ti­tion auf der Grund­lage der Werte von „column1“ enthält.

  1. RANK(): Diese Funk­tion weist jeder Zeile inner­halb einer Par­ti­tion auf der Grund­lage der Werte einer ange­ge­be­nen Spalte einen Rang zu. Die Syn­tax für die Funk­tion RANK() lautet:
SELECT spalte1, spalte2, ..., RANK() OVER (PARTITION BY spalte1 ORDER BY spalte3 DESC) AS rank_num
FROM tabellen_name;

Diese Abfrage wird eine Ergeb­nis­menge mit einer zusätz­li­chen Spalte „rank_num“ zurück­ge­ben, die den Rang jeder Zeile inner­halb jeder Par­ti­tion auf der Grund­lage der abstei­gen­den Rei­hen­folge von „column3“ enthält.

  1. AVG(): Diese Funk­tion berech­net den Durch­schnitt einer Spalte inner­halb einer Par­ti­tion. Die Syn­tax für die Funk­tion AVG() lautet:
SELECT column1, column2, ..., AVG(column3) OVER (PARTITION BY column1) AS column3_avg
FROM table_name;

Diese Abfrage gibt eine Ergeb­nis­menge mit einer zusätz­li­chen Spalte „column3_avg“ zurück, die den Durch­schnitt von „column3“ für jede Par­ti­tion basie­rend auf den Wer­ten von „column1“ enthält.

Beach­ten Sie, dass die Syn­tax für Fens­ter­funk­tio­nen je nach dem ver­wen­de­ten Daten­bank­ma­nage­ment­sys­tem (DBMS) vari­ie­ren kann.

7 UNION

In SQL wird der UNION-Ope­ra­tor ver­wen­det, um die Ergeb­nisse von zwei oder mehr SEL­ECT-Anwei­sun­gen zu einer ein­zi­gen Ergeb­nis­menge zusam­men­zu­fas­sen. Die SELECT-Anwei­sun­gen müs­sen die glei­che Anzahl von Spal­ten haben, und die Spal­ten müs­sen kom­pa­ti­ble Daten­ty­pen haben. Dop­pelte Zei­len wer­den auto­ma­tisch aus der Ergeb­nis­menge entfernt.

Hier ist ein Bei­spiel für die Ver­wen­dung des UNION-Ope­ra­tors in SQL:

Ange­nom­men, wir haben zwei Tabel­len mit den Namen „Kun­den“ und „Mit­ar­bei­ter“, beide mit Spal­ten für „Name“ und „Ort“. Wir möch­ten eine Liste aller Per­so­nen (sowohl Kun­den als auch Mit­ar­bei­ter) erstel­len, die in New York City woh­nen. Wir kön­nen den UNION-Ope­ra­tor ver­wen­den, um die Ergeb­nisse von zwei SEL­ECT-Anwei­sun­gen zu kom­bi­nie­ren, eine für jede Tabelle:

SELECT name, city
FROM customers
WHERE city = 'New York'
UNION
SELECT name, city
FROM employees
WHERE city = 'New York';

Diese Abfrage würde eine Liste aller Per­so­nen zurück­ge­ben, die in New York City leben, ein­schließ­lich Kun­den und Mit­ar­bei­ter. Die erste SEL­ECT-Anwei­sung ruft alle Kun­den ab, die in New York City leben, und die zweite SEL­ECT-Anwei­sung ruft alle Mit­ar­bei­ter ab, die in New York City leben. Der UNION-Ope­ra­tor kom­bi­niert die Ergeb­nisse die­ser bei­den SEL­ECT-Anwei­sun­gen und ent­fernt alle dop­pel­ten Zeilen.

Die Aus­gabe der Abfrage würde etwa so aussehen:

name        | city
-------------------
John Smith  | New York
Jane Doe    | New York
Bob Johnson | New York
Samantha Lee| New York

In die­sem Bei­spiel sehen wir, dass es vier Per­so­nen gibt, die in New York City leben, zwei aus der Tabelle „cus­to­mers“ und zwei aus der Tabelle „employees“, und der UNION-Ope­ra­tor hat die Ergeb­nisse der bei­den SEL­ECT-Anwei­sun­gen zu einer ein­zi­gen Ergeb­nis­menge zusammengefasst.

8 CREATE

Die CREATE-Anwei­sung wird ver­wen­det, um eine neue Daten­bank­ta­belle, einen View oder andere Daten­bank­ob­jekte zu erstel­len. Sie soll­ten die Ver­wen­dung von CREATE beherr­schen, um neue Tabel­len, Views und andere Daten­bank­ob­jekte zu erstel­len. Hier ist ein Bei­spiel für die Ver­wen­dung der CREATE-Anwei­sung in SQL:

Ange­nom­men, wir möch­ten eine neue Tabelle mit dem Namen „cus­to­mers“ mit den Spal­ten „id“, „name“, „email“ und „phone“ erstel­len. Dazu kön­nen wir die CREATE-Anwei­sung verwenden:

CREATE TABLE customers (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  email VARCHAR(100),
  phone VARCHAR(20)
);

Diese Abfrage würde eine neue Tabelle namens „cus­to­mers“ mit vier Spal­ten erstel­len: „id“, „Name“, „E‑Mail“ und „Tele­fon“. Die Spalte „id“ ist als Ganz­zahl defi­niert und wird als Pri­mär­schlüs­sel der Tabelle fest­ge­legt. Die Spalte „name“ ist als String mit einer maxi­ma­len Länge von 50 Zei­chen defi­niert, und die Spal­ten „email“ und „phone“ sind eben­falls als Strings mit einer maxi­ma­len Länge von 100 bzw. 20 Zei­chen definiert.

Nach­dem die Abfrage aus­ge­führt wurde, kön­nen wir neue Zei­len in die Tabelle „cus­to­mers“ ein­fü­gen und Daten aus ihr abrufen:

INSERT INTO customers (id, name, email, phone)
VALUES (1, 'John Doe', 'johndoe@example.com', '555-555-1234');
SELECT * FROM customers;

Diese Abfrage würde eine neue Zeile in die Tabelle „Kun­den“ mit einer ID von 1, einem Namen von „John Doe“, einer E‑Mail von „johndoe@example.com“ und einer Tele­fon­num­mer von „555–555-1234“ ein­fü­gen. Die zweite Abfrage würde alle Zei­len aus der Tabelle „Kun­den“ abru­fen, ein­schließ­lich der neuen Zeile, die wir gerade ein­ge­fügt haben:

id | name     | email                | phone
--------------------------------------------
1  | John Doe | johndoe@example.com | 555-555-1234

In die­sem Bei­spiel haben wir die CREATE-Anwei­sung ver­wen­det, um eine neue Tabelle in einer Daten­bank zu erstel­len und eine neue Zeile in die Tabelle einzufügen.

9 INSERT

Die INSERT-Anwei­sung wird ver­wen­det, um Daten in eine Daten­bank­ta­belle ein­zu­fü­gen. Sie soll­ten INSERT beherr­schen, um neue Daten in eine Daten­bank­ta­belle ein­zu­fü­gen. Hier ist ein Bei­spiel für die Ver­wen­dung der INSERT-Anwei­sung in SQL:

Ange­nom­men, wir haben eine Tabelle namens „stu­dents“ mit den Spal­ten „id“, „name“, „major“ und „gpa“. Wir möch­ten eine neue Zeile in die Tabelle ein­fü­gen für einen Stu­den­ten mit der ID 1234, dem Namen „John Doe“, dem Haupt­fach „Infor­ma­tik“ und einem Noten­durch­schnitt von 3,5. Hier­für kön­nen wir die INSERT-Anwei­sung verwenden:

INSERT INTO students (id, name, major, gpa)
VALUES (1234, 'John Doe', 'Computer Science', 3.5);

Diese Abfrage würde eine neue Zeile in die Tabelle „stu­dents“ mit den ange­ge­be­nen Wer­ten für die Spal­ten „id“, „name“, „major“ und „gpa“ ein­fü­gen. Die INSERT-Anwei­sung gibt den Namen der Tabelle an, in die ein­ge­fügt wer­den soll, gefolgt von der Liste der Spal­ten, in die Werte ein­ge­fügt wer­den sol­len. Dann wird das Schlüs­sel­wort VALUES ver­wen­det, um die Werte anzu­ge­ben, die in jede Spalte ein­ge­fügt wer­den sol­len, und zwar in der Rei­hen­folge, in der die Spal­ten auf­ge­lis­tet wurden.

Nach Aus­füh­rung der Abfrage würde die Tabelle „stu­dents“ eine neue Zeile mit den fol­gen­den Wer­ten enthalten:

id   | name      | major            | gpa
-----------------------------------------
1234 | John Doe | Computer Science | 3.5

In die­sem Bei­spiel haben wir mit der INSERT-Anwei­sung eine neue Zeile in die Tabelle „stu­dents“ eingefügt.

10 UPDATE

Die UPDATE-Anwei­sung wird ver­wen­det, um vor­han­dene Daten in einer Daten­bank­ta­belle zu ändern. Sie soll­ten die Ver­wen­dung von UPDATE beherr­schen, um die Werte einer oder meh­re­rer Spal­ten in einer Tabelle zu aktua­li­sie­ren. Hier ist ein Bei­spiel für die Ver­wen­dung der UPDATE-Anwei­sung in SQL:

Ange­nom­men, wir haben eine Tabelle namens „stu­dents“ mit den Spal­ten „id“, „name“, „major“ und „gpa“. Wir möch­ten das Haupt­fach und den Noten­durch­schnitt eines Stu­den­ten mit der ID 1234 aktua­li­sie­ren. Dazu kön­nen wir die UPDATE-Anwei­sung verwenden:

UPDATE students
SET major = 'Mathematics', gpa = 3.7
WHERE id = 1234;

Diese Abfrage würde die Spal­ten „major“ und „gpa“ der Zeile in der Tabelle „stu­dents“ mit der ID 1234 aktua­li­sie­ren. Die UPDATE-Anwei­sung gibt den Namen der zu aktua­li­sie­ren­den Tabelle an, gefolgt vom SET-Schlüs­sel­wort und einer Liste der zu aktua­li­sie­ren­den Spal­ten-Werte-Paare. Anschlie­ßend wird mit der WHERE-Klau­sel ange­ge­ben, wel­che Zei­len aktua­li­siert wer­den sol­len. In die­sem Fall wol­len wir die Zeile mit der ID 1234 aktua­li­sie­ren, also geben wir „WHERE id = 1234“ an.

Nach­dem die Abfrage aus­ge­führt wurde, ent­hält die Tabelle „stu­dents“ die aktua­li­sier­ten Werte für die Spal­ten „major“ und „gpa“ in der Zeile mit der ID 1234:

id   | name      | major        | gpa
--------------------------------------
1234 | John Doe | Mathematics | 3.7

In die­sem Bei­spiel haben wir die Spal­ten „major“ und „gpa“ einer Zeile in der Tabelle „stu­dents“ mit der UPDATE-Anwei­sung aktualisiert.

11 DELETE

Die DELETE-Anwei­sung wird ver­wen­det, um eine oder meh­rere Zei­len aus einer Daten­bank­ta­belle zu löschen. Sie soll­ten die Ver­wen­dung von DELETE zum Ent­fer­nen von Daten aus einer Tabelle beherr­schen. Hier ist ein Bei­spiel für die Ver­wen­dung der DELETE-Anwei­sung in SQL:

Ange­nom­men, wir haben eine Tabelle namens „stu­dents“ mit den Spal­ten „id“, „name“, „major“ und „gpa“. Wir möch­ten einen Stu­den­ten mit der ID 1234 aus der Tabelle löschen. Dazu kön­nen wir die DELETE-Anwei­sung verwenden:

DELETE FROM students
WHERE id = 1234;

Diese Abfrage würde die Zeile mit der ID 1234 aus der Tabelle „stu­dents“ ent­fer­nen. Die DELETE-Anwei­sung gibt den Namen der Tabelle an, aus der wir löschen wol­len, gefolgt von der WHERE-Klau­sel, um anzu­ge­ben, wel­che Zei­len wir löschen wol­len. In die­sem Fall wol­len wir die Zeile mit der ID 1234 löschen, also geben wir „WHERE id = 1234“ an.

Nach­dem die Abfrage aus­ge­führt wurde, gibt es in der Tabelle „Stu­den­ten“ keine Zeile mit der ID 1234 mehr:

id   | name      | major        | gpa
--------------------------------------
5678 | Jane Doe | Computer Science | 3.5

In die­sem Bei­spiel haben wir die DELETE-Anwei­sung ver­wen­det, um eine Zeile aus der Tabelle „stu­dents“ zu entfernen.

12 DROP

Die DROP-Anwei­sung wird ver­wen­det, um eine Daten­bank­ta­belle oder ein ande­res Daten­bank­ob­jekt zu löschen. Sie soll­ten DROP beherr­schen, um unnö­tige Tabel­len oder andere Objekte aus einer Daten­bank zu ent­fer­nen. Die Syn­tax für die DROP-Anwei­sung vari­iert je nach Art des zu löschen­den Objekts, aber einige gän­gige Bei­spiele sind:

  1. DROP TABLE: Diese Anwei­sung wird ver­wen­det, um eine bestehende Tabelle mit allen Daten und Indi­zes zu löschen. Die Syn­tax für die DROP TABLE-Anwei­sung lautet:
DROP TABLE table_name;

2. DROP INDEX: Diese Anwei­sung wird ver­wen­det, um einen bestehen­den Index aus einer Tabelle zu löschen. Die Syn­tax für die DROP INDEX-Anwei­sung lautet:

DROP INDEX index_name ON table_name;

3. DROP VIEW: Diese Anwei­sung wird ver­wen­det, um eine bestehende Ansicht zu löschen. Die Syn­tax für die DROP VIEW-Anwei­sung lautet:

DROP VIEW view_name;

4. DROP PROCEDURE: Diese Anwei­sung wird ver­wen­det, um eine bestehende Stored Pro­ce­dure zu löschen. Die Syn­tax für die DROP PRO­CE­DURE-Anwei­sung lautet:

DROP PROCEDURE procedure_name;

Beach­ten Sie, dass die genaue Syn­tax für die DROP-Anwei­sung je nach dem ver­wen­de­ten Daten­bank­ma­nage­ment­sys­tem (DBMS) vari­ie­ren kann. Seien Sie außer­dem vor­sich­tig bei der Ver­wen­dung der DROP-Anwei­sung, da sie das ange­ge­bene Objekt und alle zuge­hö­ri­gen Daten und Indi­zes dau­er­haft löscht. Stel­len Sie sicher, dass Sie Ihre Daten sichern, bevor Sie die DROP-Anwei­sung verwenden.

13 ALTER

Die ALTER-Anwei­sung wird ver­wen­det, um die Struk­tur einer Daten­bank­ta­belle oder eines ande­ren Daten­bank­ob­jekts zu ändern. Sie soll­ten ALTER beherr­schen, um Spal­ten hin­zu­zu­fü­gen oder zu ent­fer­nen, Daten­ty­pen zu ändern oder andere Aspekte einer Tabelle zu modi­fi­zie­ren. Die Syn­tax für die ALTER-Anwei­sung vari­iert je nach Art des zu ändern­den Objekts, aber einige gän­gige Bei­spiele sind:

  1. ALTER TABLE: Diese Anwei­sung wird ver­wen­det, um die Struk­tur einer bestehen­den Tabelle zu ändern, z. B. um Spal­ten hin­zu­zu­fü­gen oder zu löschen, Daten­ty­pen zu ändern oder Beschrän­kun­gen fest­zu­le­gen. Die Syn­tax für die ALTER TABLE-Anwei­sung lautet:
ALTER TABLE table_name
ADD column_name data_type [constraint],
MODIFY column_name data_type [constraint],
DROP column_name,
ADD CONSTRAINT constraint_name constraint_definition,
DROP CONSTRAINT constraint_name;

2. ALTER INDEX: Diese Anwei­sung wird ver­wen­det, um die Struk­tur eines bestehen­den Index zu ändern, z.B. um Spal­ten hin­zu­zu­fü­gen oder zu ent­fer­nen oder den Index­typ zu ändern. Die Syn­tax für die ALTER INDEX-Anwei­sung lautet:

ALTER INDEX index_name
ADD column_name,
DROP column_name;

3. ALTER VIEW: Diese Anwei­sung wird ver­wen­det, um die Defi­ni­tion einer bestehen­den Ansicht zu ändern, z.B. um die SEL­ECT-Anwei­sung zu ändern, mit der sie erstellt wurde. Die Syn­tax für die ALTER VIEW-Anwei­sung lautet:

ALTER VIEW view_name
AS select_statement;

Beach­ten Sie, dass die genaue Syn­tax für die ALTER-Anwei­sung je nach ver­wen­de­tem Daten­bank­ma­nage­ment­sys­tem (DBMS) vari­ie­ren kann.

Quelle: medium.com