Teil 2-6. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Ähnliche Dokumente
Teil 2-6. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Daten Bank. 4. Vorlesung

Garten - Daten Bank. - survival pack -

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007

Daten Bank. 4. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012

Garten -Daten Bank. Was ist das? Dr. Karsten Tolle PRG2 SS 2013

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Daten Bank. 4. Vorlesung

Repetitorium: Wer: Tung Le Trong Wann: (Freitag) Genauer wann : von Uhr Wo: H IV. Dr. Karsten Tolle PRG2 SS

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

Wiederholung VU Datenmodellierung

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Programmierung 2

Design Theorie für relationale Datenbanken

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

Normalformen. Was sind Kriterien eines guten Entwurfs? So wenig Redundanz wie möglich. Keine Einfüge-, Lösch-, Änderungsanomalien

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Daten Bank. 5. Vorlesung. Dr. Karsten Tolle PRG2 SS 2014

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Übersicht der wichtigsten MySQL-Befehle

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Datenbanken. Zusammenfassung. Datenbanksysteme

Teil 2-5. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Daten Bank. 5. Vorlesung. Dr. Karsten Tolle PRG2 SS 2013

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Daten Bank. 5. Vorlesung

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

ACCESS SQL ACCESS SQL

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

SQL structured query language

Abfragen (Queries, Subqueries)

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

SQL als Zugriffssprache

Die Anweisung create table

Datenbanksysteme 2013

SQL Data Manipulation Language (DML) und Query Language (QL)

Relationales Datenbanksystem Oracle

5.8 Bibliotheken für PostgreSQL

Relationentheorie grundlegende Elemente

Kapitel 2: Das Relationale Modell

Datenbanken (Übung 12)

SQL: Weitere Funktionen

dbis Praktikum DBS I SQL Teil 2

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

Kapitel 3: Datenbanksysteme

Kapitel 2: Das Relationale Modell

3. Grundlagen relationaler Datenbanksysteme

Microsoft Access 2010 SQL nutzen

Relationale Anfragesprachen

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

DB1. DB SQL-DQL 1 Mario Neugebauer

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Daten Bank. 5. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

Management of Information Systems. Tutorat: Session 3 Einführung in SQL

Kapitel 8: Datenintegrität

4. Datenbanksprache SQL

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

Rückblick: Relationales Modell

Sructred Query Language

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Kapitel DB:VI (Fortsetzung)

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Relationale Datenbanken

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

IV. Datenbankmanagement

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

SQL - Datenbankdesign - Aufbau

2. Übungsblatt 3.0 VU Datenmodellierung

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB "Zugriff" auf Tupel mit Tupel-Variablen

Bibliografische Informationen digitalisiert durch

Relationale Datenbanken

2. Übungsblatt 3.0 VU Datenmodellierung

Transkript:

Teil 2-6. Vorlesung Modul: Programmierung B-PRG Grundlagen der Programmierung II Professur für Datenbanken und Informationssysteme Dr. Karsten Tolle tolle@dbis.cs.uni-frankfurt.de 1

Schlüssel? PLZ ORT STRASSE_NR 30419 Hannover Schaumburgstr. 2 30419 Hannover Quetlinburger Weg 12 37308 Schirmberg Bergstraße 1 37308 Bodenrode Hauptstraße 12 37308 Geismar Bergstraße 1 35279 Neustadt Gartenstraße 7 53577 Neustadt Gartenstraße 7 keine Abhängigkeiten Schlüssel: PLZ, ORT, STRASSE_NR 2 Grundlagen der Programmierung II

Fahrzeuge der Firma AB HERSTELLER KENNZEICHEN ZUGEL_GES_GEW FÜHRERSCHEIN VW F-AB 123 bis 3.5 B MB F-AB 234 bis 7.5 C1 MB F-AB 235 bis 7.5 C1 MAN F-AB 236 bis 12 C MB F-AB 239 bis 12 C Abhängigkeiten? 3 Grundlagen der Programmierung II

Fahrzeuge der Firma AB HERSTELLER KENNZEICHEN ZUGEL_GES_GEW FÜHRERSCHEIN VW F-AB 123 bis 3.5t B MB F-AB 234 bis 7.5t C1 MB F-AB 235 bis 7.5t C1 MAN F-AB 236 bis 12t C MB F-AB 239 bis 12t C MB F-AB 230 bis 17t C aus ZUGEL_GES_GEW folgt hier FÜHRERSCHEIN: ZUGEL_GES_GEW FÜHRERSCHEIN umgekehrt nicht! 4 Grundlagen der Programmierung II

ein wenig abgewandelt HERSTELLER TYP ZUGEL_GES_GEW FÜHRERSCHEIN VW Transporter bis 3.5t B MB Laster bis 7.5t C1 MB Laster bis 7.5t C1 MAN Laster bis 12t C MB Lastzug bis 17t CE MB Lastzug bis 17t CE aus ZUGEL_GES_GEW und TYP folgt hier FÜHRERSCHEIN: ZUGEL_GES_GEW TYP FÜHRERSCHEIN 5 Grundlagen der Programmierung II

Funktionale Abhängigkeit (FD) Seien X und Y Teilmengen von R. Eine Relation r(r) erfüllt (satisfies) die funktionale Abhängigkeit (functional dependency) FD X Y, wenn für je zwei (beliebige) Tupel u, v r(r) gilt: u(x) = v(x) u(y) = v(y). X Y u(x) = v(x) u(y) = v(y) 6 Grundlagen der Programmierung II

Beispiel Gegeben ist die Relation r(r): A B C D E a1 b1 c1 d1 e1 a1 b2 c2 d2 e1 a2 b1 c3 d2 e1 a2 b1 c4 d3 e1 a3 b2 c5 d1 e1 Geben Sie an, welche der folgenden Abhängigkeiten r erfüllt. 7 A D AB D C BDE E A A E A BC Grundlagen der Programmierung II

Schlüssel Ein Schlüssel identifiziert eine Entität. Er besteht aus einer Menge von Attributen, deren Werte alle Instanzen einer Entität eindeutig bestimmen. (aus ER!) Ein Schlüssel (key) einer Relation r(r) ist eine minimale Teilmenge K von R, so dass für je zwei verschiedene Tupel t 1, t 2 r gilt: t 1 (K) t 2 (K) und keine echte Teilmenge K' von K hat diese Eigenschaft. Ein Schlüssel kann als Integritätsbedingung angesehen werden. Falls K Schlüssel von r(r), t 1 r, t 1 (K) = t 2 (K), t 1 t 2 dann dürfte t 2 nicht in r(r) eingefügt werden. 8 Grundlagen der Programmierung II

Schlüssel Gegeben seien ein Relationenschema R und eine Menge F von FDs. X R ist ein Oberschlüssel für R X R X ist ein Schlüssel für R X R und X minimal ( ( A X: X\A R)) 9 Grundlagen der Programmierung II

1. Normalform FIRSTNME LASTNME BIRTH STREET NUMBER TOWN ZIP Jon Lucas 12.03.1969 {Zeil, Lange Str.} {12, 114} {Frankfurt, Frankfurt} {60313, 60313} Lucas Jon 24.12.1980 Gräfstr. 27 Frankfurt 60325 FIRSTNME LASTNME BIRTH STREET NUMBER TOWN ZIP Jon Lucas 12.03.1969 Zeil 12 Frankfurt 60313 Jon Lucas 12.03.1969 Lange Str. 114 Frankfurt 60313 Lucas Jon 24.12.1980 Gräfstr. 27 Frankfurt 60325

1. Normalform Definition: Ein Relationenschema R ist in 1. Normalform (1NF), wenn die Wertebereiche aller Attribute von R atomar sind. 1.NF Wertebereiche atomar 11 Grundlagen der Programmierung II

vorrat (Teil Lager Menge Lageradresse) 101 1 25 Waag. 10 102 3 410 Krugerstr. 42 102 1 300 Waag. 10 112 4 10 Brunnerstr. 105 F = { Teil Lager Menge Lageradresse Lager Lageradresse } 12 Grundlagen der Programmierung II

Prim Ein Attribut A heißt prim in R, wenn es in einem Schlüssel von R enthalten ist, sonst heiße es nicht prim. A ist prim X: X ist Schlüssel, A X 13 Grundlagen der Programmierung II

