Hohl-SQL

Werbung
SQL als Abfragesprache
Allgemeines
Zitat Wikipedia:
SQL ist eine Datenbanksprache zur
• Definition
• Abfrage
• Manipulation
von Daten in relationalen Datenbanken.
Für folgende und weitere Infos siehe auch:
http://de.wikipedia.org/wiki/SQL
Allgemeines
SQL umfasst drei Arten von Datenbanksprachen:
• Datamanipulation Language (wird zum
lesen/schreiben/ändern und löschen von
Datenbankinhalten benutzt)
• Data Definition Language (wird zum
Definieren der Datenstruktur benötigt)
• Data Control Language (wird zur Vergabe von
Zugriffsrechten innerhalb der Datenbank
benötigt)
Praktischer Teil
...oder: „Wie fange ich überhaupt an wenn ich
wollte?“
1. XAMPP starten
2. Bei MySQL auf „Admin...“ klicken
3. Links im Menu auf „mysql“
4. Oben auf den Reiter „Abfrageeditor“
5. Unten rechts können wir jetzt die SQLBefehle in das Feld eingeben
Praktischer Teil
Mini-Wiederholung: Relationale Datenbanken
Playlist
Nummer
Interpret
Songtitel
1
Musiker1
Musiker1LiedA
2
Musiker2
Musiker2LiedA
3
Musiker1
Musiker1LiedB
Merke: Relationale Datenbanken sind Daten in
tabellarischer Form, jede Zeile (Tupel) kann durch
einen eindeutigen Index (Primary Key)
identifiziert werden
Praktischer Teil
Schritt 1: Die Playlist als Tabelle in SQL anlegen
Eingeben und auf „ok“ klicken:
CREATE TABLE Playlist (
Nummer INT NOT NULL PRIMARY KEY,
Interpret varchar(50) NOT NULL,
Songtitel varchar (50) NOT NULL )
Wir haben jetzt eine leere Tabelle mit 3 Spalten und
einem zugehörigen Datentyp erzeugt (genauere
Erklärungen zu den Folien siehe Handout)
Praktischer Teil
• Schritt 2: Die Tabelle mit Inhalt füllen:
INSERT INTO Playlist (Nummer, Interpret, Songtitel)
VALUES (1, 'Musiker1', 'Musiker1LiedA'),
(2, 'Musiker2', 'Musiker1LiedA'),
(3, 'Musiker1', 'Musiker1LiedB')
Wir haben jetzt eine Mini-Datenbank angelegt,
die wir zum Beispiel per Select-Anweisung
abfragen können.
Praktischer Teil
• Beispiel 1: Gibt alle Songtitel aus Playlist aus
SELECT Songtitel
FROM Playlist
• Beispiel 2: Gibt alle Nummer(n) und Songtitel
aus, wo Interpret den Wert ‘Musiker1‘ hat:
SELECT Nummer, Songtitel
FROM Playlist
WHERE Interpret = ‘Musiker1‘
Praktischer Teil
• Schritt 3: Die Tabelle verändern
Problem: Wir haben auf einmal eine
Albumangabe, für die ja keine „Spalte“ in
unserer Datenbank vorhanden ist.
ALTER TABLE Playlist ADD Album varchar(50)
Dies fügt eine weitere (noch leere) Spalte Album
in unsere Tabelle ein.
Praktischer Teil
• Schritt 4: Den Namen des Albums einfügen
UPDATE Playlist
SET Album=‘AlbumIMusiker1‘
WHERE Nummer = 1
Fügt in der Zeile, in der Nummer den Wert 1 hat,
in der Spalte Album den Wert
‘AlbumIMusiker1‘ ein.
Theoretischer Teil
...oder: „Was sonst noch möglich ist.“
1. Datamanipulation Language
Wichtigste Befehle:
SELECT*
INSERT*
UPDATE*
DELETE
*siehe praktisches Beispiel
Theoretischer Teil
Allgemeine Form der Select-Anweisung:
SELECT SpaltennameA, SpaltennameB
FROM Tabellenname (oder auch Relationsname genannt)
WHERE Bool‘sche Bedingung (zum Beispiel=, <, >, AND, OR,
usw.)
Wählt nur jene Spalten, bei denen eine vorher
angegebene Bedingung erfüllt ist.
Theoretischer Teil
SELECT SpaltennameA, SpaltennameB
FROM Tabellenname
GROUP BY Anweisung (zum Beispiel COUNT, MAX, MIN, usw.)
Wählt die jeweiligen Spalten aus und führt
anschließend eine mathematische Funktion
aus.
Theoretischer Teil
SELECT SpaltennameA, SpaltennameB
FROM Tabellenname
ORDER BY Spaltenname Anweisung (zum Beispiel asc desc)
Gibt die Spalten aus und ordnet sie nach ihrer
Reihenfolge (asc= aufsteigend, desc=
absteigend)
Theoretischer Teil
INSERT INTO Tabellenname (Spaltenname)
VALUES (Wert1, Wert2, Wert3)
WHERE Bool‘sche Bedingung
Fügt in die Spalte der Tabelle Werte ein, bei der
eine bestimmte Bedingung erfüllt ist (siehe
Beispiel im praktischen Teil)
Theoretischer Teil
UPDATE Tabellenname
SET Spaltenname = Wert
WHERE Bool‘sche Bedingung
Ändert den Wert jener Tupel (Zeilen), bei denen
eine bestimmte Bedingung erfüllt ist.
Theoretischer Teil
DELETE FROM Tabellenname
WHERE Bool‘sche Bedingung
Löscht den/die Tupel(Zeilen), bei denen eine
bestimmte Bedingung erfüllt ist
Theoretischer Teil
2. Data Definition Language
Wichtigste Befehle:
CREATE (erzeugt)*
DROP (löscht)
ALTER (ändert)*
*siehe praktisches Beispiel
Theoretischer Teil
CREATE TABLE Tabellenname (Spaltenname1 Datentyp,
Spaltenname2 Datentyp, Spaltenname3 Datentyp)
Erzeugt eine Tabelle mit 3 Spalten und den
zugehörigen Datentypen (für eine Liste der
möglichen Datentypen siehe Handout)
Theoretischer Teil
DROP TABLE Tabellenname
Löscht die betreffende Tabelle
ALTER TABLE Tabellenname
ADD Spaltenname4 Datentyp, Spaltenname5 Datentyp
Fügt in die betreffende Tabelle zwei neue
Spalten mit entsprechendem Datentyp ein
Theoretischer Teil
3. Data Control Language
Wichtige Befehle:
GRANT
REVOKE
Theoretischer Teil
GRANT Befehl1 (z.B. SELECT), Befehl2 (z.B. UPDATE)
ON TABLE Tabellenname
TO Benutzername
Dem betreffenden Benutzer (oder
Benutzergruppe) wird das Recht
zugesprochen, eine bestimmte Tabelle
auszulesen (SELECT) und deren Inhalt zu
verändern (UPDATE)
Ersetzt man GRANT durch REVOKE, werden die
entsprechenden Rechte wieder genommen
SQL als Abfragesprache
ENDE
Herunterladen