SQL Tutorial – Jetzt SQL lernen!

mySQL ist ein fundamentaler Baustein unzähliger Websites. Wer ein Web Entwickler werden will, sollte daher wenigstens die Grundlagen von mySQL kennen. Dieses SQL Tutorial soll dir helfen, einen ersten Überblick über SQL zu erhalten und erfolgreich die ersten abfragen zu machen. Wir versuchen dabei, die Inhalte möglichst kurz und prägnant zu erläutern und mit einfachen Beispielen besser verständlich zu machen.

SQL Tutorial Teil I: Basics

  1. Datenbanken erstellen
  2. Tabellen erstellen
  3. Tabelle anzeigen
  4. Tabelle löschen
  5. Tabellenstruktur anzeigen
  6. Inhalt einer Tabelle anzeigen
  7. Where und have clause
  8. Daten in SQL-Tabelle eingeben
  9. SQL update
  10. SQL Daten löschen
  11. Numerische SQL-Funktionen
  12. Subqueries

SQL Tutorial Teil II: String Functions

  1. Code mit SQL-Dateien ausführen
  2. Daten verketten in SQL
  3. SQL Substring
  4. Replace

SQL Datenbanken erstellen

Um in MySQL eine Datenbank zu erstellen gibt man einen Befehl mit folgender Syntax ein:

CREATE DATABASE datenbank_name;

SQL Tutorial: SQL Tabellen erstellen

Will man in MySQL eine Tabelle erstellen gibt man einfach ein:

CREATE TABLE tabellen_name;

Tabellen anzeigen

Wenn du die Tabellen einer Datenbank sehen willst, gibts du einfach folgenden Befehl ein:

SHOW TABLES;

Tabellen löschen

Ein SQL Tabelle löschen wird mit dem Befehl DROP TABLE gemacht. Mehrere Tabellen werden mit Komma getrennt. 

DROP TABLE tabellen_name;

Um zu verhindern, dass man eine Tabelle löschen möchte, die gar nicht existiert, kann man in die SQL Kommando noch eine Abfrage einbauen:

DROP TABLE IF EXISTS tabellen_name;

SQL Tabellenstruktur anzeigen

Die Tabellenstruktur lässt man sich folgendermaßen anzeigen:

DESC tabellen_name;
sql-tabellenstruktur-anzeigen

SQL-Tabelleninhalte anzeigen

Den Inhalt einer Tabelle lässt man sich anzeigen mit SELECT und FROM:

SELECT * FROM tabellen_name;

Das Stern signalisiert, dass man sich alle Daten der Tabelle anzeigen lassen möchte. Will man sich spezifische Daten anzeigen lassen, kann man dazu where and have nutzen (siehe nächster Punkt).


SQL Tutorial: where und have clause

where clause

Wenn die gesuchten Informationen bereits in der Datenbank angelegt sind, verwendet man where. Wenn man eine Abfrage macht, bei der man neue Daten generiert, verwendet man having.

SELECT * FROM table WHERE col=xy;

Kommt in der Abfrage mit WHERE ein Text-String vor, dann setzt man ihn in Klammern. SQL beachtet in einer Abfrage mit WHERE nicht auf Groß- und Kleinschreibung.

have clause

wird nach dem SELECT verwendet, um noch besser filtern zu können

SELECT * transaction_ID FROM purchases having revenue > 10

Daten in SQL-Tabelle eingeben

Die Dateneingabe per Befehl funktioniert in SQL so, dass man den Befehl eingibt, gefolgt vom Tabellennamen und den Spalten und dann kommen die Werte:

Syntax:
INSERT INTO tabellen(spalten) VALUES (daten);

Beispiel:
INSERT INTO customers(name, age) VALUES (John, 32);

Man kann auch mehrere Werte gleichzeitig eingeben. Hierfür gibt man hinter jeder Klammer mit den Werten ein Komma ein und schreibt dann die nächsten Werte in eine neue Klammer. Damit es übersichtlicher wird, kann man die Klammern jeweils in eine neue Zeile schreiben: 

Syntax:
INSERT INTO tabellen(spalten) VALUES (daten);

Beispiel:
INSERT INTO customers(name, age) VALUES 
(John, 32),
(Mike, 27),
(Martin, 49);

SQL Tutorial: SQL update

Möchte man Daten in einer SQL-Tabelle verändern, verwendet man das UPDATE Kommando in Verbindung mit SET:

UPDATE customers SET age="27" WHERE ID=5

Rule of Thumb

Man sollte die Daten, die man updaten möchte, immer erst auswählen. Also erst SELECT dann UPDATE – SET. So stellt man sicher, dass man auch die richtigen Daten auswählt und nicht versehentlich alle Daten. Hier ein Beispiel:

SELECT * FROM customers WHERE status='paid';
UPDATE customers SET action='delivery' WHERE status='paid';

Daten in SQL löschen

Beim Löschen sollte man auch immer erst eine SELECT machen, um sicher zu sein, dass man auch die richtigen Daten löscht. Es gibt keinen Befehlt, mit dem sich Löschen wieder rückgängig machen lässt, also sollte man da gut aufpassen. 

Syntax:
DELETE FROM tabellen WHERE;

