+ All Categories
Home > Documents > Grundlagen SQL (Structured Query Language) Abfragen mit...

Grundlagen SQL (Structured Query Language) Abfragen mit...

Date post: 02-Feb-2019
Category:
Upload: dinhtruc
View: 219 times
Download: 2 times
Share this document with a friend
25
Universität Potsdam Lehrstuhl für Wirtschaftsinformatik und Electronic Government Univ.-Prof. Dr.-Ing. Norbert Gronau August-Bebel-Str. 89 14482 Potsdam Tel. (0331) 977-3379 Fax (0331) 977-3406 http://wi.uni-potsdam.de Grundlagen SQL (Structured Query Language) Teil 10 Einführung in die Wirtschaftsinformatik c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam Agenda Abfragesprachen Die Datenbanksprache SQL Operatoren und Ausdrücke Abfragen mit SELECT Grundlagen SQL (Structured Query Language) Einführung in die Wirtschaftsinformatik WS 2008/2009 Folien 1-2
Transcript
Page 1: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

Universität PotsdamLehrstuhl für Wirtschaftsinformatik

und Electronic GovernmentUniv.-Prof. Dr.-Ing. Norbert Gronau

August-Bebel-Str. 8914482 Potsdam

Tel. (0331) 977-3379Fax (0331) 977-3406

http://wi.uni-potsdam.de

Grundlagen SQL (Structured Query Language)

Teil 10

Einführung in die Wirtschaftsinformatik

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Agenda

Abfragesprachen

Die Datenbanksprache SQL

Operatoren und Ausdrücke

Abfragen mit SELECT

Grundlagen SQL (Structured Query Language)

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 1-2

Page 2: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

Abfragesprachen

Grundlagen SQL (Structured Query Language)

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Zugriffsmethoden und Sprachen

Softwaresystem - DBMSSteuert, organisiert und verwaltet Datenbank

Geeignete Sprachmittel für DatenbankzugriffeSprache für Spezifikation von Datentypen und physischen Datenstrukturen (data definition language)Sprache für Formulierung von Anfragen und Änderungsoperationen (query languages)

Abfragesprachen

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 3-4

Page 3: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Imperative Programmiersprachen

Abfragesprachen

Jeder Programmalgorithmus besteht aus Logik und Steuerung.

Prozedurale SprachenProblemorientiertImperatives Prinzip - Programm als Folge von Befehlen, Ausführung im Rechner in vorgegebener ReihenfolgeExplizite Steuerung <-> Implizite Logik

Prozedurale ProgrammierungAufbau von Computerprogrammen aus kleineren Teilproblemen (Aufgaben, Prozeduren)Kleinster und unteilbarer Schritt bei diesem Verfahren - die Anweisung

Befehl1

Befehl2

Befehl3

Befehl5

Befehl4

int width = 640 ;if (cond1 = cond2)if (x < y < z)do anything ;

else ...

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Deklarative Sprachen

Deklarative/Deskriptive SprachenBeschreibend (deklarativ) - beschreibt Informationen, nicht aber die DarstellungDeskriptive Sprache - Vereinfachung des ProgrammierprozessesExplizite Logik <-> Implizite Steuerung

Deklarative ProgrammierungBeschreibung über Anfragen, welche Informationen gesucht werdenEine Anweisung beinhaltet eine Anfrage

SELECT abt_nr, position, SUM(gehalt) GehaltssummeFROM mitarbeiterGROUP BY abt_nr, positionORDER BY abt_nr;

Gib mir alle Daten über die männlichen Mitarbeiter, die älter als 50 Jahre sind!

Abfragesprachen

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 5-6

Page 4: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Formulierungsmerkmale

Prozedurale Formulierung (3. Generation)(1) Nimm Mitarbeiter aus Tabelle Personal(2) Prüfe, ob männlich(3) Falls JA, notiere Mitarbeiter(4) Prüfe, ob letzter Mitarbeiter(5) Falls NEIN, zurück zu (1); sonst ENDE

Deklarative Formulierung (4. Generation, SQL)Wähle Spalte aus, wähle Tabelle aus, lege Bedingung(en) festBeispiel: SELECT Name FROM Personal WHERE Geschlecht="männlich"

