Grundlagen SQL (Structured Query Language) Einführung in die

Werbung
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Grundlagen SQL (Structured Query Language)
Agenda
Abfragesprachen
Grundlagen SQL
(Structured Query Language)
Die Datenbanksprache SQL
Abfragen mit SELECT
Einführung in die Wirtschaftsinformatik
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
Operatoren und Ausdrücke
Teil 10
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 1-2
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Grundlagen SQL (Structured Query Language)
Abfragesprachen
Zugriffsmethoden und Sprachen
Softwaresystem - DBMS
Steuert, organisiert und verwaltet Datenbank
Geeignete Sprachmittel für Datenbankzugriffe
Sprache für Spezifikation von Datentypen und physischen Datenstrukturen
(data definition language)
Sprache für Formulierung von Anfragen und Änderungsoperationen
(query languages)
Abfragesprachen
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 3-4
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Abfragesprachen
Abfragesprachen
Imperative Programmiersprachen
Deklarative Sprachen
Prozedurale Sprachen
Problemorientiert
Befehl1
Imperatives Prinzip - Programm als Folge von Befehlen,
Befehl2
Befehl5
Ausführung im Rechner in vorgegebener Reihenfolge
Befehl3
Explizite Steuerung <-> Implizite Logik
Befehl4
Deklarative/Deskriptive Sprachen
Beschreibend (deklarativ) - beschreibt Informationen,
nicht aber die Darstellung
Gib mir alle Daten über die
männlichen Mitarbeiter, die
Deskriptive Sprache - Vereinfachung des
älter als 50 Jahre sind!
Programmierprozesses
Explizite Logik <-> Implizite Steuerung
Prozedurale Programmierung
Aufbau von Computerprogrammen aus kleineren
int width = 640 ;
Teilproblemen (Aufgaben, Prozeduren)
if (cond1 = cond2)
if (x < y < z)
Kleinster und unteilbarer Schritt bei diesem Verfahren do anything ;
die Anweisung
else ...
Deklarative Programmierung
Beschreibung über Anfragen, welche Informationen
SELECT abt_nr, position,
gesucht werden
SUM(gehalt) Gehaltssumme
FROM mitarbeiter
Eine Anweisung beinhaltet eine Anfrage
GROUP BY abt_nr, position
ORDER BY abt_nr;
Jeder Programmalgorithmus besteht aus Logik und Steuerung.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 5-6
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Abfragesprachen
Abfragesprachen
Formulierungsmerkmale
Der Weg zur Datenbank (Abfragen)
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
ER-Diagramme
ERModellierung
Relationale
Modellierung
Schemata für Tabellen
Normalisierung
Deklarative Formulierung (4. Generation, SQL)
Wähle Spalte aus, wähle Tabelle aus, lege
Bedingung(en) fest
Beispiel:
Schemata für Tabellen
Abfrage
SELECT Name FROM Personal WHERE Geschlecht="männlich"
gewünschte Daten --> Darstellung
(tabellarisch, in Formularform, ...)
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 7-8
Tabellen
Realisierung
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Abfragesprachen
Grundlagen SQL (Structured Query Language)
Ablauf von Abfragen
Abfragen liefern die gewünschten Daten in Tabellenstruktur
Ausgabe - Kombination von Datensätzen und Spalten
Tabelle 1
Tabelle 2
Tabelle 3
Tabelle 4
Spezifikation der Daten
Die Datenbanksprache SQL
Abfrageschema
Abfragesystem
Tabelle
Benutzer
Abfragen liefern
eine Tabelle
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 9-10
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Die Datenbanksprache SQL
Die Datenbanksprache SQL
Grundlegende Merkmale von SQL
Sprachelemente - Zuordnung zu Kategorien
Umfasst Befehle zur Definition, Manipulation und Abfrage von
Daten
Ermöglicht Benutzer, Online-Abfragen über ein Programm direkt am
Bildschirm einzugeben --> Ergebnis der Abfrage liegt sofort vor
"Konstruktionsteile"
Tabellen
<- Anfragen ->
SELECT Datenabfrage (DML)
Auswahl Datensätze und Spalten, Verknüpfung von Tabellen
Beispiel: SELECT <Spalte(n)> FROM <Tabelle(n)>
Befehle zur Datenmanipulation (DML)
Einfügen, Ändern, Löschen in Tabellen
Beispiel: INSERT INTO <Tabelle> <Merkmale> VALUES <Werte>
Sichten
Befehle zur Definition des Datenbankschemas (DDL)
PLZ
Ort
03122 Riesa
15788 Zossen
51270 KleinGerau
10530 Berlin
22800 Sieversen
U
NE
Tabelle
SQL
Erzeugen, Ändern, Löschen von Tabellen
Beispiel: CREATE TABLE tabname
Befehle zur Zugriffssteuerung (DCL)
Erzeugen, Ändern, Löschen von Benutzerrechten
Beispiel: GRANT <Funktion(en)> ON <Tabelle> TO <Nutzer>
Formular
SQL ist die Standardsprache relationaler Datenbanksysteme.
Die wesentlichste Kategorie sind Abfragen mit SELECT.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 11-12
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Die Datenbanksprache SQL
Die Datenbanksprache SQL
Abfragen und Datenmerkmale
Wertebereiche
Ergebnisse von Abfragen - Ausgabe von Spalten und Zeilen
Numerische Werte
Attribute - Spaltenorientierung
Attributausprägung - Konkrete Werte von Attributen einzelner Entities
Domäne - Wertebereiche von Attributen
Ganze Zahlen (in dezimalem oder hexadezimalem Format)
Fließkommazahlen (Ziffernfolge - Dezimalpunkt - Ziffernfolge)
Wissenschaftliche Notation (Darstellung von Exponentialzahlen)
Feld - Kreuzungspunkt von Spalte und Zeile
Zeichenkettenwerte
Inhalt - Wert eines Attributs eines Entities
Wertevorrat durch Wertebereich festgelegt
Wertebereich - numerischer, alphanumerischer, Datums-/Uhrzeit-,
logischer (wahr, falsch) Datentyp
Alphanumerische Zeichen (in Hochkommata bzw. Anführungszeichen
gesetzt)
Sonderzeichen (nicht druckbare Zeichen, Steuerzeichen)
Datums- und Zeitwerte
Datum (z.B. im Format 'Jahr-Monat-Tag')
Uhrzeit (Stunden-Minuten-Sekunden
NULL-Wert
Typloser Wert ('kein Wert' oder 'unbekannter Wert' in einem Feld)
Jedes einfache Attribut eines Entitytyps ist mit einer
Wertemenge verknüpft.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Elmasri, 2002, S. 72
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 13-14
Elmasri, 2002, S. 227f
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Die Datenbanksprache SQL
Die Datenbanksprache SQL
Spaltentypen (Attributtypen)
Spaltentypen - Optionen und Sondertypen
Feldtypen - Numerische Werte
Zusätzlich zum Feldtyp sind als Optionen möglich:
Ganze Zahlen - Number (Oracle), INTEGER, SMALLINT (MySQL)
Reelle Zahlen - FLOAT, REAL
'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")
Feldtypen - Zeichenketten (Strings), alphanumerische Werte
CHAR(Länge), VARCHAR2(Länge) - Strings mit max. Zeichenlänge
Feldtyp - Datums- und Uhrzeitwert
Große Datenobjekte - Grafiken, Textmengen
DATE: Feldtyp für Datumsanzeige "2000-04-03"
TIME: spezieller Feldtyp zur Anzeige der Zeit
Große, unstrukturierte Objekte (BLOB - Binary Large Objects)
Große Zeichendatentypen (CLOB - Character Large Objects)
Feldtyp - Logischer Wert
BOOLEAN: kann nur Werte true oder false annehmen
Die vorherrschenden Datentypen in Attributen sind numerische
und Zeichenkettenwerte.
In modernen Datenbanken können auch beliebige multimediale
Objekte gespeichert werden.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 15-16
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Die Datenbanksprache SQL
Die Datenbanksprache SQL
Attribute des Entitytyps Artikel
SQL - deklarative Abfragesprache
Beispiel aus einer Artikelstammdatei
Nutzer legt nur Bedingungen für die gesuchten Daten fest:
SELECT attribut
Artikelnummer Artikelname Hersteller Artikelgruppe Lagerort
auto_
increment
Text
Text
Text
50
not_null
35
not_null
8
not_null
Feld 1
Feld 2
Feld 3
Feld 4
Zahl
Menge
Nettopreis
Zahl
Zahl
welches Merkmal
soll ausgewählt
werden
Integer Integer Decimal (5,2)
not_null not_null
Feld 5
Feld 6
FROM tabelle
aus welcher
Tabelle stammt
das Merkmal
WHERE attribut = ’Angela Kohl’
nach welchen
Auswahlbedingungen
soll gesucht werden
Häufig leichtere Formulierungen --> Nutzer kann unkompliziert
eine effiziente Auswertung realisieren
Viel kürzer als imperative Programmierung --> billigere
Programmentwicklung
Schnittstellen zu höheren Programmiersprachen vorhanden
Feld 7
Die Attributwerte des Primärschlüssels dürfen nie NULL sein!
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 17-18
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Grundlagen SQL (Structured Query Language)
Abfragen mit SELECT
Betrachtung der SQL-Anweisungen am Beispiel
Ausgangssituation: Datenbank "WIProM AG" für die Beispiele in SQL
mitarbeiter
PERS_NR NAME VORNAME A* LEITER POSITION G* EINSTELLUNG GEHALT ABT_NR PROJ_NR P*
projekt
Abfragen mit SELECT
PROJ_NR
PROJ_NAME
PROJ_LEITER
ABT_NAME
BETR_TEIL
abteilung
ABT_NR
betriebsteil
BETR_TEIL
PLZ
BETR_ORT
STRASSE
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 19-20
A* ~ ANREDE
G* ~ GEBURTSTAG
P* ~ POSITION
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Abfragen mit SELECT
Abfragen mit SELECT
SQL-Anweisungen erstellen
Default-Einstellungen und Ausdrücke
Keine Unterscheidung zwischen Groß- und Kleinschreibung in
SQL-Schlüsselworten (Anweisungen)
Semikolon - Abschluss einer Anweisung
Keine Abkürzung oder Trennung von Schlüsselwörtern
Anweisungen können aus einer oder mehreren Zeilen bestehen
Default-Ausrichtung für Überschriften: zentriert
ABT_NR
ABT_NAME
BETR_TEIL
Default-Schreibung für Überschriftenanzeige: Großschreibung
PROJ_NR
Sinnvoll: Setzen jeder Klausel in eine eigene Zeile
Einrückungen verbessern die Lesbarkeit
PROJ_NAME
PROJ_LEITER
Ausdrücke und Klammern
SCHLÜSSELWORT attribut, ...
SCHLÜSSELWORT tabelle, ...
SCHLÜSSELWORT bedingung, ...;
Eckige Klammern ("[", "]") - optional auswählbare Ausdrücke
Geschweifte Klammern ("{", "}") - alternative Ausdrücke stehen
untereinander
Senkrechte Striche ("|") - trennen alternative Ausdrücke bzw. Werte
Nur die Feldinhalte sind casesensitiv.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 21-22
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Abfragen mit SELECT
Abfragen mit SELECT
Anweisung SELECT - Projektion
Anweisung SELECT - Selektion
Projektion - Spaltenauswahl
Selektion - Zeilenauswahl
Auswahl bestimmter Attribute (Spalten) einer Tabelle
Anzeige der Werte aller Entities
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 Projektion immer
spaltenweise.
Die Auswahl von Daten erfolgt bei der Selektion immer
zeilenweise.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 23-24
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Abfragen mit SELECT
Abfragen mit SELECT
Anweisung SELECT - Tabellen verknüpfen
Auswahl aller Spalten - Das Sternchen *
Join - Kreuzprodukt mehrerer Tabellen
Kombination jedes Tupels einer Relation mit jedem Tupel einer
anderen Relation
SELECT *
FROM mitarbeiter;
PERS_NR
NAME
VORNAME ANREDE
101001 Schulze
Dieter
H
101002 Lange
Bruno
H
101003 Metz
Gisela
F
101004 Kettler
Gunter
H
101005 Beyerke
Elke
F
…..
…..
…..
…..
101046 Adam
Robert
H
101047 Fuchs
Erna
F
101048 Fritzsche Frank
H
101049 Junge
Willi
H
101050 Altermann Gustav
H
LEITER
POSITION
GEBURTSTAG
101002 Assistent
02.10.1965
Geschäftsführer
04.07.1945
101002 Sekretärin
12.08.1954
101043 Abteilungsleiter
13.01.1948
101046 Buchhalterin
09.03.1948
…..
…..
…..
101051 Programmierer
27.03.1962
101049 Sekretärin
22.09.1957
101047 Monteur
26.06.1950
101040 Auszubildender
22.08.1978
101050 Praktikant
18.05.1974
ABT_NR PROJ_NR
10
10
10
90
130
80
80
80
90
110
90
130
90
130
90
Die Auswahl von Daten erfolgt über eine Verknüpfung mehrerer
Tabellen als Kreuzprodukt ihrer Spalten.
Mit Auswahl aller Spalten wird die gesamte Tabelle angezeigt.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 25-26
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Abfragen mit SELECT
Abfragen mit SELECT
Varianten der Spaltenauswahl
Einschränkung der Spaltenauswahl
Festlegen aller zu projizierenden Spalten
Auswahl der Spalten über ausgewählte Attribute oder Funktionen
SELECT attribut,...
attribut:= ausdruck [alias]
spalte
tabelle.spalte
ausdruck:=
...
SELECT attribut,...
attribut:=
*
tabelle.*
FROM tabelle
weitere Varianten, z.B. Funktionsaufruf
FROM tabelle
Keine Einschränkung - Ausgabe aller Spalten einer Tabelle
Beispiele:
Beispiele:
SELECT pers_nr, abt_nr FROM abteilung;
SELECT mitarbeiter.pers_nr, mitarbeiter.abt_nr FROM mitarbeiter;
SELECT * FROM abteilung;
SELECT mitarbeiter.* FROM mitarbeiter;
Die Angabe von Tabellen- und Spaltenname erfordert eine
Trennung mittels Punkt zwischen beiden.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 27-28
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Abfragen mit SELECT
Abfragen mit SELECT
Spaltenauswahl über Attribut- und Tabellennamen
Auswahl bestimmter Spalten
Präzise Formulierung mit Angabe des Tabellennamens
SELECT pers_nr, name, vorname, abt_nr
FROM mitarbeiter;
Spaltenauswahl über korrekte Angabe der Spaltennamen
SELECT attribut1, attribut2,...
attributN:= ausdruck [alias]
ausdruck:=
PERS_NR
101001
101002
101003
101004
101005
…….
101046
101047
101048
101049
101050
tabelleN.spalte
FROM tabelle1, ..;
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;
NAME
Schulze
Lange
Metz
Kettler
Beyerke
…….
Adam
Fuchs
Fritzsche
Junge
Altermann
VORNAME
Dieter
Bruno
Gisela
Gunter
Elke
…….
Robert
Erna
Frank
Willi
Gustav
ABT_NR
10
10
10
90
80
…….
90
90
40
40
50
Werden die Spaltennamen falsch geschrieben, erfolgt keine
Ausgabe von Daten.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 29-30
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Abfragen mit SELECT
Abfragen mit SELECT
Spalten-Aliasnamen
Spaltenreihenfolge und Alias
Umbenennung von Spaltenüberschriften
Sinnvoll bei Berechnungen - Spaltentitel
Angabe direkt hinter Spaltennamen
Optionale Angabe zwischen Spalten- und Aliasnamen - das
Schlüsselwort AS
Bei Angabe von Leer- oder Sonderzeichen oder Groß-/
Kleinschreibung - doppelte Anführungszeichen (" ")
Modifizierte Spaltenauswahl
SELECT pers_nr personalnr, abt_nr abteilungsnr, name
FROM mitarbeiter;
PERSONALNR
101001
101002
101003
101004
101005
…….
101046
101047
101048
101049
101050
Standardmäßig werden Aliasnamen in Überschriften in
Großbuchstaben angezeigt.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
ABTEILUNGSNR
10
10
10
90
80
…….
90
90
40
40
50
NAME
Schulze
Lange
Metz
Kettler
Beyerke
…….
Adam
Fuchs
Fritzsche
Junge
Altermann
Die Reihenfolge und Spaltennamen können je nach Bedarf
modifiziert werden.
Greenberg 2002, S. 66
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 31-32
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Abfragen mit SELECT
Abfragen mit SELECT
Angabe von Spalten-Aliasnamen
Alias mit Groß-/Kleinschreibung
SELECT name AS Familienname, gehalt*12*provision AS
Jahresgehalt
FROM mitarbeiter;
FAMILIENNAME
Alternative bei Groß-/Kleinschreibung über Anführungszeichen ""
Notwendig bei Auftreten von Leerzeichen im Alias
SELECT pers_nr AS "Personalnummer", abt_nr, name AS
"Familienname"
FROM mitarbeiter;
JAHRESGEHALT
Schulze
…..
…..
41400
41400
Probst
Gast
Personalnummer
101001
…….
SELECT pers_nr Personalnr, abt_nr Abteilungsnr, name
FROM mitarbeiter;
PERSONALNR
ABTEILUNGSNR
101001
…….
SELECT name "Familienname", gehalt*12*provision
"jährliches Einkommen"
FROM mitarbeiter;
NAME
10 Schulze
…….
ABT_NR
Familienname
10 Schulze
…….
…….
…….
Familienname
jährliches Einkommen
Schulze
…..
Probst
Gast
Das Schlüsselwort AS weist explizit auf den Alias hin.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Greenberg 2002, S. 67
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 33-34
…..
41400
41400
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Grundlagen SQL (Structured Query Language)
Operatoren und Ausdrücke
Arithmetische Ausdrücke
Erstellen von Ausdrücken mit Hilfe arithmetischer Operatoren
Zulässig in Werten sind nur Daten vom Typ NUMBER und DATE
Operator
+
*
/
Operatoren und Ausdrücke
Beschreibung
Addieren
Subtrahieren
Multiplizieren
Dividieren
SELECT attribut, attribut * Wert
FROM tabelle;
Operatoren können in jeder Klausel einer SQL-Anweisung mit
Ausnahme der FROM-Klausel verwendet werden.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 35-36
Greenberg 2002, S. 59
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Operatoren und Ausdrücke
Operatoren und Ausdrücke
Arithmetische Operatoren
Operatorpriorität
Zusätzliche Spalte mit Berechnungsergebnis
Existiert nicht in der Tabelle "mitarbeiter"
Punkt- vor Strichrechnung
Multiplikationen und Divisionen vor Additionen und Subtraktionen
Auswertung von Operatoren derselben Priorität von links nach
rechts
Einsatz von Klammern
SELECT name, gehalt, gehalt * 1.02 Gehaltserhöhung
FROM mitarbeiter;
NAME
Schulze
Lange
Metz
Kettler
Beyerke
…..
Adam
Fuchs
Fritzsche
Junge
Altermann
GEHALT
4500
7600
4000
6500
4800
…..
4100
3600
3750
900
1200
GEHALTSERHÖHUNG
4590
7752
4080
6630
4896
…..
4182
3672
3825
918
1224
Auswertungen erhalten Prioritäten
Anweisungen sind besser lesbar
* / + a + b * c <> (a + b) * c
Zur besseren Lesbarkeit können Leerzeichen vor und nach dem
arithmetischen Operator eingefügt werden.
Die Prioritätsregel für Operatoren entspricht der mathematischen
Regel: "Punkt- vor Strichrechnung".
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 37-38
Greenberg 2002, S. 61
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Operatoren und Ausdrücke
Operatoren und Ausdrücke
Berechnung mit priorisierten Operatoren
NULL-Werte in Feldern
Berechnung des Jahresgehaltes plus Einmalzahlung
NULL-Wert steht für nicht verfügbaren, nicht zugewiesenen,
unbekannten oder nicht anwendbaren Wert
NULL-Wert ist nicht dasselbe wie 0 (Zahl Null) oder Leerzeichen
SELECT name, gehalt, 50 + gehalt * 12
FROM mitarbeiter;
oder alternativ
SELECT name, proj_nr
FROM mitarbeiter;
SELECT name, gehalt, 50 + (gehalt * 12)
FROM mitarbeiter;
NAME
Schulze
Lange
Metz
Kettler
Beyerke
…..
Adam
Fuchs
Fritzsche
Junge
Altermann
GEHALT
4500
7600
4000
6500
4800
…..
4100
3600
3750
900
1200
NAME
Schulze
Lange
Metz
Kettler
Beyerke
…..
Adam
Fuchs
Fritzsche
Junge
Altermann
50+GEHALT*12
54050
91250
48050
78050
57650
…..
49250
43250
45050
10850
14450
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
PROJ_NR
130
…..
140
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 39-40
Leerwerte:
Felder ohne
Inhalt
Greenberg 2002, S. 64
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Operatoren und Ausdrücke
Operatoren und Ausdrücke
NULL-Werte in arithmetischen Ausdrücken
Verkettungsoperator
Berechnung des Jahreseinkommens aus Bestandteilen Gehalt und
Provision
Verkettet Spalten oder Zeichenfolgen mit anderen Spalten
Darstellung durch zwei senkrechte Striche (||)
Erstellt Ergebnisspalte mit einem Zeichenausdruck
Ausgabe der Zeichenkette ohne Leerzeichen zwischen verketteten
Elementen
SELECT name, gehalt*12*provision
FROM mitarbeiter;
NAME
GEHALT*12*PROVISION
Schulze
Lange
Metz
Kettler
…..
Probst
Gast
Engel
…..
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
…..
41400
41400
43560
…..
Feld PROVISION ist
leer --> Ergebnis ist
nicht gleich 0,
sondern leer (NULL)
SELECT spalte1 || spalte2 [...|| spalte_n]
FROM tabelle;
Hinweis: Im weiteren Verlauf wird statt Attribut
synonym der Begriff Spalte genutzt.
Greenberg 2002, S. 65
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 41-42
Greenberg 2002, S. 68
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Operatoren und Ausdrücke
Operatoren und Ausdrücke
Text über Verkettungsoperatoren verbinden
Literale Zeichenfolgen
Zeichen, Zahl oder Datum in der SELECT-Liste
Literale Datums- und Zeichenwerte stehen in Hochkommata
Ausgabe jeder Zeichenfolge einmal für jede zurückgegebene Zeile
SELECT anrede || vorname || name AS "Anrede"
FROM mitarbeiter;
NAME
Schulze
Lange
Metz
Kettler
Beyerke
Grauer
Engel
Adler
Göbel
VORNAME
Dieter
Bruno
Gisela
Gunter
Elke
Hertha
Lothar
Günther
Dieter
ANREDE
H
H
F
H
F
F
H
H
H
Die Spalten können in beliebiger
Reihenfolge verkettet werden
Anrede
HDieterSchulze
HBrunoLange
FGiselaMetz
HGunterKettler
FElkeBeyerke
FHerthaGrauer
HLotharEngel
HGüntherAdler
HDieterGöbel
SELECT spalte1 || 'zeichen'|'datum'|zahl || spalte2
[...|| spalte_n]
FROM tabelle;
Verkettungsmöglichkeiten zwischen
Spalten entweder über Zeichen oder
Datumswert oder numerischen Wert
Ergebnis liefert noch keine
befriedigende Ausgabe
Das Schlüsselwort AS vor dem Aliasnamen verbessert die
Lesbarkeit der SELECT-Klausel.
Literale gestalten Spaltenüberschriften in besser lesbarer Form.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 43-44
Greenberg 2002, S. 70
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Operatoren und Ausdrücke
Operatoren und Ausdrücke
Literale und Lesbarkeit von Felddaten
Sprachelemente - Daten abfragen (SELECT)
Vollständige Form (Grundgerüst) einer SELECT-Anweisung:
SELECT anrede || '. ' || name ' ist beschäftigt als '
|| position AS "Beschäftigtenliste"
FROM mitarbeiter;
SELECT [ DISTINCT ]
attribut, ...
FROM tabelle, ...
[ WHERE bedingung, ...]
[ GROUP BY attributname, ...]
[ ORDER BY attributname, ...]
[ INTO TEMP tabname]
Beschäftigtenliste
H. Schulze ist beschäftigt als Assistent
H. Lange ist beschäftigt als Geschäftsführer
F. Metz ist beschäftigt als Sekretärin
H. Kettler ist beschäftigt als Abteilungsleiter
F. Beyerke ist beschäftigt als Buchhalterin
F. Grauer ist beschäftigt als Abteilungsleiterin
H. Engel ist beschäftigt als Buchhalter
H. Adler ist beschäftigt als Systemanalytiker
H. Göbel ist beschäftigt als Systemanalytiker
SELECT ......... WAS (Auswahl verwendeter Attribute)
DISTINCT ..... Ignoriert Duplikate von Attributwerten
FROM ........... WOHER (aus den Tabellen)
WHERE ........ WOBEI (mit der Bedingung / welche Zeilen)
GROUP BY .. Gruppenbildung von Daten in einer Spalte
ORDER BY ... WIE (Sortierung der Inhalte der Attribute)
INTO TEMP .. TEMPORÄR (Name der neuen temporären Tabelle)
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 45-46
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Operatoren und Ausdrücke
Grundlagen SQL (Structured Query Language)
Zusammenfassung - Projektion
Kontrollfragen
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?
SELECT mitarbeiter.name, mitarbeiter.vorname
Projektion
FROM mitarbeiter
Mit der Projektion werden die Spalten einer Tabelle ausgewählt.
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 47-48
Einführung in die Wirtschaftsinformatik
WS 2008/2009
Grundlagen SQL (Structured Query Language)
Literatur
Heuer, A./Saake, G.: Datenbanken, Konzepte und Sprachen; 2.
Auflage, 1995, Thomson
Elmazri, R./Navathe, S. B.: Grundlagen von Datenbanksystemen; 3.
Auflage, 2002, Addison-Wesley
Greenberg. N./Nathan, P: Professioneller Einstieg in Oracle9i SQL Band 1; 2002, Oracle
c Prof. Dr.-Ing. Norbert Gronau, Dipl.-Ing. Andreas Gäbler, Universität Potsdam
Folien 49-50
Herunterladen