27
theoretische und praktische Einführung SQL als Abfragesprache

Theoretische und praktische Einführung SQL als Abfragesprache

Embed Size (px)

Citation preview

Page 1: Theoretische und praktische Einführung SQL als Abfragesprache

theoretische und praktische Einführung

SQL als Abfragesprache

Page 2: Theoretische und praktische Einführung SQL als Abfragesprache

Wikipedia schreibt:SQL (Structured Query Language), ist eine

Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken.

SQL ist von ANSI und ISO standardisiert und wird von fast allen gängigen Datenbanksystemen unterstützt.

SQL umfasst die folgenden Datenbanksprachen: Data Manipulation Language, Data Definition Language, Data Control Language.

Page 3: Theoretische und praktische Einführung SQL als Abfragesprache

AllgemeinesEntstand gegen Ende der 70er (IBM, San Jose)Eigentlicher Name: SEQUELAktueller Standard: SQL:2008„Nichtprozedural“User formuliert was getan werden soll, ohne es

selbst zu tunBeispiel-Implementierungen: MySQL, Access, uvm.Möglichkeiten der Erstellung per GUI oder „zu Fuß“Befehle orientieren sich an natürlicher Sprache

(Englisch)Erweiterbar durch Schnittstellen zu anderen

Programmiersprachen und durch Exportfunktionen

Page 4: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel einer Relation

Nutzer-ID

Vorname

Nachname

Karten-Nummer

1 Heinz Happ 34556

2 Gabi Gabel 468786

3 Martin Mann 123786

4 Frieda Frau 846513

5 Harry Hirsch 132464

Nutzer

Tupel

Attribut

Entität/Relation

Schema

Page 5: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel einer Relation

Buch-ID

Autor VerlagVerlagsj

ahrTitel Datum

1Hans

VielschreiberMusterver

lag2007

Wir lernen SQL

13.01.2007

2 J. GutenbergGutenberg und Co.

1452Drucken

leicht gemacht

01.01.1452

3 G. I. CaesarHandschrift Verlag

-44Mein

Leben mit Asterix

16.03.-44

5 Galileo Galilei

Inquisition

International

1640Eppur si muove

1641

6 Charles DarwinVatikan Verlag

1860Adam und

Eva1862

Bücher

Page 6: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel einer Relation

Nutzer-ID

Buch-ID

5 1

5 2

3 3

1 5

2 6

Entliehen

Page 7: Theoretische und praktische Einführung SQL als Abfragesprache

Indizes/SchlüsselJedes Tupel (Zeile) in einer Tabelle kann

durch einen eindeutigen Index (Primary Key) identifiziert werden

Dieser wird explizit vergeben oder aus bestimmten Spalten zusammengesetzt

Um eindeutig zu sein muss sich der zusammengesetzte Schlüssel in mindestens einem Punkt von allen anderen unterscheiden

Page 8: Theoretische und praktische Einführung SQL als Abfragesprache

Data Manipulation LanguageDaten werden abgerufenDaten können manipuliert werdenWichtigste Befehle:

SELECTINSERTUPDATEDELETE

Page 9: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel SelectSELECT Spaltenname1,

Spaltenname2 (* für Alle)FROM Relationsname;

Wählt bestimmte Spalten aus einer bestimmten Tabelle aus

Page 10: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel SelectSELECT Spaltenname1, Spaltenname2FROM RelationsnameWHERE Bool‘sche Bedingung;

(<,>,||,=,AND,OR,BETWEEN,EXISTS,IS NULL etc.)

Wählt bestimmte Spalten aus einer bestimmten Tabelle aus, deren Inhalt eine Bedingung erfüllt

Page 11: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel SelectSELECT Spaltenname1, Spaltenname2 (*

für Alle)FROM RelationsnameWHERE Bool‘sche BedingungORDER BY Spaltenname asc/desc;

Wählt bestimmte Spalten aus einer bestimmten Tabelle aus, deren Inhalt eine Bedingung erfüllt und sortiert diese

Page 12: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel SelectSELECT Spaltenname1,

Spaltenname2 (* für Alle)FROM RelationsnameGROUP BY Gruppierungen