Abfragesprachen

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Der Weg zur Datenbank (Abfragen)

Abfrage Realisierung

Normalisierung

ER-Modellierung

RelationaleModellierung

Tabellen

Schemata für Tabellen

Schemata für Tabellen

ER-Diagramme

gewünschte Daten --> Darstellung (tabellarisch, in Formularform, ...)

Abfragesprachen

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 7-8

Page 5: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Ablauf von Abfragen

Abfragen liefern die gewünschten Daten in TabellenstrukturAusgabe - Kombination von Datensätzen und Spalten

Tabelle 1 Tabelle 4Tabelle 3Tabelle 2

Abfragesystem AbfrageschemaSpezifikation der Daten

Tabelle

Abfragen liefern eine Tabelle

Benutzer

Abfragesprachen

Die Datenbanksprache SQL

Grundlagen SQL (Structured Query Language)

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 9-10

Page 6: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Umfasst Befehle zur Definition, Manipulation und Abfrage von DatenErmöglicht Benutzer, Online-Abfragen über ein Programm direkt am Bildschirm einzugeben --> Ergebnis der Abfrage liegt sofort vor"Konstruktionsteile" Tabellen <- Anfragen -> Sichten

Grundlegende Merkmale von SQL

SQL

PLZ Ort03122 Riesa15788 Zossen51270 KleinGerau10530 Berlin22800 Sieversen

Die Datenbanksprache SQL

SQL ist die Standardsprache relationaler Datenbanksysteme.

Tabelle

Formular

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Sprachelemente - Zuordnung zu Kategorien

Die Datenbanksprache SQL

SELECT Datenabfrage (DML)Auswahl Datensätze und Spalten, Verknüpfung von TabellenBeispiel: SELECT <Spalte(n)> FROM <Tabelle(n)>

Befehle zur Datenmanipulation (DML) Einfügen, Ändern, Löschen in TabellenBeispiel: INSERT INTO <Tabelle> <Merkmale> VALUES <Werte>

Befehle zur Definition des Datenbankschemas (DDL)Erzeugen, Ändern, Löschen von TabellenBeispiel: CREATE TABLE tabname

Befehle zur Zugriffssteuerung (DCL)Erzeugen, Ändern, Löschen von BenutzerrechtenBeispiel: GRANT <Funktion(en)> ON <Tabelle> TO <Nutzer>

Die wesentlichste Kategorie sind Abfragen mit SELECT.

NEU

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 11-12

Page 7: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Abfragen und Datenmerkmale

Ergebnisse von Abfragen - Ausgabe von Spalten und ZeilenAttribute - SpaltenorientierungAttributausprägung - Konkrete Werte von Attributen einzelner EntitiesDomäne - Wertebereiche von Attributen

Feld - Kreuzungspunkt von Spalte und ZeileInhalt - Wert eines Attributs eines EntitiesWertevorrat durch Wertebereich festgelegtWertebereich - numerischer, alphanumerischer, Datums-/Uhrzeit-, logischer (wahr, falsch) Datentyp

Jedes einfache Attribut eines Entitytyps ist mit einer Wertemenge verknüpft.

Elmasri, 2002, S. 72

Die Datenbanksprache SQL

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Wertebereiche

Numerische WerteGanze Zahlen (in dezimalem oder hexadezimalem Format)Fließkommazahlen (Ziffernfolge - Dezimalpunkt - Ziffernfolge)Wissenschaftliche Notation (Darstellung von Exponentialzahlen)

ZeichenkettenwerteAlphanumerische Zeichen (in Hochkommata bzw. Anführungszeichen gesetzt)Sonderzeichen (nicht druckbare Zeichen, Steuerzeichen)