Beispiel:
SELECT FROM customers WHERE name='John';
DELETE FROM customers WHERE name='John';

Wichtig: Die IDs der übrigen Werte, werden sich nach dem Löschen nicht ändern. Entfernt man beispielsweise den dritten Wert einer Tabelle, dann zählen sich die IDs: eins, zwei, vier,.. Alle Werte auf einmal löscht man ohne ein Sternchen: 

DELETE FROM customers;

Numerische SQL-Funktionen

average

SELECT avg(amount) FROM purchases.revenue

length 

Length ist praktisch, wenn man etwas validieren muss. Die Spalte, in der die Länge untersucht werden soll, steht in Klammern. 

SELECT length(first_name) AS names FROM purchases.product_name having total=5

max

SELECT *, max(date) AS maxdate FROM purchases

In der Abfrage erzeugen wir eine neue Spalte ‘maxdate’ in der das Datum des letzten Kaufes angezeigt wird.

sum

SELECT sum(amount) FROM purchases

SQL Tutorial: Subqueries

Subqueries sind Abfragen, die innerhalb einer anderen Abfrage laufen. Sie werden daher auch verschachtelte Abfragen genannt. Subqueries erlauben es, dass man benötigte Informationen dynamisch erhalten kann. Zudem kann man mit Subqueries auch Informationen abfragen, die bei der Verarbeitung, etwa mit group by, sonst nicht verfügbar wären.

SELECT * FROM purchases where product_name=(select product_name from purchases where ID=1);

SQL Tutorial Teil 2: String Functions

Code mit SQL-Dateien ausführen

Angenommen, man hat einen Typo in einem längeren Befehl. Dann kann es ganz schön umständlich sein, wieder an die Stelle zurückzugehen, wo einem der Typo passiert ist. Deshalb ist es sehr praktisch, mit SQL-Dateien zu arbeiten. Ein weiterer Vorteil der Nutzung von SQL-Dateien, ist der, dass man sie leicht teilen kann. Zudem hat bekommt man beim Erstellen der Datei in einem Editor seinen SQL-Code mit einem Highlighter auch übersichtlich dargestellt. Man erstellt einfach seinen Code in einer Datei, die man mit der Endung .sql abspeichert. Dann kann man die Datei mit einem Kommando ausführen lassen:

source datei_name.sql;

Wichtig: Immer den korrekten Pfad angeben!


Daten verketten in SQL

Eine der wichtigsten String Funktionen in SQL ist verketten. Hierfür verwendet man das Wort ‘concat’ und dahinter kommt dann in Klammern, was verkettet werden soll. Mann kann beispielsweise auch Spalten miteinander verketten. Will man beim Verketten von Werten noch Text oder etwa ein Leerzeichen dazwischensetzen, so schreib man das einfach in Anführungszeichen.

Wichtig ist, dass man zuvor eine SELECT ausführt, sonst funktioniert es nicht.

SELECT CONCAT(x, y, z);
Beispiel:
SELECT CONCAT(f_name, ' ', l_name) FROM customers;

SQL führt den Befehl dann aus und zeigt anschließend die verketteten Werte in einer Tabelle an. Dabei wird der CONCAT-Befehl als Spaltenüberschrift gesetzt. Man kann stattdessen eine eigene Spaltenüberschrift dafür angeben, indem man mit ‘AS’ arbeitet:

SELECT CONCAT(f_name, ' ', l_name) AS 'full name' FROM customers;

Man kann auch problemlos mehr als nur ein CONCAT in einem SELECT machen. Will man mehrere Werte mit einem bestimmten Trennzeichen verbinden, kann man den Befehl CONCAT_WS nutzen.

SELECT CONCAT_WS(' - ', product, f_name, l_name) FROM customers;

mySQL Substring

Mit Substring kann man sich Zeichen in einem String anzeigen lassen bzw. filtern. Im Gegensatz zu Programmiersprachen wie PHP oder JavaScript wird dabei nicht von 0 an gezählt sondern es wird mit der 1 begonnen. 

Syntax:
SELECT SUBSTRING('Hello World', 1, 5);

sql substring

Wenn man auf die 1 im obigen kann man verzichtet, beginnt SQL an dieser Stelle zu zählen und gibt dann den Rest des Strings aus:

SELECT SUBSTRING('Hello World', 6);

sql substring beispiel

Man kann den Befehl auch mit negativen Werten füttern. Dann wird vom Ende her zurück gezählt:

SELECT SUBSTRING('Hello World', -3);

substring mit negativem wert

Es gibt auch einen Shortcut dafür:

SUBSTR();

Man kann natürlich auch CONCAT und SUBSTRING kombinieren, beispielsweise so:

mysql> SELECT CONCAT (SUBSTRING(product_name, 1, 5),'...') AS 'Product' FROM purchases;

substring & concat sql


Replace

Eine weitere wichtige String Funktion in SQL ist REPLACE. Damit lassen sich Strings ersetzen. Bei REPLACE wendet SQL die Groß- und Kleinschreibung an! Zudem ersetzt der Befehl nicht nur den ersten passenden Wert, den er findet, sondern alle passenden Werte.

SELECT REPLACE('Hello World', 'World', 'John');

sql replace


dgtworx.com