(COUNT,MAX,MIN,AVG,SUM,etc.)

Wählt bestimmte Spalten aus einer bestimmten Tabelle aus und führt eine mathematische Operation mit diesen durch

Page 13: Theoretische und praktische Einführung SQL als Abfragesprache

Kreuzen

A B

1 2

2 3

B C

3 4

4 5

links rechts

SELECT *FROM links, rechts;

A B B C

1 2 3 4

2 3 3 4

1 2 4 5

2 3 4 5

Page 14: Theoretische und praktische Einführung SQL als Abfragesprache

Join Select

A B

1 2

2 3

B C

3 4

4 5

links rechts

SELECT *FROM links, rechtsWHERE links.B=rechts.B;

A B C

2 3 4

Page 15: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel InsertINSERT INTO Relationsname

(Spaltenname)VALUES (Werte);

Fügt in einer bestimmten Spalte einer bestimmten Tabelle, Werte ein.

Page 16: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel UpdateUPDATE RelationsnameSET Spaltenname = WertWHERE Bool‘sche Bedingung;

Ändert in einer bestimmten Spalte einer bestimmten Tabelle den Wert, der eine Bedingung erfüllt.

Page 17: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel DeleteDELETE FROM RelationsnameWHERE Bool‘sche Bedingung;

Löscht in einer bestimmten Tabelle den Tupel, der eine Bedingung erfüllt.

Page 18: Theoretische und praktische Einführung SQL als Abfragesprache

Data Definition LanguageDaten werden erzeugtRelationen werden erzeugt/gelöschtWichtigste Befehle:

CREATEDROPALTER

Page 19: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel CreateCREATE TABLE Relationsname

(Spaltenname1,Spaltenname2);

Erzeugt eine Tabelle mit den angegebenen Spalten.

Wobei hinter jeder Spalte ein Datentyp definiert wird (INT,CHAR,BIT,DATE, etc.).

Page 20: Theoretische und praktische Einführung SQL als Abfragesprache

Exkurs: Datentypen in SQL int: Ganze Zahl (Variationen smallint, bigint) numeric (n,m): Festkommazahl (n Stellen, davon m

Nachkommastellen float (m): Gleitkommazahl (mit m Stellen) real/double: Gleitkommazahlen (vom DBS festgelegt) char (n): Zeichenkette mit n Stellen varchar: Zeichenkette variabler Länge date: Datumsangabe time: Zeitangabe timestamp: Datum und Uhrzeit boolean: wahr- oder falsch-Wert blob (n): „Binary Large Object“ mit n Byte Länge clob (n): „Character Large Object“ mit n Zeichen Länge

Page 21: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel CreateCREATE INDEX IndexnameON Relationsname (Spaltenname);

Erzeugt einen Index auf den angegebenen Spalten.

Page 22: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel AlterALTER TABLE RelationsnameADD Spaltenname1, Spaltenname2;

Fügt zu einer Tabelle die angegebenen Spalten.

Wobei hinter jeder Spalte ein Datentyp angegeben wird.

Page 23: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel DropDROP TABLE Relationsname;

Löscht eine bestimmte Tabelle.

Page 24: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel DropDROP INDEX Indexname;

Löscht einen bestimmten Index.

Page 25: Theoretische und praktische Einführung SQL als Abfragesprache

Data Control LanguageRechte werden gegebenRechte werden eingeschränktWichtigste Befehle:

GRANTREVOKE

Page 26: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel GrantGRANT Befehl1,Befehl2ON Relationsname1, Relationsname2TO Benutzername (kann auch PUBLIC sein);[WITH GRANT OPTION;]

Gestattet Befehle auf bestimmten Tabellen, einem/mehreren/allen Benutzern

[mit der Option dieses Recht weiterzugeben].

Page 27: Theoretische und praktische Einführung SQL als Abfragesprache

Beispiel RevokeREVOKE Befehl1,Befehl2ON Relationsname1, Relationsname2FROM Benutzername (kann auch

PUBLIC sein);

Entzieht Befehle auf bestimmten Tabellen, einem/mehreren/allen Benutzern.