Datums- und ZeitwerteDatum (z.B. im Format 'Jahr-Monat-Tag')Uhrzeit (Stunden-Minuten-Sekunden

NULL-WertTyploser Wert ('kein Wert' oder 'unbekannter Wert' in einem Feld)

Elmasri, 2002, S. 227f

Die Datenbanksprache SQL

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 13-14

Page 8: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Feldtypen - Numerische WerteGanze Zahlen - Number (Oracle), INTEGER, SMALLINT (MySQL)Reelle Zahlen - FLOAT, REAL

Feldtypen - Zeichenketten (Strings), alphanumerische WerteCHAR(Länge), VARCHAR2(Länge) - Strings mit max. Zeichenlänge

Feldtyp - Datums- und UhrzeitwertDATE: Feldtyp für Datumsanzeige "2000-04-03"TIME: spezieller Feldtyp zur Anzeige der Zeit

Feldtyp - Logischer WertBOOLEAN: kann nur Werte true oder false annehmen

Spaltentypen (Attributtypen)

Die vorherrschenden Datentypen in Attributen sind numerische und Zeichenkettenwerte.

Die Datenbanksprache SQL

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Spaltentypen - Optionen und Sondertypen

Zusätzlich zum Feldtyp sind als Optionen möglich:'not null' - das Feld darf nicht leer bleiben'default wert' - wird als Vorgabe genommen'auto_increment' - für Primärschlüsselfelder, Wert wird mit neuem Datensatz automatisch erhöht

primary key - Primärschlüssel ("Es kann nur EINEN geben")

Große Datenobjekte - Grafiken, TextmengenGroße, unstrukturierte Objekte (BLOB - Binary Large Objects)Große Zeichendatentypen (CLOB - Character Large Objects)

In modernen Datenbanken können auch beliebige multimediale Objekte gespeichert werden.

Die Datenbanksprache SQL

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 15-16

Page 9: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Attribute des Entitytyps Artikel

Artikelnummer Artikelname Hersteller Artikelgruppe Lagerort Menge Nettopreis

auto_increment Text Text Text Zahl Zahl Zahl

50 35 8 Integer Integer Decimal (5,2)not_null not_null not_null not_null not_null

Feld 1 Feld 2 Feld 3 Feld 4 Feld 5 Feld 6 Feld 7

Die Attributwerte des Primärschlüssels dürfen nie NULL sein!

Beispiel aus einer Artikelstammdatei

Die Datenbanksprache SQL

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

SQL - deklarative Abfragesprache

welches Merkmal soll ausgewählt

werden

aus welcher Tabelle stammt das Merkmal

nach welchen Auswahlbedingungen soll gesucht werden

Die Datenbanksprache SQL

Nutzer legt nur Bedingungen für die gesuchten Daten fest: SELECT attribut FROM tabelle WHERE attribut = ’Angela Kohl’

Häufig leichtere Formulierungen --> Nutzer kann unkompliziert eine effiziente Auswertung realisierenViel kürzer als imperative Programmierung --> billigere ProgrammentwicklungSchnittstellen zu höheren Programmiersprachen vorhanden

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 17-18

Page 10: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

Abfragen mit SELECT

Grundlagen SQL (Structured Query Language)

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Betrachtung der SQL-Anweisungen am Beispiel

Ausgangssituation: Datenbank "WIProM AG" für die Beispiele in SQL

PERS_NR NAME VORNAME A* LEITER POSITION G* EINSTELLUNG GEHALT ABT_NR PROJ_NR P*

mitarbeiter

ABT_NR ABT_NAME BETR_TEIL

abteilung

PROJ_NR PROJ_NAME PROJ_LEITER

projekt

BETR_TEIL PLZ BETR_ORT STRASSE

betriebsteil

A* ~ ANREDEG* ~ GEBURTSTAGP* ~ POSITION

Abfragen mit SELECT

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 19-20

Page 11: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

SQL-Anweisungen erstellen

Keine Unterscheidung zwischen Groß- und Kleinschreibung in SQL-Schlüsselworten (Anweisungen)Semikolon - Abschluss einer AnweisungKeine Abkürzung oder Trennung von SchlüsselwörternAnweisungen können aus einer oder mehreren Zeilen bestehen

Sinnvoll: Setzen jeder Klausel in eine eigene ZeileEinrückungen verbessern die Lesbarkeit

SCHLÜSSELWORT attribut, ... SCHLÜSSELWORT tabelle, ... SCHLÜSSELWORT bedingung, ...;

Nur die Feldinhalte sind casesensitiv.

Abfragen mit SELECT

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Default-Einstellungen und Ausdrücke

Default-Ausrichtung für Überschriften: zentriert

Default-Schreibung für Überschriftenanzeige: Großschreibung

Ausdrücke und KlammernEckige Klammern ("[", "]") - optional auswählbare AusdrückeGeschweifte Klammern ("{", "}") - alternative Ausdrücke stehen untereinanderSenkrechte Striche ("|") - trennen alternative Ausdrücke bzw. Werte

ABT_NR ABT_NAME BETR_TEIL

PROJ_NR PROJ_NAME PROJ_LEITER

Abfragen mit SELECT

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 21-22

Page 12: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Anweisung SELECT - Projektion

Projektion - Spaltenauswahl

Auswahl bestimmter Attribute (Spalten) einer TabelleAnzeige der Werte aller Entities

Abfragen mit SELECT

Die Auswahl von Daten erfolgt bei der Projektion immer spaltenweise.

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Anweisung SELECT - Selektion

Selektion - Zeilenauswahl

Auswahl bestimmter Tupel (Zeilen, Datensätze) einer Tabelle Anzeige aller Spalten (Artikel) der ausgewählten Entities entsprechend einer Auswahlbedingung

Bezug auf Attributausprägungen

Die Auswahl von Daten erfolgt bei der Selektion immer zeilenweise.

Abfragen mit SELECT

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 23-24

Page 13: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Anweisung SELECT - Tabellen verknüpfen

Join - Kreuzprodukt mehrerer TabellenKombination jedes Tupels einer Relation mit jedem Tupel einer anderen Relation

Die Auswahl von Daten erfolgt über eine Verknüpfung mehrerer Tabellen als Kreuzprodukt ihrer Spalten.

Abfragen mit SELECT

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Auswahl aller Spalten - Das Sternchen *

Mit Auswahl aller Spalten wird die gesamte Tabelle angezeigt.

SELECT *FROM mitarbeiter;

PERS_NR NAME VORNAME ANREDE LEITER POSITION GEBURTSTAG ABT_NR PROJ_NR101001Schulze Dieter H 101002Assistent 02.10.1965 10101002Lange Bruno H Geschäftsführer 04.07.1945 10101003Metz Gisela F 101002Sekretärin 12.08.1954 10101004Kettler Gunter H 101043Abteilungsleiter 13.01.1948 90 130101005Beyerke Elke F 101046Buchhalterin 09.03.1948 80

….. ….. ….. ….. ….. ….. ….. 80101046Adam Robert H 101051Programmierer 27.03.1962 80101047Fuchs Erna F 101049Sekretärin 22.09.1957 90 110101048Fritzsche Frank H 101047Monteur 26.06.1950 90 130101049Junge Willi H 101040Auszubildender 22.08.1978 90 130101050Altermann Gustav H 101050Praktikant 18.05.1974 90

Abfragen mit SELECT

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 25-26

Page 14: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Festlegen aller zu projizierenden Spalten

Keine Einschränkung - Ausgabe aller Spalten einer TabelleBeispiele:SELECT * FROM abteilung;SELECT mitarbeiter.* FROM mitarbeiter;

SELECT attribut,...

attribut:=

FROM tabelle

Varianten der Spaltenauswahl

*tabelle.*

Die Angabe von Tabellen- und Spaltenname erfordert eine Trennung mittels Punkt zwischen beiden.

Abfragen mit SELECT

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Auswahl der Spalten über ausgewählte Attribute oder Funktionen

Beispiele:SELECT pers_nr, abt_nr FROM abteilung;SELECT mitarbeiter.pers_nr, mitarbeiter.abt_nr FROM mitarbeiter;

SELECT attribut,... attribut:= ausdruck [alias]

ausdruck:=

FROM tabelle

Einschränkung der Spaltenauswahl

spalte tabelle.spalte ...weitere Varianten, z.B. Funktionsaufruf

Abfragen mit SELECT

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 27-28

Page 15: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Präzise Formulierung mit Angabe des Tabellennamens

Beispiele: SELECT name, vorname FROM mitarbeiter;SELECT mitarbeiter.name, mitarbeiter.vorname FROM mitarbeiter;

SELECT abt_nr, abt_name FROM abteilung;SELECT abteilung.abt_nr, abteilung.abt_name FROM abteilung;

Spaltenauswahl über Attribut- und Tabellennamen

SELECT attribut1, attribut2,...

attributN:= ausdruck [alias]

ausdruck:=

FROM tabelle1, ..;

tabelleN.spalte

Abfragen mit SELECT

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Auswahl bestimmter Spalten

SELECT pers_nr, name, vorname, abt_nrFROM mitarbeiter;

PERS_NR NAME VORNAME ABT_NR 101001 Schulze Dieter 10101002 Lange Bruno 10101003 Metz Gisela 10101004 Kettler Gunter 90101005 Beyerke Elke 80

……. ……. ……. …….101046 Adam Robert 90101047 Fuchs Erna 90101048 Fritzsche Frank 40101049 Junge Willi 40101050 Altermann Gustav 50

Werden die Spaltennamen falsch geschrieben, erfolgt keine Ausgabe von Daten.

Spaltenauswahl über korrekte Angabe der Spaltennamen

Abfragen mit SELECT

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 29-30

Page 16: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Spalten-Aliasnamen

Umbenennung von SpaltenüberschriftenSinnvoll bei Berechnungen - SpaltentitelAngabe direkt hinter SpaltennamenOptionale Angabe zwischen Spalten- und Aliasnamen - das Schlüsselwort ASBei Angabe von Leer- oder Sonderzeichen oder Groß-/ Kleinschreibung - doppelte Anführungszeichen (" ")

Standardmäßig werden Aliasnamen in Überschriften in Großbuchstaben angezeigt.

Abfragen mit SELECT

Greenberg 2002, S. 66 c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Spaltenreihenfolge und Alias

SELECT pers_nr personalnr, abt_nr abteilungsnr, name FROM mitarbeiter;

PERSONALNR ABTEILUNGSNR NAME 101001 10 Schulze101002 10 Lange101003 10 Metz101004 90 Kettler101005 80 Beyerke

……. ……. …….101046 90 Adam101047 90 Fuchs101048 40 Fritzsche101049 40 Junge101050 50 Altermann

Modifizierte Spaltenauswahl

Die Reihenfolge und Spaltennamen können je nach Bedarf modifiziert werden.

Abfragen mit SELECT

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 31-32

Page 17: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Angabe von Spalten-Aliasnamen

SELECT name AS Familienname, gehalt*12*provision AS JahresgehaltFROM mitarbeiter;

FAMILIENNAME JAHRESGEHALTSchulze

….. …..Probst 41400Gast 41400

SELECT pers_nr Personalnr, abt_nr Abteilungsnr, nameFROM mitarbeiter;

PERSONALNR ABTEILUNGSNR NAME 101001 10 Schulze

……. ……. …….

Das Schlüsselwort AS weist explizit auf den Alias hin.

Abfragen mit SELECT

Greenberg 2002, S. 67 c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Alias mit Groß-/Kleinschreibung

SELECT pers_nr AS "Personalnummer", abt_nr, name AS "Familienname" FROM mitarbeiter;

Personalnummer ABT_NR Familienname101001 10 Schulze

……. ……. …….

Alternative bei Groß-/Kleinschreibung über Anführungszeichen "" Notwendig bei Auftreten von Leerzeichen im Alias

SELECT name "Familienname", gehalt*12*provision "jährliches Einkommen"FROM mitarbeiter;

Familienname jährliches EinkommenSchulze

….. …..Probst 41400Gast 41400

Abfragen mit SELECT

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 33-34

Page 18: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

Operatoren und Ausdrücke

Grundlagen SQL (Structured Query Language)

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Arithmetische Ausdrücke

Erstellen von Ausdrücken mit Hilfe arithmetischer OperatorenZulässig in Werten sind nur Daten vom Typ NUMBER und DATE

SELECT attribut, attribut * WertFROM tabelle;

Operatoren können in jeder Klausel einer SQL-Anweisung mit Ausnahme der FROM-Klausel verwendet werden.

Operator Beschreibung+ Addieren

- Subtrahieren

* Multiplizieren

/ Dividieren

Operatoren und Ausdrücke

Greenberg 2002, S. 59

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 35-36

Page 19: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Arithmetische Operatoren

SELECT name, gehalt, gehalt * 1.02 GehaltserhöhungFROM mitarbeiter;

Zur besseren Lesbarkeit können Leerzeichen vor und nach dem arithmetischen Operator eingefügt werden.

Zusätzliche Spalte mit BerechnungsergebnisExistiert nicht in der Tabelle "mitarbeiter"

NAME GEHALT GEHALTSERHÖHUNGSchulze 4500 4590Lange 7600 7752Metz 4000 4080Kettler 6500 6630Beyerke 4800 4896

….. ….. …..Adam 4100 4182Fuchs 3600 3672Fritzsche 3750 3825Junge 900 918Altermann 1200 1224

Operatoren und Ausdrücke

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Operatorpriorität

Punkt- vor StrichrechnungMultiplikationen und Divisionen vor Additionen und Subtraktionen

Auswertung von Operatoren derselben Priorität von links nach rechtsEinsatz von Klammern

Auswertungen erhalten PrioritätenAnweisungen sind besser lesbar

* / + -

a + b * c <> (a + b) * c

Die Prioritätsregel für Operatoren entspricht der mathematischen Regel: "Punkt- vor Strichrechnung".

Operatoren und Ausdrücke

Greenberg 2002, S. 61

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 37-38

Page 20: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Berechnung mit priorisierten Operatoren

Berechnung des Jahresgehaltes plus Einmalzahlung

oder alternativ

SELECT name, gehalt, 50 + gehalt * 12FROM mitarbeiter;

SELECT name, gehalt, 50 + (gehalt * 12)FROM mitarbeiter;

NAME GEHALT 50+GEHALT*12Schulze 4500 54050Lange 7600 91250Metz 4000 48050Kettler 6500 78050Beyerke 4800 57650

….. ….. …..Adam 4100 49250Fuchs 3600 43250Fritzsche 3750 45050Junge 900 10850Altermann 1200 14450

Operatoren und Ausdrücke

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

NULL-Werte in Feldern

NULL-Wert steht für nicht verfügbaren, nicht zugewiesenen, unbekannten oder nicht anwendbaren WertNULL-Wert ist nicht dasselbe wie 0 (Zahl Null) oder Leerzeichen

SELECT name, proj_nrFROM mitarbeiter;

NAME PROJ_NRSchulzeLangeMetzKettler 130Beyerke

….. …..Adam 140FuchsFritzscheJungeAltermann

Leerwerte: Felder ohne Inhalt

Operatoren und Ausdrücke

Greenberg 2002, S. 64

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 39-40

Page 21: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

NULL-Werte in arithmetischen Ausdrücken

Berechnung des Jahreseinkommens aus Bestandteilen Gehalt und Provision

SELECT name, gehalt*12*provisionFROM mitarbeiter;

NAME GEHALT*12*PROVISIONSchulzeLangeMetzKettler

….. …..Probst 41400Gast 41400Engel 43560

….. …..

Feld PROVISION ist leer --> Ergebnis ist nicht gleich 0, sondern leer (NULL)

Operatoren und Ausdrücke

Greenberg 2002, S. 65 c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Verkettungsoperator

Verkettet Spalten oder Zeichenfolgen mit anderen SpaltenDarstellung durch zwei senkrechte Striche (||)Erstellt Ergebnisspalte mit einem ZeichenausdruckAusgabe der Zeichenkette ohne Leerzeichen zwischen verketteten Elementen

SELECT spalte1 || spalte2 [...|| spalte_n]FROM tabelle;

Hinweis: Im weiteren Verlauf wird statt Attribut synonym der Begriff Spalte genutzt.

Operatoren und Ausdrücke

Greenberg 2002, S. 68

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 41-42

Page 22: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Text über Verkettungsoperatoren verbinden

Das Schlüsselwort AS vor dem Aliasnamen verbessert die Lesbarkeit der SELECT-Klausel.

SELECT anrede || vorname || name AS "Anrede"FROM mitarbeiter;

AnredeHDieterSchulzeHBrunoLangeFGiselaMetzHGunterKettlerFElkeBeyerkeFHerthaGrauerHLotharEngelHGüntherAdlerHDieterGöbel

NAME VORNAME ANREDESchulze Dieter HLange Bruno HMetz Gisela FKettler Gunter HBeyerke Elke FGrauer Hertha FEngel Lothar HAdler Günther HGöbel Dieter H

Die Spalten können in beliebiger Reihenfolge verkettet werden

Ergebnis liefert noch keine befriedigende Ausgabe

Operatoren und Ausdrücke

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Literale Zeichenfolgen

Zeichen, Zahl oder Datum in der SELECT-ListeLiterale Datums- und Zeichenwerte stehen in HochkommataAusgabe jeder Zeichenfolge einmal für jede zurückgegebene Zeile

SELECT spalte1 || 'zeichen'|'datum'|zahl || spalte2 [...|| spalte_n]FROM tabelle;

Literale gestalten Spaltenüberschriften in besser lesbarer Form.

Verkettungsmöglichkeiten zwischen Spalten entweder über Zeichen oder Datumswert oder numerischen Wert

Operatoren und Ausdrücke

Greenberg 2002, S. 70

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 43-44

Page 23: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

SELECT anrede || '. ' || name ' ist beschäftigt als ' || position AS "Beschäftigtenliste"FROM mitarbeiter;

Beschäftigtenliste H. Schulze ist beschäftigt als AssistentH. Lange ist beschäftigt als GeschäftsführerF. Metz ist beschäftigt als SekretärinH. Kettler ist beschäftigt als AbteilungsleiterF. Beyerke ist beschäftigt als BuchhalterinF. Grauer ist beschäftigt als AbteilungsleiterinH. Engel ist beschäftigt als BuchhalterH. Adler ist beschäftigt als SystemanalytikerH. Göbel ist beschäftigt als Systemanalytiker

Literale und Lesbarkeit von Felddaten

Operatoren und Ausdrücke

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Vollständige Form (Grundgerüst) einer SELECT-Anweisung:

SELECT ......... WAS (Auswahl verwendeter Attribute)DISTINCT ..... Ignoriert Duplikate von AttributwertenFROM ........... WOHER (aus den Tabellen)WHERE ........ WOBEI (mit der Bedingung / welche Zeilen)GROUP BY .. Gruppenbildung von Daten in einer SpalteORDER BY ... WIE (Sortierung der Inhalte der Attribute)INTO TEMP .. TEMPORÄR (Name der neuen temporären Tabelle)

Sprachelemente - Daten abfragen (SELECT)

SELECT [ DISTINCT ] attribut, ... FROM tabelle, ...[ WHERE bedingung, ...][ GROUP BY attributname, ...][ ORDER BY attributname, ...][ INTO TEMP tabname]

Operatoren und Ausdrücke

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 45-46

Page 24: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

SELECT mitarbeiter.name, mitarbeiter.vorname

FROM mitarbeiter

Zusammenfassung - Projektion

Projektion

Mit der Projektion werden die Spalten einer Tabelle ausgewählt.

Operatoren und Ausdrücke

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Wo finden deklarative Sprachen ihre Anwendung?Welche Merkmale besitzt SQL?Welche Aufgaben können mit DML-Operationen realisiert werden?Kann über DML-Sprachelemente ein neuer Datensatz erzeugt werden?Können Daten auch nach bestimmten Merkmalen abgefragt werden?

Kontrollfragen

Grundlagen SQL (Structured Query Language)

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 47-48

Page 25: Grundlagen SQL (Structured Query Language) Abfragen mit …wi.uni-potsdam.de/hp.nsf/0/c056d58a1f8ab271c12574f2005ba927/$FILE... · Einführung in die Wirtschaftsinformatik WS 2008/2009

c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam

Literatur

Heuer, A./Saake, G.: Datenbanken, Konzepte und Sprachen; 2. Auflage, 1995, ThomsonElmazri, R./Navathe, S. B.: Grundlagen von Datenbanksystemen; 3. Auflage, 2002, Addison-WesleyGreenberg. N./Nathan, P: Professioneller Einstieg in Oracle9i SQL - Band 1; 2002, Oracle

Grundlagen SQL (Structured Query Language)

Einführung in die Wirtschaftsinformatik WS 2008/2009

Folien 49-50


Recommended