Dies ist eine alte Version des Dokuments!
SQL-Einführung
Lernziele
Die Abkürzung SQL steht für Structured Query Language. Es handelt sich um eine Datenbanksprache zur Erstellung von Datenbankstrukturen in relationalen Datenbanken sowie zum Bearbeiten und Abfragen der darin gespeicherten Datenbestände.
Einleitung
Die Datenbanksprache SQL (Structured Query Language) basiert auf der relationalen Algebra. Ihre Syntax ist vergleichsweise einfach und stark an die englische Sprache angelehnt.
SQL dient zur:
- Abfrage von Daten
- Auswertung von Daten
- Verwaltung von Daten
- Programmierung innerhalb von Datenbanken
Im Begriff SQL steckt das englische Wort query (= Abfrage). Mit dem Befehl
SELECT
können Daten abgefragt werden. Weitere wichtige Befehle sind:
INSERT
– Daten einfügen
UPDATE
– Daten ändern
DELETE
– Daten löschen
Diese vier Befehle bilden zusammen die sogenannten CRUD-Operationen: C = Create, R = Read (=Select), U = Update, D = Delete. Sie sind die Grundlage jeder Datenbankarbeit.
SQL und seine Untersprachen
SQL (Structured Query Language) ist eine Standardsprache zur Verwaltung und Bearbeitung relationaler Datenbanken. Sie stellt Befehle bereit, um Daten zu definieren, abzufragen, zu manipulieren und zu kontrollieren.
Im Detail besteht SQL aus fünf Untersprachen, die jeweils für bestimmte Gruppen von Operationen zuständig sind. Bitte beachten: Nur die fett markierten Untersprachen sind für Modul 290 relevant.
- DDL = Data Definition Language (Datendefinitionssprache): Befehle zur Erstellung, Veränderung und Löschung von Datenbankstrukturen, z. B. um Datenbanken und Tabellen anzulegen, Tabellenstrukturen zu ändern oder Datenbanken und Tabellen zu löschen.
- DQL = Data Query Language (Datenabfragesprache): Befehle zur Abfrage von Daten aus der Datenbank, z. B. um Tabelleninhalte mit und ohne Filter in bestimmter Reihenfolge auszuwählen.
- TCL = Transaction Control Language (Transaktionssprache): Befehle zur Steuerung von Transaktionen, z. B. Commit, Rollback oder Savepoints, um die Datenintegrität sicherzustellen.
- DML = Data Manipulation Language (Datenmanipulationssprache): Befehle zum Einfügen, Ändern und Löschen von Daten in Tabellen. Mit DML werden die Inhalte einer Tabelle verwaltet.
- DCL = Data Control Language (Datenkontrollsprache): Befehle zur Verwaltung von Zugriffsrechten, z. B. Benutzerberechtigungen und Benutzerprofile. Zentrale Frage: „Welcher Benutzer darf auf welches Datenbankobjekt zugreifen?“
Datenbanken, Tabellen, Spalten, Tupel
Oft sagt man „eine Datenbank“ und meint damit eine Installation wie MySQL. Genauer gesagt gilt im relationalen Modell:
- Ein Datenbankserver 1) kann mehrere Datenbanken verwalten.
- Eine Datenbank besteht aus mehreren Tabellen.
- Tabellen bestehen aus Spalten (Attribute) und Zeilen (Tupel/Datensätze).
Beispiel: Filmdatenbank
Wir verwenden als Beispiel eine Tabelle mit Filmen aus der IMDB. Jeder Film hat Titel, Erscheinungsjahr, Genre, Bewertung, Stimmenzahl, Laufzeit und Einspielergebnis.
Eine mögliche Tabelle movies könnte so aussehen:
Filmtitel | Jahr | Genre | Rating | One-Line |
---|---|---|---|---|
Orange Is the New Black | (2013–2019) | Comedy, Crime, Drama | 8 | Convicted of a decade old crime of transporting drug money to an ex-girlfriend, normally law-abiding Piper Chapman is sentenced to a year and a half behind bars to face the reality of how life-changing prison can really be. |
The Queen's Gambit | (2020) | Drama | 8.6 | Orphaned at the tender age of nine, prodigious introvert Beth Harmon discovers and masters the game of chess in 1960s USA. But child stardom comes at a price. |
Erste Abfragen
Mit
SELECT
können wir Daten aus der Tabelle abrufen:
-- Alle Filme anzeigen SELECT * FROM movies; -- Alle Action-Filme mit Bewertung über 8.5 SELECT title, rating FROM movies WHERE genre = 'Action' AND rating > 8.5; -- Die 5 bestbewerteten Filme SELECT title, rating FROM movies ORDER BY rating DESC LIMIT 5;