Bauinformatik II Softwareanwendungen 1

Slides:



Advertisements
Ähnliche Präsentationen
ER-Datenmodell und Abfragen in SQL
Advertisements

Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
spezielle Nutzersichten formale Ebene (deskriptive Regeln)
Bauinformatik II Softwareanwendungen 1
Bauinformatik II Softwareanwendungen 1
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Kapitel 3: Das Relationenmodell
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Anfragesprachen – Dipl. Ing. Ulrich Borchert / FH Merseburg 1/7
SQL als Abfragesprache
SQL als Abfragesprache
Auswertung im GTDS fixe Abläufe für Standard-Aufgaben Mamma-Auswertung
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
SQL 2 Order by null Aggregatfunktionen group by Join subselect.
Datenintegrität Referentielle Integrität create table
Einführung Dateisystem <-> Datenbanksystem
Buch S73ff (Informatik I, Oldenbourg-Verlag)
Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann.
2.2 Definition eines Datenbankschemas (SQL-DDL)
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
objekt-relationale Datenbanken
Datenbankentwicklung IV-LK
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Relationale Datenbanken III
Datenbanken?.
Betrieb von Datenbanken Marco Skulschus & Marcus Wiederstein
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
Vorlesung #4 Überführung des ER-Modells in das relationale Modell
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Allgemeines zu Datenbanken
Befehle in SQL Erläuterungen.
(D.h. „Hallo MausFans!“ auf Japanisch).
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Freiwillige Feuerwehr der Stadt Perg
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Relationales Datenmodell und DDL
verstehen planen bearbeiten
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
Vorlesung #5 SQL (Teil 2).
Bauinformatik II Softwareanwendungen 1
RelationentheorieObjektorientierte Datenbanken  AIFB SS Anfragen auf Sammlungen(1/29) OQL besteht aus einer Menge von Anfrageausdrücken, die.
Einführung Dateisystem <-> Datenbanksystem
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
Termin Festlegung Einführung MySQL Runterladen MySQL, Pentaho Design Studio Betrachtung Pentaho
Vordefinierte Datentypen (1)
(Syntax, Strings/Zahlen, Variablen, Arrays)
Datenbank System (DBS) - Warum?
Datenbank für Skriptenverkauf
PHPmyadmin Maya Kindler 6c.
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Create Table, Rechte und Rollen
(Structured Query Language)
 Präsentation transkript:

Bauinformatik II Softwareanwendungen 1 Relationale Datenbanken für Bauingenieurprobleme 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung Fakultät Bauingenieurwesen Institut für Bauinformatik Prof. Dr.-Ing. Raimar J. Scherer http:// cib.bau.tu-dresden.de Ankündigung der Lehrveranstaltung, WS 2007/2008 Bauinformatik II, Softwareanwendungen 1 Datenbanken Gebäude: Nürnberger Str. 31 A, 2. Stock PFLICHTLEHRVERANSTALTUNG Vorlesungen: 14-täglich: Montag, 5. DS, gerade Woche, BEY 81/H Studiengang: Studienabschnitt: Bauingenieurwesen Grundfachstudium (alte Studienordnung) 5. Semester Lehrveranstaltung: Bauinformatik II - Datenbanken Prof. Dr.-Ing. R. J. Scherer Dipl.-Ing. (FH) G. Faschingbauer Kurzfassung: Die Vorlesung vermittelt die theoretischen Grundlagen der Konzipierung, Sicherung und Verwaltung großer Datenbestände in Datenbanken sowie anwendungsbereites Informatik-Wissen für die Erstellung und Nutzung relationaler Datenbanken am Beispiel von MySQL und MS ACCESS. Schwerpunkte: 1. Vorlesung: 15.10.2007 Hierarchische und relationale Datenbanken Relationen, Assoziationen, Kardinalität Generalisierung / Spezialisierung Normalisierungsprozesse Datenbankentwurf Zugriffssprache SQL Statistikfunktionen, Mengenoperationen Übungen (14-täglich), BEY 73 PC-Pool: Übg.-gr. Tag DS Woche 05/5/BIW/ 01 Dienstag 1. DS ungerade 05/5/BIW/ 02 Freitag 1. DS ungerade 05/5/BIW/ 03 Freitag 1. DS gerade 05/5/BIW/ 04 Dienstag 1. DS gerade 05/5/BIW/ 05 Donnerstag 4. DS ungerade 05/5/BIW/ 06 Dienstag 1. DS gerade Beleg: Semesterbegleitend ist ein Beleg zur Konzipierung und zum Anlegen einer relationalen Datenbank in der Datenbanksprache SQL zu erarbeiten. Prüfung: Ansprechpartner: Die Vorlesungsinhalte werden als Teil der schriftlichen Prüfung im Fach Bauinformatik II nach dem 6. Semester geprüft. Prof. Dr.-Ing. R. J. Scherer Raimar.Scherer@cib.bau.tu-dresden.de Dipl.-Ing. (FH) G. Faschingbauer Gerald.Faschingbauer@tu-dresden.de Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung Ziel: Speichern, Verwalten und Selektieren von Daten in strukturierter Form Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung Beispiel: Datenbank-Konzept (Datenmodell) Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung Beispiel: Datenbank-Konzept (Identifikation von Tabellen) Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung Beispiel: Implementierung der Datenbank Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung Beispiel: Instanziierung von Objekten (Speichern von Daten) Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung Anlegen, Speichern und Abrufen ... ... von Daten erfordert eine SPRACHE Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung Die Sprache SQL Die Sprache SQL (Structured Query Language ) hat sich als wichtigste Zugriffssprache und internationale, standardisierte Schnittstelle für Datenbanken entwickelt. Entstehung der Sprache: 1970 von E. F. Codd bei IBM unter dem Namen SEQEL entwickelt 1979 von ORACLE unter dem Namen SQL vorgestellt 1986 erste Nominierung (SQL-1 NORM) 1989 ergänzt (SQL-1 + NORM) 1992 erheblich erweitert (SQL-2 Norm). - 600 Seiten – 1999 zahlreichen Erweiterungen (SQL-3), vor allem in Richtung Objektorientierung - 1300 Seiten - Sie wird gegenwärtig von den meisten Datenbanksystemen wie MySQL, ORACLE, dBase, MS-ACCESS, Sybase, Informix, Ingres, UDS, DB2, Adabas, Foxpro und Parado unterstützt. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung Die Sprache SQL SQL ist eine Sprache der 4. Generation . Sie ist eine nicht-prozedurale Sprache, d. h. es gibt - keine Schleifen - keine Verzweigungen .SQL ist nicht objektorientiert . Es ist eine unvollständige Sprache, es gibt - keine Strukturen wie Unterprogramme - keine Hauptprogramme . SQL benötigt eine Wirtssprache z. B. C++: Aufruf von SQL durch „EXEC SQL“, um ein vollständiges Programm und Transaktion, Prüfalgorithmus etc. zu erstellen - oder mit Batch-File zu arbeiten - oder interaktiv (von Hand) .SQL benötigt eine vollständige relationale Zugriffssprache, d. h. alle 8 Operationen der relationalen Algebra sind vorhanden bzw. darstellbar. Anm.: nur 5 sind unabhängig. Die letzten 3 können aus diesen gebildet werden. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung Die Sprache SQL SQL wird bei den meisten DBMS unterschiedlich umgesetzt, d.h.: die Syntax kann bei jedem DBMS von Standard-SQL abweichen Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL – Schlüsselwörter Die wesentlichen Schlüsselwörter (Befehle, reservierte Wörter, Kommandos) sind: CREATE Erstellen, Anlegen, z. B. Erstellen der Struktur einer Tabelle mit CREATE TABLE SELECT Auflisten des Inhalts (Informationen, Daten) einer Tabelle INSERT Einfügen von Daten in eine Tabelle UPDATE Ändern von Daten einer Tabelle DELETE Löschen von Daten einer Tabelle Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL - Befehle Die Kommandos beginnen stets mit einem Schlüsselwort (CREATE, SELECT, INSERT, UPDATE oder DELETE), dem Angaben des Anwenders über die Datenbanktabelle folgen. Außerdem können weitere Schlüsselwörter mit entsprechenden Angaben folgen. Jeder Befehl wird mit einem Semikolon abgeschlossen. Zwischen den einzelnen Wörtern sind beliebig viele Leerzeichen und Zeilenwechsel möglich. Groß- und Kleinschreibung wird nicht unterschieden, d. h. sie ist ebenfalls beliebig. Für Bezeichnungen wie Attribute, Tabellennamen usw. können nur (Groß- und Klein-) Buchstaben, Ziffern und Unterstrich ( _ ) verwendet werden. Jede Bezeichnung muss mit einem Buchstaben oder Unterstrich beginnen. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL – Syntax Ausdrücke in eckigen Klammern [ ] können auch weggelassen werden. Sind mehrere Angaben durch einen senkrechten Strich | getrennt, darf nur genau eine dieser Angaben verwendet werden. Die hier großgeschriebenen Wörter sind reservierte Wörter und müssen bis auf Groß- und Kleinschreibung genau im Befehl angegeben werden. Die kursiv geschriebenen Bezeichnungen sind wahlfrei. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL – Der Befehl CREATE Syntax: CREATE TABLE Tabellenname ( { Spalte { Datentyp | Gebietsname } [ Spaltenbedingung [ . . . ] ] | Tabellenbedingung } [ , . . . ] ) Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL - Erstellen der Struktur einer Tabelle mit CREATE einfache Grundform: CREATE TABLE Tabellenname ( Sp1 , Sp2 , . . . , Spi . . . , Spn ) ; Semikolon schließt den Befehl ab schließende Klammer für die Liste der Attribute Komma trennt die Attribute Attribute (Bezeichnungen der anzulegenden Spalten) öffnende Klammer für Liste der Attribute Name der anzulegenden Tabelle Schlüsselwort zum Anlegen einer Tabelle Schlüsselwort für Erstellen Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL - Erstellen der Struktur einer Tabelle mit CREATE Angaben zu den Attributen CREATE TABLE Tabellenname ( Sp1 , Sp2 , . . . , Spi . . . , Spn ) ; ATTRIBUT Datentyp ( Stellenzahl ) weitere Angaben Festlegungen für die zu erstellende Spalte wie: PRIMARY KEY (Primärschlüssel) REFERENCES Tabellenname (Fremdschlüssel zu einer bereits existierenden Tabelle) NOT NULL (Wert der Spalte darf nie Null sein) Schließende Klammer für Stellenzahl Angaben der Stellenzahl Öffnende Klammer für Stellenzahl Typ der Information dieser Spalte, wie CHARACTER, NUMERIC, INTEGER usw. Attribut = Name der zu erstellenden Spalte Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL – Der Befehl CREATE - Beispiel Anlegen von 2 Tabellen einer relationalen Datenbank, die über Fremdschlüssel korrespondieren: CREATE TABLE Bauinfo3 ( BINr INTEGER PRIMARY KEY , Beleg NUMERIC (5, 1) , Klausur NUMERIC (5, 1) , NoteGrdl NUMERIC (5, 1) ) ; Beachte: Bevor eine Tabelle mit einem (oder mehreren) Fremd- schlüssel(n) angelegt werden kann, muss die Tabelle, auf die sich der (die) Fremd-Schlüssel bezieht(n), vorher angelegt worden sein ! CREATE TABLE Studenten ( MatrNr INTEGER PRIMARY KEY , Name CHARACTER (20) NOT NULL , Vorname CHARACTER (20) NOT NULL, Adresse CHARACTER (60) BINr INTEGER REFERENCES Bauinfo3 ON DELETE SET NULL ON UPDATE CASCADE ) ; Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: Datentypen Folgende Datentypen sind möglich: Datentyp Bedeutung INTEGER INT SMALLINT NUMERIC (x, y) DECIMAL (x, y) FLOAT (x) CHARACTER (n) CHAR (n) CHARACTER VARYING (n) VARCHAR (n) BIT (n) DATE TIME Ganzzahl Kurzform von INTEGER .x-stellige Dezimalzahl mit y Nachkommastellen .mindestens x-stellige Dezimalzahl mit y Nachkommastellen Gleitpunktzahl mit Nachkommastellen Zeichenkette der festen Länge n Kurzform von CHARACTER (n) Variable Zeichenkette mit bis zu n Zeichen Kurzform von CHARACTER VARYING (n) Bitleiste der festen Länge n Datum (Jahr, Monat, Tag) Uhrzeit (Stunde, Minute, Sekunde) .x Gesamtstellenzahl y Nachkommastellen n Anzahl der Zeichen Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: Datentypen - Wahrheitswert Einen Wahrheitswert BOOLEAN (wie z. B. in MS-ACCESS) gibt es z.B. in ORACLE nicht. Er muss durch CHARACTER (1) oder BIT (1) umschrieben werden. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: Datentypen - Besonderheiten Die Größe der Datentypen INTEGER und SMALLINT ist implementierungs- abhängig, wobei garantiert wird, dass INTEGER-Zahlen mindestens so groß wie SMALLINT-Zahlen sind, z. B.: Datentyp INTEGER SMALLINT ORACLE MS-ACCESS 38stellig 38stellig 4 Byte 2 Byte Wenn die x–Werte bei den Datentypen weggelassen werden, werden implemen- tierungsbedingte Werte angenommen. Beim Weglassen der y-Werte wird die Zahl als Null angenommen. Die Angabe CHARACTER ohne Parameter entspricht dem Vorgabewert CHARACTER (1). Der Datentyp BIT ohne Parameter hat die Bedeutung BIT (1). Bei SQL-2 können auch die Datentypen REAL und DOUBLE PRECISION verwendet werden. Sie entsprechen dem Typ FLOAT mit einer implementierungs- abhängigen Anzahl von Nachkommastellen. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: Der Datentyp DATE Daten vom Typ DATE (Datum) können miteinander verglichen werden. Sie können auch voneinander subtrahiert werden. Das Ergebnis ist dann eine INTEGER-Zahl, die die Anzahl der Tage zwischen diesen beiden Daten enthält. Die Addition oder Subtraktion einer Variablen vom Typ DATE mit einer INTEGER-Zahl ist ebenfalls möglich. Das Datum wird entsprechend um die Anzahl der Tage erhöht bzw. erniedrigt. Beachte: Wegen der unterschiedlichen nationalen Schreibweisen und Zeit- zonenangaben treten bei den Datentypen DATE und TIME (Uhrzeit) bestimmte Probleme auf. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL – Der Befehl SELECT SELECT ist der einzige Befehl zur Suche und Abfrage von Daten einer Datenbank. Syntax für den Hauptteil des SELCT-Befehls: SELECT [ ALL | DISTINCT ] Spaltenauswahlliste FROM Tabellenliste [ WHERE Bedingung ] [ GROUP BY Spaltenliste [ HAVING Bedingung ] ] Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL – SELECT Ein kompletter SELECT-Befehl kann aus beliebig vielen Hauptteilen, die über UNION, EXCEPT oder INTERSECT miteinander verknüpft sind, bestehen. SELECT-Hauptteil: [ { UNION | EXCEPT| INTERSECT } [ ALL ] [ { UNION | EXCEPT | INTERESECT } [ ALL ] . . . ] ] [ ORDER BY Ordnungsliste ] Die Punkte deuten an, dass die Aufzählung beliebig fortgesetzt werden kann. Bei mehr als zwei Verknüpfungen sollten jedoch Klammern gesetzt werden, um die Eindeutigkeit der Reihenfolge zu garantieren. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL – SELECT In ORACLE muss der Bezeichner EXPECT durch MINUS ersetzt werden. Nach der Verknüpfung kann das Resultat mittels ORDER-BY-Klausel noch geordnet werden. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL – SELECT Beispiel: SELECT Bauleiter.PersNr, Name, COUNT (*) FROM Bauleiter, Baustelle WHERE Bauleiter.PersNr = Baustelle.PersNr GROUP BY Bauleiter.PersNr, Name UNION SELECT PersNr, Name FROM Bauleiter WHERE PersNr NOT IN (SELECT PersNr FROM Baustelle); Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: Logische Arbeitsfolge des SELECT-Befehls: Alle in der Tabellenliste angegebenen Relationen werden (über das Kreuzprodukt oder einen Join) miteinander verknüpft. Aus dieser verknüpften Relation werden die Tupel (Datensätze, Zeilen) ausgewählt, die die angegebene WHERE-Bedingung erfüllen. Es liegt eine Restriktion vor. Mittels Auswahlliste am Anfang des SELECT-Befehls findet auf das bisherige Resultat eine Projektion auf die angegebenen Spalten statt. Dann wird eine Gruppierung gemäß der GROUP-BY-Klausel durchgeführt. Eine Gruppierung fasst dabei mehrere Tupel zu einem Tupel zusammen, so dass die Ergebnisrelation weniger Tupel enthält. Eine folgende HAVING-Klausel führt jetzt auf das Ergebnis der Gruppierung nochmals eine Restriktion auf bestimmte Tupel durch. Alle so erstellten Hauptteile des SELECT-Befehls werden jetzt mittels UNION, INTERSECT oder ECXEPT miteinander verknüpft. Die Ergebnisrelation wird nach den Vorgaben in der Ordnungsliste der ORDER-BY-Klausel sortiert. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: SELECT einfache Grundform: SELECT . . . FROM . . . ; Semikolon schließt den Befehl ab Name der Tabelle mit den Daten Schlüsselwort für Tabellenangabe anzuzeigende Spalten Schlüsselwort für Abfrage Beispiele: Auflisten aller Spalten einer Tabelle: mit allen Spalten einer Tabelle in der gespeicherten Reihenfolge: SELECT * FROM Mitarbeiter ; Auflisten aller Datensätze mit allen Spalten der Tabelle in der abgespeicherten Reihenfolge Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: SELECT - Beispiel SELECT name , vorname FROM Sem_gr_01 ; Name der Tabelle der Datenbank, auf die sich die Operationen beziehen weiteres Schlüsselwort Angaben zur Tabelle (Haupt-)Schlüsselwort Dieser Befehl bedeutet: Auflisten der Spalten „name“ und „vorname“ der Tabelle „Sem_gr_01“ Ebenfalls richtig ist die Schreibweise: Select NAME, Vorname FroM SEM_Gr_01 ; Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: SELECT - Beispiel Auflisten aller Spalten einer Tabelle: SELECT * FROM Mitarbeiter ; keine Einschränkung bezüglich der Spalten Es werden alle Datensätze mit allen Spalten in der gespeicherten Reihenfolge aufgelistet. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Beispiele Projektion SQL: SELECT - Beispiele Auflisten (nur) bestimmter Spalten einer Tabelle: SELECT Name , Vorname FROM Mitarbeiter ; Es werden nur die Spalten Name und Vorname von der Tabelle Mitarbeiter in der Reihenfolge: Name, Vorname aufgelistet. Auflisten (nur) bestimmter Spalten in abweichender Reihenfolge: SELECT Vorname , Name, PersNr FROM Mitarbeiter ; Es werden nur die Spalten Vorname, Name und PersNr in dieser von den gespeicherten Daten abweichenden Reihenfolge aufgelistet. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Beispiele Es können nicht nur Spalten, sondern auch beliebige Spaltenausdrücke angegeben werden: SELECT Name , Vorname, 12 * Gehalt AS Jahresgehalt FROM Mitarbeiter ; oder: SELECT Name , Vorname, 12 * Gehalt FROM Mitarbeiter ; Es werden die 3 Spalten: Name, Vorname und Jahresgehalt ausgegeben. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Beispiele Attribute (Spalten) können im Rahmen syntaktisch korrekter Ausdrücke beliebig miteinander in Verbindung gebracht werden. PersNr Name Vorname Gehalt Zuwdg Sonderz. 0120 0130 0135 . . . Ahrend Berger Müller . . . Jens Peter Paul . . . 6000 6800 5800 . . . 5000 5500 4800 . . . 2001 1980 2200 . . . SELECT Name , Vorname, (12 * Gehalt + Zuwdg * (6 - Sonderz.) FROM Mitarbeiter ; Es werden die 3 Spalten: Name, Vorname und Jahresgehalt ausgegeben. Attribute (Spalten) können im Rahmen syntaktisch korrekter Ausdrücke beliebig miteinander in Verbindung gebracht werden. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Beispiele Auflisten von Spalten mehrerer Tabellen: SELECT * FROM Bauleiter, Baustellen ; oder: SELECT Bauleiter.* , Baustellen.* FROM Bauleiter, Baustellen ; Es wird das Kreuzprodukt aller Spalten der beiden Tabellen ausgegeben, d. h. alle möglichen Kombinationen aller Spalten der 1. Tabelle mit allen Spalten der 2. Tabelle – vgl. Kartesisches Produkt. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - WHERE-Klausel - Beispiele Restriktion SQL: SELECT - WHERE-Klausel - Beispiele Auflisten (nur) bestimmter Datensätze in Abhängigkeit von einer Bedingung: SELECT * FROM Mitarbeiter WHERE LOHN <= 2500 ; Es werden alle Datensätze aufgelistet, bei denen die Spalte Lohn <= 2500 ist. SELECT Name, Vorname, PrsNr FROM Mitarbeiter WHERE LOHN <= 2500 ; Es werden alle Datensätze mit den Spalten Vorname , Name und PrsNr in dieser von den gespeicherten Daten abweichenden Reihenfolge aufgelistet, bei denen die Spalte Lohn <= 2500 ist. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - WHERE-Klausel - Beispiele Auflisten (nur) bestimmter Datensätze in Abhängigkeit von einer Bedingung: SELECT * FROM Mitarbeiter WHERE LOHN <>2500 ; Es werden alle Datensätze aufgelistet, bei denen die Spalte Lohn ungleich 2500 ist. SELECT * FROM Mitarbeiter WHERE Name = ‘Berger‘ ; Es werden alle Datensätze aufgelistet, bei denen der Name = „Berger“ ist Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Relationen für WHERE-Klausel Als Relation können verwendet werden: Vergleichsoperatoren: .. . kleiner . .. . kleiner gleich . .. . gleich .. . größer gleich .. . größer .ungleich < <= > >= <> Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Relationen für WHERE-Klausel Weitere Operatoren: Intervalloperator Entrhaltenoperator Auswahloperatoren Ähnlichkeitsoperator Existenzoperator Eindeutigkeitsoperator Nulloperator [ NOT ] BETWEEN . . . AND [ NOT ] IN ALL, ANY, SOME [ NOT ] LIKE EXISTS UNIQUE IS [ NOT ] NULL Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: SELECT - ORDER BY Sortieren der aufzulistenden Daten Die Sortierung erfolgt (automatisch) je nach Datentyp: alphabetisch bzw. chronologisch z. B. bei Spalten vom Typ CHAR, CHARACTER usw.: alphabetisch bei Spalten vom Typ INTEGER, NUMERIC usw.: chronologisch Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - ORDER BY – Beispiele Auflisten von Datensätzen, sortiert (in aufsteigender Folge): SELECT * FROM Mitarbeiter ORDER BY PersNr ; Es werden alle Datensätze, geordnet nach Personalnummern, (automatisch) in aufsteigender chronologischer Folge, aufgelistet, falls die Spalte PersNr mit einem numerischen Typ vereinbart wurde. SELECT * FROM Mitarbeiter ORDER BY Name, Vorname ; Es werden alle Datensätze, geordnet nach Namen, (automatisch) in aufsteigender alphabetischer Folge aufgelistet, wenn die Spalte Name z. B. mit dem Typ CHARACTER vereinbart wurde. Bei gleichen Namen wird zusätzlich nach Vornamen sortiert. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - ORDER BY - ASC, DESC Mit ASC (ascending) bzw. DESC (descending), kann festgelegt werden, ob aufwärts oder abwärts sortiert werden soll. Wenn nichts angegeben wird, wird automatisch in aufsteigernder Folge sortiert. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - ORDER BY - ASC, DESC - Beispiel Auflisten von Datensätzen, sortiert in absteigender Folge: SELECT * FROM Mitarbeiter ORDER BY Name DESC, Vorname DESC ; Es werden alle Datensätze, geordnet nach Namen in absteigender alphabetischer Folge, bei gleichen Namen nach Vornamen, hier ebenfalls in absteigender alpha- betischer Folge aufgelistet. Würde hier nach Vorname nicht nochmals DESC stehen, würden die Vornamen (automatisch) in aufsteigender Folge sortiert. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT – zusammenfassendes Beispiel Auflisten von Datensätzen, sortiert in auf- bzw. absteigender Folge: SELECT Vorname, Name, PersNr FROM Mitarbeiter WHERE Name = ‘Berger‘ ORDER BY Name DESC, Vorname ; Es werden die Spalten Vorname, Name, PersNr (in der hier angegebenen, nicht in der abgespeicherten) Reihenfolge für alle Datensätze aufgelistet, bei denen die Spalte Name = ‘Berger‘ ist, geordnet nach Namen in absteigender alphabetischer Folge und Vornamen in aufsteigender alphabetischer Folge. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT – WHERE und ORDER BY Die gespeicherten Daten bleiben bei der Auswahl durch WHERE oder Umordnung durch ORDER BY unverändert gespeichert. Die Auswahl- und Ordnungskriterien beziehen sich lediglich auf das Auflisten der Daten. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Statistikfunktionen AVG Average Durchschnittswert, ermittelt über alle Zeilen COUNT Count Anzahl aller Zeilen MAX Maximum Maximalwert aller Zeilen MIN Minimum Minimalwert aller Zeilen SUM Sum Summenwert, summiert über alle Zeilen Durchschnittswert aller Zeilen einer Spalte: SELECT AVG (Gehalt) FROM Bauleiter ; Anzahl aller Zeilen innerhalb einer Tabelle: SELECT COUNT ( * ) AS Bauleiteranzahl FROM Bauleiter ; Es wird die Anzahl der in der Tabelle gespeicherten Bauleiter als Bauleiteranzahl ausgegeben. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: SELECT - COUNT SELECT COUNT ( Bemerkung ) FROM Bauleiter ; Es werden nur die Eintragungen in der Spalte „Bemerkung“ gezählt, die nicht NULL sind. Anzahl aller Zeilen innerhalb einer Tabelle: SELECT COUNT ( DISTINCT Name ) FROM Bauleiter ; Es werden nur die unterschiedlichen Einträge in der Spalte „Name“ gezählt. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Statistikfunktionen Minimum aller Zeilen einer Spalte: SELECT MIN (Gehalt) FROM Bauleiter WHERE Gehalt > 5000 ; Aufsummieren von Spalten innerhalb einer Tabelle: SELECT SUM (12 * Gehalt + Zuwdg * (6 - Sonderz.)) AS Einkommen FROM Mitarbeiter ; Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: Der Befehl INSERT Syntax: INSERT INTO { Tabellenname | Sichtname } [ ( Spaltenliste )] Tabellenausdruck Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: INSERT Mit INSERT können einzelne Datensätze in eine Tabelle eingespeichert werden. einfache Grundform: INSERT INTO . . . ( . . . , . . . , . . . ) VALUES ( . . . , . . . , . . . , ) ; Semikolon schließt den Befehl ab schließende Klammer für einzufügende Daten aktuelle Informationen der einzufügenden Spalte öffnende Klammer für einzufügende Daten Schlüsselwort für einzufügende Daten schließende Klammer für Liste der Attribute trennt die einzelnen Attribute (Spaltennamen) Attribute (formal) der einzufügenden Spalten öffnende Klammer für Liste der Attribute Name der Tabelle, in die Datensatz eingefügt wird Schlüsselwort für Angabe des Tabellennamens Schlüsselwort zum Einfügen eines Datensatzes Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: INSERT - Beispiele Einfügen eines Datensatzes: INSERT INTO Mitarbeiter ( PersNR , Name , Vorname , Gehalt ) ( 123456 , ‘Berger‘ , ‘Felix‘ , 4900) ; In die Tabelle „Mitarbeiter“ werden für diesen Datensatz die Spalten: PersNR = 123456, Name = ‘Berger‘, Vorname = ‘Felix‘ und Gehalt = 4900 .in der angegebenen Reihenfolge eingegeben. Der Datensatz wird am Ende der Tabelle angefügt. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: INSERT - Beispiele Einfügen eines Datensatzes in abweichender Reihenfolge der Spalten INSERT INTO Mitarbeiter ( Vorname, Name, PersNr ) ( ‘Felix‘ , ‘Berger‘ , 123456 ) ; Die Spalten werden in der angegebenen Reihenfolge eingegeben, wobei die Reihenfolge in den beiden Klammern genau überein- stimmen muss. Ob die einzugebenen Daten in Hochkommas ( ‘ . . . ‘) eingeschlossen werden, hängt davon ab, unter welchem Typ die betreffende Spalte vereinbart wurde. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: INSERT - Beispiel Einfügen eines unvollständigen Datensatzes: INSERT INTO Mitarbeiter ( PersNR , Name ) ( 123456 , ‘Berger‘ ) ; In die Tabelle „Mitarbeiter“ wird ein Datensatz nur mit den Spalten PersNr und Name ein- bzw. angefügt. Es müssen hier nicht alle Spalten, mit denen die Tabelle vereinbart wurde, angegeben werden. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: Der Befehl UPDATE Syntax: UPDATE { Tabellenname | Sichtname } SET { Spalte = { Spaltenausdruck | NULL }} [ , . . . ] [ WHERE { Bedingung | CURRENT OF Cursorname } ] Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: UPDATE - Beispiele Ändern bestimmter Werte einer Spalte in Abhängigkeit .von einer Bedingung: UPDATE Mitarbeiter SET Gehalt = 1.20 * Gehalt WHERE Gehalt < 5000 ; In der Tabelle „Mitarbeiter“ wird bei alle Datensätzen, bei denen .die Spalte „Gehalt“ < 5000 ist, diese Spalte mit 1,2 multiplziert. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: UPDATE Die Bedeutung dieses Befehls liegt in den vielfältigen Möglichkeiten, Tupel mittels WHERE-Klausel auszuwählen. Außerdem kann im UPDATE-Befehl einem Attribut nicht nur ein neuer Wert zugewiesen werden, es können auch existierende Werte auf Null gesetzt werden. Hierzu wird der reservierte gleichlautende Bezeichner NULL auf der rechten Seite einer Zuweisung verwendet. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung SQL: Der Befehl DELETE Syntax: DELETE FROM { Tabellenname | Sichtname } [ WHERE { Bedingung | CURRENT OF Cursorname } ] Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: DELETE - Beispiele Löschen eines Datensatzes: DELETE FROM Mitarbeiter WHERE PersNr = 234123 ; Aus der Tabelle „Mitareiter“ wird der Datensatz, bei dem die Spalte „PersNr“ = 233123 ist, gelöscht. Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung