grundlagen sql (structured query language) abfragen mit...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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