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