33
SQL/QBE 1 Wirtschaftsinformati k Abfragen mit QBE und SQL Abfragen mit QBE und SQL Wirtschaftsinformatik II Wirtschaftsinformatik II

Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

Embed Size (px)

Citation preview

Page 1: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 1

Wirtschaftsinformatik

Abfragen mit QBE und SQLAbfragen mit QBE und SQL

Wirtschaftsinformatik IIWirtschaftsinformatik II

Page 2: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 2

WirtschaftsinformatikProgrammiersprachen

1. Generation: • Maschinensprachen (prozessorabhängig!): nur 0 und 1

2. Generation: • Assembler (prozessorabhängig!): ADD, SUB, MUL, DIV, ...

3. Generation: • Problemorientierte Sprachen:

• WIE soll ein Problem gelöst werden? (Unterteilung in betriebswirtschaftliche und technisch-wissenschaftliche Sprachen): Cobol, Pascal, Fortran, Ada, Basic, C, PL/1, RPG, ...

4. Generation: • Deskriptive Sprachen:

• WAS wird als Ergebnis erwartet? Beispiel: SQL (Structured Query Language)

weitere Unterscheidung: • wissensbasierte (Prolog und Lisp) und

objektorientierte Sprachen (SmallTalk, C++, Java, Delphi)

Page 3: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 3

WirtschaftsinformatikProgrammiersprachen

Prozeduraler Algorithmus (3. Generation):

1) Nimm nächstes Buch

2) Prüfe, ob Titel = „Wirtschaftsinformatik“

3) Falls JA, notiere Autor

4) Prüfe, ob letztes Buch

5) Falls nein, zurück zu 1)

6) Falls ja, Ende

Page 4: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 4

WirtschaftsinformatikProgrammiersprachen

Nicht-prozedurale, deskriptive Formulierung (4. Generation):

Suche alle Bücher aus der Tabelle „Bibliothek“ für die gilt: Titel = „Wirtschaftsinformatik“

Beispiel für eine entsprechende SQL-Abfrage:

SELECT Autor, Titel, Erscheinungsjahr

FROM Bibliothek

WHERE Titel = „Wirtschaftsinformatik“;

Page 5: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 5

WirtschaftsinformatikGrundlagen von SQL

• SQL = Structured Query Language

• Standardsprache für relationalen Datenbanken – (z.B. Oracle, IBM DB2, MS Access, MS SQL-Server, etc.)

• Dient dem Benutzer zur Kommunikation mit dem DBMS

• Es existieren proprietäre Erweiterungen zum „reinen“ Standard-SQL

• Sprache der 4.Generation– Nicht prozedural, sondern datenorientiert

• Elemente von SQL:– Datendefinition– Datenmanipulation– Datenabfrage– Datenschutz

Page 6: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 6

WirtschaftsinformatikDatendefinition

• Tabellen erzeugen

• Tabellen ändern:– Neue Attribute einfügen

• Auch wenn bereits Daten in der Tabelle eingegeben sind

– Tabellenattribute indizieren• z.B. wenn nur eindeutige Werte erlaubt sind oder wenn die

Suche nach Attributwerten beschleunigt werden soll

– Beziehungen verwalten• Festlegen von Primär- und Fremdschlüsseln Einhaltung der

referentiellen Integrität

• Tabellen löschen

Page 7: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 7

WirtschaftsinformatikDatenmanipulation

• Datensätze einfügen

• Datensätze nachführen

• Datensätze löschen

Page 8: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 8

WirtschaftsinformatikDatenabfrage (Query)

• Angegeben wird:– Mit welchen Daten gearbeitet werden soll und– Welche Bedingungen diese Daten erfüllen müssen

• Eine Abfrage beginnt immer mit SELECT

SELECT [DISTINCT] {*|Attributliste|mathematische Ausdrücke} AS Bezeichner

FROM Tabelle1 AS Bezeichner1, Tabelle2 AS Bezeichner2, ...

[WHERE Bedingungen]

[GROUP BY Attributliste] [HAVING Bedingungen]

[ORDER BY Attributliste] [ASC|DESC];

Page 9: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 9

WirtschaftsinformatikDatenabfrage (Query)

• Typische Fragen, die durch Auswahlabfragen beantwortet werden sollen:– „Welches Projekt hat die höchsten Projektkosten?“– „Liste der Mitarbeiter absteigend sortiert nach

Betriebszugehörigkeit.“– „Welche Mitarbeiter arbeiten in einem Datenbank-Projekt?“– „Welche Mitarbeiter wohnen in München?“– „Wie hoch ist der Durchschnittsgewinn der Projekte?“

• Hierzu greifen Auswahlabfragen auf ein oder mehrere Tabellen einer DB zu.

• Sie liefern wiederum eine Tabelle als Ergebnis.

Page 10: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 10

Wirtschaftsinformatik

Page 11: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 11

WirtschaftsinformatikProjektion

• Auswahl einzelner Attribute (Felder, Spalten). Bsp. in QBE (Query by Example):

Page 12: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 12

WirtschaftsinformatikProjektion

• Dasselbe Beispiel in SQL (Structured Query Language):

SELECT Nachname, Vorname, Straße_HausNr, PLZ, Ort, Telefon_PrivatFROM Mitarbeiter;

Page 13: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 13

WirtschaftsinformatikProjektion

• Das Ergebnis:

Page 14: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 14

WirtschaftsinformatikSelektion

• Auswahl bestimmter Datensätze. Bsp.: „Welche Kunden befinden sich in München und gehören zu den Branchen Bank oder Versicherung?“

Page 15: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 15

WirtschaftsinformatikSelektion

• „Welche Kunden befinden sich in München und gehören zu den Branchen Bank oder Versicherung?“

• In SQL:

SELECT Firmenname, Ort, BrancheFROM KundeWHERE

(Ort="München" AND Branche="Bank") OR (Ort="München" AND Branche="Versicherung");

Page 16: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 16

WirtschaftsinformatikSelektion

• Ergebnis:

Page 17: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 17

WirtschaftsinformatikSelektion

• Selektionskriterien finden Sie im Access-Handout auf S.178. • Was findet die folgende

Auswahlabfrage heraus?

• Hier der zugehörige SQL:

SELECT Kurzname, Projektkosten

FROM ProjektWHERE Projektkosten>2000000;

Page 18: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 18

WirtschaftsinformatikSortierung

SELECT Nachname, Vorname, Straße_HausNr, PLZ, OrtFROM MitarbeiterORDER BY Ort, Nachname;

Page 19: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 19

WirtschaftsinformatikSortierung

• Ergebnis:

Page 20: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 20

Wirtschaftsinformatik

Join:Verknüpfung mehrerer Tabellen

• Bsp: „Welche Kunden haben welche Projekte vergeben?“

Page 21: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 21

Wirtschaftsinformatik

• In SQL:

SELECT Kunde.Firmenname, Kunde.Kundennummer, Projekt.KundenNr, Projekt.Kurzname

FROM Kunde INNER JOIN Projekt ON Kunde.Kundennummer = Projekt.KundenNr;

Join:Verknüpfung mehrerer Tabellen

Page 22: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 22

WirtschaftsinformatikJoin mit Kriterien

• „Welche Kunden aus München haben Projekte mit einem Volumen von über 1‘000‘000.- vergeben?“

Page 23: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 23

WirtschaftsinformatikJoin mit Kriterien• „Welche Kunden aus München haben Projekte mit einem Volumen von über 1‘000‘000.- vergeben?“ In SQL:

SELECT Kunde.Firmenname, Kunde.Ort, Projekt.Kurzname, Projekt.VergütungFROM Kunde INNER JOIN Projekt ON

Kunde.Kundennummer = Projekt.KundenNrWHERE (Kunde.Ort="München" AND Projekt.Vergütung>1000000);

Page 24: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 24

WirtschaftsinformatikKomplexer Join

• „Welche Mitarbeiter haben schon auf vom Kunden ‚Bodidas‘ vergebenen Projekten gearbeitet?“

Page 25: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 25

WirtschaftsinformatikKomplexer Join

• „Welche Mitarbeiter haben schon auf vom Kunden ‚Bodidas‘ vergebenen Projekten gearbeitet?“• In SQL:

SELECT Kunde.Firmenname, Mitarbeiter.NachnameFROM (Kunde INNER JOIN Projekt ON Kunde.Kundennummer = Projekt.KundenNr) INNER JOIN (Mitarbeiter INNER JOIN Projektbearbeitung ON

Mitarbeiter.MitarbeiterNr = Projektbearbeitung.MitarbeiterNr) ON Projekt.Projektnummer = Projektbearbeitung.ProjektnummerWHERE (Kunde.Firmenname Like "Bodidas*");

Page 26: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 26

WirtschaftsinformatikKomplexer Join

• „Welche Mitarbeiter haben schon auf vom Kunden ‚Bodidas‘ vergebenen Projekten gearbeitet?“• In SQL:

SELECT Kunde.Firmenname, Mitarbeiter.Nachname

FROM Kunde, Projekt, Projektbearbeitung, Mitarbeiter

WHERE Kunde.Firmenname Like "Bodidas*"AND Kunde.Kundennummer = Projekt.KundenNrAND Projekt.Projektnummer =

Projektbearbeitung.ProjektnummerAND Mitarbeiter.MitarbeiterNr =

Projektbearbeitung.MitarbeiterNr;

Page 27: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 27

WirtschaftsinformatikBerechnete Felder

• „Wie hoch ist der Projektgewinn (= Vergütung - Projektkosten) der Projekte?“

Page 28: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 28

WirtschaftsinformatikBerechnete Felder

• „Wie hoch ist der Projektgewinn (= Vergütung - Projektkosten) der Projekte?“

• In SQL:

SELECT Projektnummer, Vergütung-Projektkosten AS Projektgewinn

FROM Projekt;

Page 29: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 29

Wirtschaftsinformatik

Funktionen: Auswertungenüber alle Datensätze

• Berechnungen über mehrere Attributwerte eines Attributs• Bezieht sich entweder auf eine gesamte Tabelle oder auf eine Gruppe von

Datensätzen• Es gibt folgende Funktionen:

– Summe, Mittelwert, Minimum, Maximum, Anzahl• Bsp.: „Wieviele Projekte gibt es insgesamt?“• In SQL:

SELECT COUNT (Projektnummer) AS [Anzahl von Projektnummer]

FROM Projekt;

Page 30: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 30

Wirtschaftsinformatik

Funktionen: Auswertungen über eine Gruppe von Datensätzen

„Anzahl der pro Fachgebiet durchgeführten Projekte.“

SELECT Fachgebiet, Count(Projektnummer) AS [Anzahl von Projektnummer]

FROM ProjektGROUP BY Fachgebiet;

ErgebnisFachgebiet Anzahl von Projektnummer

Datenbanken 3

Groupware 4

Internet 4

Intranet 5

Page 31: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 31

Wirtschaftsinformatik

Suche in einer Abfrage mit variablem Suchwert

SELECT MitarbeiterNr, Nachname, Vorname

FROM MITARBEITER

WHERE Nachname LIKE [Suchen nach welchem Namen?];

Page 32: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 32

WirtschaftsinformatikGrundstruktur der SQL-AbfrageSELECT [ DISTINCT ] { * | Attributliste | mathematische Ausdrücke} [ AS

Bezeichner ]

FROM Tabellenliste [ AS Bezeichner ]

[ WHERE Bedingungen ]

[ GROUP BY Attributliste ] [ HAVING Bedingungen ]

[ ORDER BY Attributliste ] [ ASC | DESC ] ;

• Mit SELECT kann angegeben werden, welche Attribute angezeigt werden sollen und wie diese allenfalls in Berechnungen und Funktionen einzusetzen sind. Falls DISTINCT verwendet wird, werden mehrfach auftretende, identische Datensätze nur einmal angezeigt.

• Mit FROM wird angegeben, aus welchen Tabellen Datensätze abgefragt bzw. zu neuen Datensätzen kombiniert werden.

• Mit WHERE wird angegeben, welche Bedingungen ein Datensatz erfüllen muss, damit er weiterverarbeitet wird.

• Mit GROUP BY können Datensätze zu Gruppen zusammengefasst und mit speziellen Gruppenfunktionen weiterverarbeitet werden.

• HAVING gibt an, welche Bedingungen eine Gruppe aus Datensätzen erfüllen muss, damit sie weiterverwendet wird.

• Mit ORDER BY können die resultierenden Datensätze vor der Ausgabe nach bestimmten Attributen aufsteigend (ASC für "ascending") bzw. absteigend (DESC für "descending") sortiert werden.

Page 33: Wirtschaftsinformatik SQL/QBE1 Abfragen mit QBE und SQL Wirtschaftsinformatik II

SQL/QBE 33

WirtschaftsinformatikQuellen

• Quelle der Beispiele: Jaros-Sturhahn, A.; Schachtner, K: Business Computing mit MS-Office und Internet, Springer 1999

• Steiner, René: Grundkurs Relationale Datenbanken, Vieweg, 2003