volle funktionale Abhängigkeit Eine funktionale Abhängigkeit X Y heißt volle funktionale Abhängigkeit, wenn für keine Teilmenge X X, X Y gilt. Y heißt dann voll funktional abhängig von X. X Y voll funktional X X : X Y 14 Grundlagen der Programmierung II

2. Normalform Ein Relationenschema R ist in 2. Normalform (2NF), wenn es in 1NF ist und jedes nicht prime Attribut voll funktional von jedem Schlüssel von R abhängig ist. 2. NF A nicht prim Schlüssel A voll funktional Die 2. NF ist verletzt, wenn ein Teil eines Schlüssels ein Nicht-Schlüsselattribut funktional bestimmt. 15 Grundlagen der Programmierung II

Beispiel 1 vorrat (Teil Lager Menge Lageradresse) 101 1 25 Waag. 10 102 3 410 Krugerstr. 42 102 1 300 Waag. 10 112 4 10 Brunnerstr. 105 F = { Teil Lager Menge Lageradresse Lager Lageradresse } vorrat (Teil Lager Menge 101 1 25 102 3 410 102 1 300 112 4 10 lager (Lager Lageradresse) 1 Waag. 10 3 Krugerstr. 42 4 Brunnerstr. 105 16 Grundlagen der Programmierung II

Beispiel 2 R = ABCD F = {AB CD, B D} B D verletzt 2. NF Zerlegung in: R1 = (ABC) mit F1 = {AB C} R2 = (BD) mit F2 = {B D} 17 Grundlagen der Programmierung II

2. NF? ID HERSTELLER ZUGEL_GES_GEW FÜHRERSCHEIN 1 VW bis 3.5 B 2 MB bis 7.5 C1 3 MB bis 8.5 C 4 MAN bis 12 C 5 MB bis 12 C 6 VW bis 12 C F = { ID R, ZUGEL_GES_GEW FÜHRERSCHEIN} 18 Grundlagen der Programmierung II

transitive Abhängigkeit Gegeben sei eine Menge funktionaler Abhängigkeiten F über einem Relationenschema R, X R, A R. A ist transitiv abhängig von X, wenn es eine Attributmenge Y R gibt so, dass X Y F + und Y A F + sind und Y X F +, A XY gilt. X A transitiv Y, Y X: X Y A, A nicht prim F + ist die Hülle von F, d.h. zusätzlich alle FDs, die aus den gegebenen folgen. 19 Grundlagen der Programmierung II

3. Normalform Ein Relationenschema R in 1. NF ist in 3. Normalform (3NF), wenn kein nichtprimes Attribut von einem Schlüssel in R transitiv abhängig ist. 3.NF A nicht prim Schlüssel A nicht transitiv Die 3. NF ist verletzt, wenn ein Nicht-Schlüsselattribut transitiv von einem Schlüssel abhängt. 20 Grundlagen der Programmierung II

3. NF? ID HERSTELLER ZUGEL_GES_GEW FÜHRERSCHEIN 1 VW bis 3.5 B 2 MB bis 7.5 C1 3 MB bis 8.5 C 4 MAN bis 12 C 5 MB bis 12 C 6 VW bis 12 C Fall 1: F = { ID HERSTELLER TYP ZUGEL_GES_GEW, ZUGEL_GES_GEW FÜHRERSCHEIN} Fall 2: F = { ID R, ZUGEL_GES_GEW FÜHRERSCHEIN} 21 Grundlagen der Programmierung II

Beispiel R = ABC F = {A B, B C} A B C verletzt 3. NF Zerlegung in: R1 = (AB) mit F1 = {A B} und R2 = (BC) mit F2 = {B C} 22 Grundlagen der Programmierung II

Normalformen Über die Normalformen (NF) werden Kriterien definiert, um Redundanzen und Anomalien zu verhindern. Es gibt: 1 NF 2 NF 3 NF BCNF 4 NF 5 NF 6 NF 1 NF 2 NF 3 NF

Normalisierung / Denormalisierung Normalisierung: Der Prozess des Aufspaltens von Relationen, um Anomalien/Redundanzen zu verhindern. Denormalisierung: Der Prozess des Zusammenlegens von Relationen, um Performanz zu gewinnen.

Vorgehen beim Prüfen auf NF (WICHTIG!!!) Ausgangspunkt: Relation R (mind. 1. NF) und Menge der FDs gegeben. 1. Welche Schlüssel gibt es? was sind die nicht primen Attribute! 2. Prüfe auf 2. NF (voll funktional abhängig von ALLEN Schlüsseln?) 3. Prüfe auf 3. NF (transitive Abhängigkeit von irgend einem Schlüssel?) 25 Grundlagen der Programmierung II

SQL (ein Einblick) Structured Query Language

DBS Sprachen Das DBS stellt als Schnittstelle eine Datenbanksprache(n) für die folgenden Zwecke zur Verfügung: Datenabfrage und -manipulation Data Manipulation Language (DML) Verwaltung der Datenbank Data Definition Language (DDL) Berechtigungssteuerung Data Control Language (DCL) z.b. SQL

Structured Query Language SQL ist für Relationale Datenbanksysteme! Standards: SQL-1 von 1986 bzw. 1989 (ca. 120 Seiten) SQL-2 (SQL92) von 1992 (ca. 580 Seiten) http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt SQL-3 (SQL99) von 2000 (ca. 1200 Seiten) http://www.cse.iitb.ac.in/dbms/data/papers-other/sql1999/ansi-iso-9075-2-1999.pdf SQL 2003 - ISO/IEC 9075:2003 SQL:2006 - ISO/IEC 9075-14:2006 (SQL/XML)

Tabellen erstellen Eine Tabelle wird im Minimalfall mit ihrem eindeutigen Namen sowie der Liste der zugehörigen Attribute samt Domänen nach folgendem Schema definiert: create table Relations-Name ( Attribut-Name Domäne {, Attribut-Name Domäne} ) ;

create table Konto ( KtoNr integer, KundenName varchar(25), FilialName varchar(25), Saldo real ) ; create table Kunde ( Name varchar(25), Vorname varchar(25), Straße varchar(25), Stadt varchar(25), GebDatum date ) ;

SQL-2 Datentypen character character(n) character varying(n) integer oder int smallint numeric(m,n) decimal(n,m) real double precision float(m) date time timestamp

Primärschlüssel Mittels der Klausel primary key kann eine unter den Attributfolgen einer Relation bei der Definition der Tabelle als Primärschlüssel ausgezeichnet werden. Die Benutzung dieser Klausel ist nur einmal pro Relation gestattet. create table Konto ( KtoNr integer primary key not null, KundenName varchar(25), FilialName varchar(25), Saldo real ) ;

Primärschlüssel Wenn mehr als ein Attribut als Primärschlüssel definiert werden sollen, wird die Klausel in der Form primary key (Attributnamen-Liste) verwendet. create table Transaktion ( vonktonr integer not null, anktonr integer not null, Datum date not null, Betrag real, primary key (vonktonr, anktonr, Datum) ) ;

Einfügen von Tupeln Um Daten einzufügen, spezifiziert man entweder das Tupel, das eingefügt werden soll Die Werte für die Attribute der Tupel müssen aus der Domäne der Attribute sein. insert into Kunde values ( 'Otto', 'Hans', 'Bäckerweg 12', 'Frankfurt', '1970-12-01' ) ; Der Kunde "Hans Otto" wird eingefügt.

Syntaktische Grundform der SQL-Anfrage select A 1,A 2,...,A n from R 1, R 2,...,R m [where conditions] [group by clause] [having clause] [order by clause];

Anfragen ohne Bedingungen Filiale ( Name Leiter Stadt Einlagen ) select Name, Leiter from Filiale; select Leiter, Name from Filiale; select Stadt from Filiale; select * from Filiale;

SQL verwirklicht das Prinzip der Vielfachmenge (engl. multiset). In den Ergebnismengen können demnach Duplikate auftreten. Sind keine Duplikate erwünscht, müssen sie explizit durch den Zusatz distinct entfernt werden. select distinct Stadt from Filiale;

Aggregatfunktionen Die sog. Aggregatfunktionen können in der select-klausel anstelle von einzelnen Attributen angegeben werden. Ergebnis einer Aggregatfunktion ist ein Wert, kein Tupel. select count( ) as AnzahlKonten from Konto;

Aggregatfunktionen min( A ) zur Berechnung des Minimalwerts aller Tupel unter dem Attribut A. max( A ) zur Berechnung des Maximalwerts aller Tupel unter dem Attribut A. avg( [ distinct ] A ) zur Berechnung des Durchschnittswerts aller Tupel unter dem Attribut A, wobei unter Angabe von distinct mehrfach gleiche Werte nur einmal in die Berechnung eingehen. sum( [ distinct ] A ) zur Berechnung der Summe aller Tupel unter dem Attribut A, wobei unter Angabe von distinct mehrfach gleiche Werte nur einmal in die Berechnung eingehen. count( ) zum Zählen der Tupel der betrachteten Relation. count( [ distinct ] A) zum Zählen der Tupel der betrachteten Relation, wobei zunächst eine Duplikateneliminierung bezogen auf Werte unter dem Attribut A stattfindet.

where-klausel Bezüglich der Bedingung sind Vergleiche mit den üblichen Operatoren, den logischen Verknüpfungen and und or sowie beliebige Klammerungen gestattet. Konto ( KontoNr KundenNr FilialName Saldo ) select * from Konto where Saldo > 5000 or KundenNr <= 100;

Textvergleiche - LIKE Kunde ( KundenNr Name Vorname Straße Stadt ) select KundenNr from Kunde where Name like 'To%' and Vorname not like '_arste%'; Bem.: % für beliebige Zeichenfolgen _ für genau ein Zeichen

Anfrage über mehrere Relationen Werden in der from-klausel mehrere Relationen spezifiziert, so erfolgt die Berechnung des kartesischen Produktes. Konto ( KontoNr KundenNr FilialName Saldo ) Filiale ( Name Leiter Stadt Einlagen ) select * from Filiale, Konto;

Join Konto ( KontoNr KundenNr FilialName Saldo ) Filiale ( Name Leiter Stadt Einlagen ) select * from Filiale, Konto where Filiale.Name = Konto.FilialName; alternativ mit Alias select * from Filiale F, Konto K where F.Name = K.FilialName;

Sortierung select A 1,A 2,...,A n from R 1, R 2,...,R m [where Bedingung] [order by (A i [asc desc])+]; select * from Kredit order by FilialName, KreditNr;

Group by / Gruppierung select A 1,A 2,...,A n from R 1, R 2,...,R m [where conditions] [group by clause]; select TYP, sum(preis) from FAHRZEUGE where LADEGEW >= 3.0 group by TYP; ID TYP LADEGE W PREIS 1 VW-Trans 3 20.398 2 MB-Lastzug 14 35.986 3 MB-Lastzug 17 36.765 4 VW-Trans 2.4 19.938

Group by having / Gruppierung mit Bedingung select A 1,A 2,...,A n from R 1, R 2,...,R m [where conditions] [group by clause] [having clause]; ID TYP LADEGE W PREIS 1 VW-Trans 3 20.398 2 MB-Lastzug 14 35.986 3 MB-Lastzug 17 36.765 4 VW-Trans 2.4 19.938 select TYP, sum(preis) from FAHRZEUGE where LADEGEW >= 3.0 group by TYP having sum(preis) > 30000;

Fremdschlüssel / Forein Key CREATE TABLE EMPLOYEE (FIRSTNME varchar(20), LASTNME varchar(20), BIRTH date, Foreign Key (ADR_SID) references ADDRESS(ID)); FIRSTNME LASTNME BIRTH ADR_ID Jon Lucas 12.03.1969 1 Jon Smith 30.09.1973 2 Lucas Jon 24.12.1980 3 Jon Smith 24.12.1976 4 Lucas Smith 01.01.1975 1 ID STREET NUMBER TOWN ZIP 1 Zeil 12 Frankfurt 60313 2 Lange Str. 114 Frankfurt 60313 3 Gräfstr. 27 Frankfurt 60325 4 Gundhofstr. 27 Mörfelden- Walldorf 64546

SQL Online Tutorial http://sqlzoo.net/

SQL Online Tutorial Queries can be interactively executed.

Weitere Dinge Inner und Outer Join Alter und Drop Table Mengenoperationen: Union, Minus, Intersect Sichten/Views Index Trigger und vieles vieles mehr!!!! auch abhängig vom DBMS und der SQL-Version