23
SQL als Abfragesprache

SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Embed Size (px)

Citation preview

Page 1: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

SQL als Abfragesprache

Page 2: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Allgemeines

Zitat Wikipedia:SQL ist eine Datenbanksprache zur• Definition• Abfrage• Manipulationvon Daten in relationalen Datenbanken.Für folgende und weitere Infos siehe auch:http://de.wikipedia.org/wiki/SQL

Page 3: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

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)

Page 4: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Praktischer Teil

...oder: „Wie fange ich überhaupt an wenn ich wollte?“

1.XAMPP starten2.Bei MySQL auf „Admin...“ klicken3.Links im Menu auf „mysql“4.Oben auf den Reiter „Abfrageeditor“5.Unten rechts können wir jetzt die SQL-Befehle

in das Feld eingeben

Page 5: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Praktischer Teil

Mini-Wiederholung: Relationale DatenbankenPlaylist

Merke: Relationale Datenbanken sind Daten in tabellarischer Form, jede Zeile (Tupel) kann durch einen eindeutigen Index (Primary Key) identifiziert werden

Nummer Interpret Songtitel

1 Musiker1 Musiker1LiedA

2 Musiker2 Musiker2LiedA

3 Musiker1 Musiker1LiedB

Page 6: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Praktischer Teil

Schritt 1: Die Playlist als Tabelle in SQL anlegenEingeben und auf „ok“ klicken:

Wir haben jetzt eine leere Tabelle mit 3 Spalten und einem zugehörigen Datentyp erzeugt (genauere Erklärungen zu den Folien siehe Handout)

CREATE TABLE Playlist (Nummer INT NOT NULL PRIMARY KEY,Interpret varchar(50) NOT NULL,Songtitel varchar (50) NOT NULL )

Page 7: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Praktischer Teil

• Schritt 2: Die Tabelle mit Inhalt füllen:

Wir haben jetzt eine Mini-Datenbank angelegt, die wir zum Beispiel per Select-Anweisung abfragen können.

INSERT INTO Playlist (Nummer, Interpret, Songtitel)VALUES (1, 'Musiker1', 'Musiker1LiedA'),(2, 'Musiker2', 'Musiker1LiedA'),(3, 'Musiker1', 'Musiker1LiedB')

Page 8: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Praktischer Teil

• Beispiel 1: Gibt alle Songtitel aus Playlist aus

• Beispiel 2: Gibt alle Nummer(n) und Songtitel aus, wo Interpret den Wert ‘Musiker1‘ hat:

SELECT SongtitelFROM Playlist

SELECT Nummer, SongtitelFROM PlaylistWHERE Interpret = ‘Musiker1‘

Page 9: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Praktischer Teil

• Schritt 3: Die Tabelle verändernProblem: Wir haben auf einmal eine

Albumangabe, für die ja keine „Spalte“ in unserer Datenbank vorhanden ist.

Dies fügt eine weitere (noch leere) Spalte Album in unsere Tabelle ein.

ALTER TABLE Playlist ADD Album varchar(50)

Page 10: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Praktischer Teil

• Schritt 4: Den Namen des Albums einfügen

Fügt in der Zeile, in der Nummer den Wert 1 hat, in der Spalte Album den Wert ‘AlbumIMusiker1‘ ein.

UPDATE PlaylistSET Album=‘AlbumIMusiker1‘WHERE Nummer = 1

Page 11: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Theoretischer Teil

...oder: „Was sonst noch möglich ist.“

1. Datamanipulation LanguageWichtigste Befehle:SELECT*INSERT*UPDATE*DELETE

*siehe praktisches Beispiel

Page 12: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Theoretischer Teil

Allgemeine Form der Select-Anweisung:SELECT SpaltennameA, SpaltennameBFROM 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.

Page 13: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Theoretischer Teil

SELECT SpaltennameA, SpaltennameBFROM TabellennameGROUP BY Anweisung (zum Beispiel COUNT, MAX, MIN, usw.)

Wählt die jeweiligen Spalten aus und führt anschließend eine mathematische Funktion aus.

Page 14: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Theoretischer Teil

SELECT SpaltennameA, SpaltennameBFROM TabellennameORDER BY Spaltenname Anweisung (zum Beispiel asc desc)

Gibt die Spalten aus und ordnet sie nach ihrer Reihenfolge (asc= aufsteigend, desc= absteigend)

Page 15: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

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)

Page 16: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Theoretischer Teil

UPDATE TabellennameSET Spaltenname = WertWHERE Bool‘sche Bedingung

Ändert den Wert jener Tupel (Zeilen), bei denen eine bestimmte Bedingung erfüllt ist.

Page 17: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Theoretischer Teil

DELETE FROM TabellennameWHERE Bool‘sche Bedingung

Löscht den/die Tupel(Zeilen), bei denen eine bestimmte Bedingung erfüllt ist

Page 18: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Theoretischer Teil

2. Data Definition LanguageWichtigste Befehle:CREATE (erzeugt)*DROP (löscht)ALTER (ändert)*

*siehe praktisches Beispiel

Page 19: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

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)

Page 20: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Theoretischer Teil

DROP TABLE Tabellenname

Löscht die betreffende Tabelle

ALTER TABLE TabellennameADD Spaltenname4 Datentyp, Spaltenname5 Datentyp

Fügt in die betreffende Tabelle zwei neue Spalten mit entsprechendem Datentyp ein

Page 21: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Theoretischer Teil

3. Data Control LanguageWichtige Befehle:

GRANTREVOKE

Page 22: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

Theoretischer TeilGRANT 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

Page 23: SQL als Abfragesprache. Allgemeines Zitat Wikipedia: SQL ist eine Datenbanksprache zur Definition Abfrage Manipulation von Daten in relationalen Datenbanken

SQL als Abfragesprache

ENDE