57
Bauinformatik II Softwareanwendungen 1 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 - Computeranwendu Relationale Datenbanken für Bauingenieurprobleme

Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

Embed Size (px)

Citation preview

Page 1: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

Bauinformatik IISoftwareanwendungen 1

5. Semester1. Vorlesung: SQL

Prof. Dr.-Ing. R. J. Scherer

Nürnberger Str. 31a2. OG, Raum 204

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Relationale Datenbankenfür Bauingenieurprobleme

Page 2: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 2Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

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

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/2008Bauinformatik II, Softwareanwendungen 1

Datenbanken

Vorlesungen: 14-täglich: Montag, 5. DS, gerade Woche, BEY 81/H

Gebäude: Nürnberger Str. 31 A, 2. Stock

1. Vorlesung: 15.10.2007 Übungen (14-täglich), BEY 73 PC-Pool:

PFLICHTLEHRVERANSTALTUNGStudiengang: Studienabschnitt:Bauingenieurwesen Grundfachstudium(alte Studienordnung) 5. SemesterLehrveranstaltung: Bauinformatik II - DatenbankenProf. Dr.-Ing. R. J. SchererDipl.-Ing. (FH) G. FaschingbauerKurzfassung:Die Vorlesung vermittelt die theoretischen Grundlagen der Konzipierung, Sicherung und Verwaltung großer Datenbestände in Datenbanken sowieanwendungsbereites Informatik-Wissen für die Erstellung und Nutzungrelationaler Datenbanken am Beispiel von MySQL und MS ACCESS.

• Hierarchische und relationale Datenbanken • Relationen, Assoziationen, Kardinalität• Generalisierung / Spezialisierung• Normalisierungsprozesse• Datenbankentwurf• Zugriffssprache SQL• Statistikfunktionen, Mengenoperationen

Schwerpunkte:

Beleg:

Prüfung:

Semesterbegleitend ist ein Beleg zur Konzipierung und zum Anlegen einer relationalen Datenbank in der Datenbanksprache SQL zu erarbeiten.

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 [email protected]. (FH) G. Faschingbauer [email protected]

Ansprechpartner:

Übg.-gr. Tag DS Woche

InternetInternetInternet InternetInternetInternet

Projekt-Sicht

Dateneingabe

Informations-zugriff HTML/JSP

Mobiler ClientBaustellensicht

Webserver

Servlets

HTML/JSP

Büro-PCFirmen-Sicht(en)

Reports

Stammdaten-pflege

DatenbankServer

Page 3: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 3Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Ziel:

Speichern, Verwalten und Selektierenvon Daten in strukturierter Form

Page 4: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 4Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

(ABS)Node Pipestart_node

end_node

REALx_coord

REAL

REAL

y_coord

z_coord

INTEGER nr

Input_Node Output_Node

ZEICHENFOLGEname

STRING

REAL

water_input

REAL

REAL

consumption

INTEGERnr

pipe_type_select

pipe_parameter

Pipe_Type

ZEICHENFOLGE

name

STRING Pipe_Parameter

(OPT) parameter

REAL

diameter

REAL REAL

PN k

ZEICHENFOLGESTRING

nr

Node_Sensor

location

nr INTEGER

REAL

REAL

pressure

time

Pipe_Sensor

nr INTEGER

REAL

REAL

velocity

time

location

1

Inner_Node

1pressure

Fluid

Q

REAL

REAL

REALviscosity

fluid_parameters

density

ZEICHENFOLGEname

STRING

REAL

required_pressure

Beispiel: Datenbank-Konzept (Datenmodell)

Page 5: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 5Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

(ABS)Node Pipestart_node

end_node

REALx_coord

REAL

REAL

y_coord

z_coord

INTEGER nr

Input_Node Output_Node

ZEICHENFOLGEname

STRING

REAL

water_input

REAL

REAL

consumption

INTEGERnr

pipe_type_select

pipe_parameter

Pipe_Type

ZEICHENFOLGE

name

STRING Pipe_Parameter

(OPT) parameter

REAL

diameter

REAL REAL

PN k

ZEICHENFOLGESTRING

nr

Node_Sensor

location

nr INTEGER

REAL

REAL

pressure

time

Pipe_Sensor

nr INTEGER

REAL

REAL

velocity

time

location

1

Inner_Node

1pressure

Fluid

Q

REAL

REAL

REALviscosity

fluid_parameters

density

ZEICHENFOLGEname

STRING

REAL

required_pressure

table Node

table Node_Sensor table Pipe_Sensor

table Pipe

table Pipe_Parameter

table Fluid

Beispiel: Datenbank-Konzept (Identifikation von Tabellen)

Page 6: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 6Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Beispiel: Implementierung der Datenbank

Page 7: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 7Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Beispiel: Instanziierung von Objekten(Speichern von Daten)

Page 8: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 8Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Anlegen,Speichern undAbrufen ... ... von Daten erfordert eine

SPRACHE

Page 9: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 9Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

Die Sprache SQL

Die Sprache SQL (Structured Query Language ) hat sich alswichtigste 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.

Page 10: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 10Bauinformatik 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.

Page 11: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 11Bauinformatik 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

Page 12: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 12Bauinformatik 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

Page 13: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 13Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

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.

SQL - Befehle

Page 14: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 14Bauinformatik 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.

Page 15: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 15Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL – Der Befehl CREATE

CREATE TABLE Tabellenname( { Spalte { Datentyp | Gebietsname } [ Spaltenbedingung [ . . . ] ] | Tabellenbedingung } [ , . . . ])

Syntax:

Page 16: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 16Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

CREATE TABLE Tabellenname ( Sp1 , Sp2 , . . . , Spi . . . , Spn ) ;

Semikolon schließt den Befehl abschließende Klammer für die Liste der AttributeKomma trennt die AttributeAttribute (Bezeichnungen der anzulegenden Spalten)öffnende Klammer für Liste der AttributeName der anzulegenden TabelleSchlüsselwort zum Anlegen einer TabelleSchlüsselwort für Erstellen

SQL - Erstellen der Struktur einer Tabelle mit CREATE einfache Grundform:

Page 17: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 17Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL - Erstellen der Struktur einer Tabelle mit CREATE Angaben zu den Attributen CREATE TABLE Tabellenname ( Sp1 , Sp2 , . . . , Spi . . . , Spn ) ;

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 StellenzahlAngaben der StellenzahlÖffnende Klammer für StellenzahlTyp der Information dieser Spalte, wie CHARACTER, NUMERIC, INTEGER usw.Attribut = Name der zu erstellenden Spalte

ATTRIBUT Datentyp ( Stellenzahl ) weitere Angaben

Page 18: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 18Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL – Der Befehl CREATE - BeispielAnlegen von 2 Tabellen einer relationalen Datenbank, die über Fremdschlüssel korrespondieren:

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) ;

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 !

Page 19: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 19Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: DatentypenFolgende Datentypen sind möglich:

INTEGERINTSMALLINTNUMERIC (x, y)DECIMAL (x, y)

FLOAT (x)CHARACTER (n)CHAR (n)CHARACTER VARYING (n)VARCHAR (n)BIT (n)DATETIME

GanzzahlKurzform von INTEGERGanzzahl.x-stellige Dezimalzahl mit y Nachkommastellen.mindestens x-stellige Dezimalzahl mit y NachkommastellenGleitpunktzahl mit NachkommastellenZeichenkette der festen Länge nKurzform von CHARACTER (n)Variable Zeichenkette mit bis zu n ZeichenKurzform von CHARACTER VARYING (n)Bitleiste der festen Länge nDatum (Jahr, Monat, Tag)Uhrzeit (Stunde, Minute, Sekunde)

Datentyp Bedeutung

.x Gesamtstellenzahl y Nachkommastellen n Anzahl der Zeichen

Page 20: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 20Bauinformatik 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.

Page 21: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 21Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: Datentypen - BesonderheitenDie 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.:

• 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.

Datentyp INTEGER SMALLINT

ORACLEMS-ACCESS

38stellig 38stellig 4 Byte 2 Byte

Page 22: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 22Bauinformatik 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.

Page 23: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 23Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL – Der Befehl SELECTSELECT 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 ] ]

Page 24: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 24Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL – SELECT

SELECT-Hauptteil:[ { UNION | EXCEPT| INTERSECT } [ ALL ] SELECT-Hauptteil: [ { UNION | EXCEPT | INTERESECT } [ ALL ] . . . ] ] [ ORDER BY Ordnungsliste ]

Ein kompletter SELECT-Befehl kann aus beliebig vielen Hauptteilen, die über UNION, EXCEPT oder INTERSECT miteinander verknüpft sind, bestehen.

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.

Page 25: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 25Bauinformatik 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.

Page 26: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 26Bauinformatik 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);

Page 27: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 27Bauinformatik 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.

1. 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.

2. Mittels Auswahlliste am Anfang des SELECT-Befehls findet auf das bisherige Resultat eine Projektion auf die angegebenen Spalten statt.

3. 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.

4. Eine folgende HAVING-Klausel führt jetzt auf das Ergebnis der Gruppierung nochmals eine Restriktion auf bestimmte Tupel durch.

5. Alle so erstellten Hauptteile des SELECT-Befehls werden jetzt mittels UNION, INTERSECT oder ECXEPT miteinander verknüpft.

6. Die Ergebnisrelation wird nach den Vorgaben in der Ordnungsliste der ORDER-BY-Klausel sortiert.

Page 28: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 28Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT

SELECT * FROM Mitarbeiter ;

einfache Grundform:

SELECT . . . FROM . . . ;

Semikolon schließt den Befehl abName der Tabelle mit den Daten Schlüsselwort für Tabellenangabeanzuzeigende SpaltenSchlüsselwort für Abfrage

Beispiele:

Auflisten aller Datensätze mit allen Spalten der Tabelle in der abgespeicherten Reihenfolge

• Auflisten aller Spalten einer Tabelle: mit allen Spalten einer Tabelle in der gespeicherten Reihenfolge:

Page 29: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 29Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Beispiel

Select NAME, Vorname FroM SEM_Gr_01 ;

Dieser Befehl bedeutet:

Name der Tabelle der Datenbank, auf die sich die Operationen beziehen

weiteres Schlüsselwort

Angaben zur Tabelle

(Haupt-)Schlüsselwort

Auflisten der Spalten „name“ und „vorname“ der Tabelle „Sem_gr_01“

SELECT name , vorname FROM Sem_gr_01 ;

Ebenfalls richtig ist die Schreibweise:

Page 30: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 30Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Beispiel

SELECT * FROM Mitarbeiter ;

• Auflisten aller Spalten einer Tabelle:

keine Einschränkung bezüglich der Spalten

Es werden alle Datensätze mit allen Spalten in der gespeicherten Reihenfolge aufgelistet.

Page 31: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 31Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Beispiele

SELECT Vorname , Name, PersNr FROM Mitarbeiter ;

Es werden nur die Spalten Vorname, Name und PersNr in dieser von den gespeicherten Daten abweichenden Reihenfolge aufgelistet.

• Auflisten (nur) bestimmter Spalten in abweichender Reihenfolge:

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 einer Tabelle:

Projektion

Page 32: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 32Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Beispiele

SELECT Name , Vorname, 12 * Gehalt AS Jahresgehalt FROM Mitarbeiter ;

Es werden die 3 Spalten: Name, Vorname und Jahresgehalt ausgegeben.

Es können nicht nur Spalten, sondern auch beliebige• Spaltenausdrücke angegeben werden:

SELECT Name , Vorname, 12 * Gehalt FROM Mitarbeiter ;

oder:

Page 33: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 33Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Beispiele

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.

PersNr Name Vorname Gehalt Zuwdg Sonderz. 2001 1980 2200 . . .

0120

0130

0135

. . .

6000

6800

5800 . . .

500055004800

. . .

AhrendBergerMüller . . .

Jens

Peter Paul

. . .

Attribute (Spalten) können im Rahmen syntaktisch korrekter Ausdrücke beliebig miteinander in Verbindung gebracht werden.

Page 34: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 34Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Beispiele

SELECT * 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.

• Auflisten von Spalten mehrerer Tabellen:

SELECT Bauleiter.* , Baustellen.* FROM Bauleiter, Baustellen ;

oder:

Page 35: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 35Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - WHERE-Klausel - Beispiele

SELECT * FROM Mitarbeiter WHERE LOHN <= 2500 ;

Es werden alle Datensätze mit den Spalten Vorname , Name und PrsNrin dieser von den gespeicherten Daten abweichenden Reihenfolge aufgelistet,bei denen die Spalte Lohn <= 2500 ist.

• Auflisten (nur) bestimmter Datensätze in Abhängigkeit von einer Bedingung:

Es werden alle Datensätze aufgelistet, bei denen die Spalte Lohn <= 2500 ist.

SELECT Name, Vorname, PrsNr FROM Mitarbeiter WHERE LOHN <= 2500 ;

Restriktion

Page 36: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 36Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - WHERE-Klausel - Beispiele

Es werden alle Datensätze aufgelistet, bei denen die Spalte Lohn ungleich 2500 ist.

SELECT * FROM Mitarbeiter WHERE LOHN <>2500 ;

Es werden alle Datensätze aufgelistet, bei denen der Name = „Berger“ ist

SELECT * FROM Mitarbeiter WHERE Name = ‘Berger‘ ;

• Auflisten (nur) bestimmter Datensätze in Abhängigkeit von einer Bedingung:

Page 37: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 37Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Relationen für WHERE-Klausel

Als Relation können verwendet werden:

<<=>>=<>

.. . kleiner

. .. . kleiner gleich

. .. . gleich

.. . größer gleich

.. . größer .ungleich

Vergleichsoperatoren:

Page 38: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 38Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Relationen für WHERE-Klausel

Weitere Operatoren:

IntervalloperatorEntrhaltenoperatorAuswahloperatorenÄhnlichkeitsoperatorExistenzoperatorEindeutigkeitsoperatorNulloperator

[ NOT ] BETWEEN . . . AND[ NOT ] INALL, ANY, SOME[ NOT ] LIKEEXISTSUNIQUEIS [ NOT ] NULL

Page 39: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 39Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - ORDER BYSortieren 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

Page 40: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 40Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - ORDER BY – Beispiele

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 PersNr ;

Es werden alle Datensätze, geordnet nach Namen, (automatisch) in aufsteigenderalphabetischer Folge aufgelistet, wenn die Spalte Name z. B. mit dem Typ CHARACTER vereinbart wurde.Bei gleichen Namen wird zusätzlich nach Vornamen sortiert.

SELECT * FROM Mitarbeiter ORDER BY Name, Vorname ;

• Auflisten von Datensätzen, sortiert (in aufsteigender Folge):

Page 41: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 41Bauinformatik 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.

Page 42: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 42Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - ORDER BY - ASC, DESC - Beispiel

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.

SELECT * FROM Mitarbeiter ORDER BY Name DESC, Vorname DESC ;

• Auflisten von Datensätzen, sortiert in absteigender Folge:

Page 43: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 43Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT – zusammenfassendes Beispiel

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.

SELECT Vorname, Name, PersNr FROM Mitarbeiter WHERE Name = ‘Berger‘ ORDER BY Name DESC, Vorname ;

• Auflisten von Datensätzen, sortiert in auf- bzw. absteigender Folge:

Page 44: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 44Bauinformatik 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.

Page 45: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 45Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - StatistikfunktionenAVG Average Durchschnittswert, ermittelt über alle ZeilenCOUNT Count Anzahl aller ZeilenMAX Maximum Maximalwert aller ZeilenMIN Minimum Minimalwert aller ZeilenSUM Sum Summenwert, summiert über alle Zeilen

• Anzahl aller Zeilen innerhalb einer Tabelle:

SELECT COUNT ( * ) AS Bauleiteranzahl FROM Bauleiter ;

SELECT AVG (Gehalt) FROM Bauleiter ;

• Durchschnittswert aller Zeilen einer Spalte:

Es wird die Anzahl der in der Tabelle gespeicherten Bauleiter als Bauleiteranzahl ausgegeben.

Page 46: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 46Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - COUNT

• Anzahl aller Zeilen innerhalb einer Tabelle:

SELECT COUNT ( DISTINCT Name ) FROM Bauleiter ;

SELECT COUNT ( Bemerkung ) FROM Bauleiter ;

Es werden nur die unterschiedlichen Einträge in der Spalte „Name“ gezählt.

Es werden nur die Eintragungen in der Spalte „Bemerkung“ gezählt, die nicht NULL sind.

Page 47: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 47Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: SELECT - Statistikfunktionen

• Aufsummieren von Spalten innerhalb einer Tabelle:

SELECT SUM (12 * Gehalt + Zuwdg * (6 - Sonderz.)) AS Einkommen FROM Mitarbeiter ;

SELECT MIN (Gehalt) FROM Bauleiter WHERE Gehalt > 5000 ;

• Minimum aller Zeilen einer Spalte:

Page 48: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 48Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: Der Befehl INSERT

INSERT INTO { Tabellenname | Sichtname } [ ( Spaltenliste )]Tabellenausdruck

Syntax:

Page 49: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 49Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: INSERTMit INSERT können einzelne Datensätze in eine Tabelle eingespeichert werden.

Semikolon schließt den Befehl abschließende Klammer für einzufügende Datenaktuelle Informationen der einzufügenden Spalte öffnende Klammer für einzufügende DatenSchlüsselwort für einzufügende Datenschließende Klammer für Liste der Attributetrennt die einzelnen Attribute (Spaltennamen)Attribute (formal) der einzufügenden Spalten öffnende Klammer für Liste der AttributeName der Tabelle, in die Datensatz eingefügt wirdSchlüsselwort für Angabe des TabellennamensSchlüsselwort zum Einfügen eines Datensatzes

einfache Grundform:

INSERT INTO . . . ( . . . , . . . , . . . ) VALUES ( . . . , . . . , . . . , ) ;

Page 50: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 50Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: INSERT - Beispiele

In die Tabelle „Mitarbeiter“ werden für diesen Datensatz dieSpalten: PersNR = 123456, Name = ‘Berger‘, Vorname = ‘Felix‘ und Gehalt = 4900.in der angegebenen Reihenfolge eingegeben. Der Datensatz wird am Ende der Tabelle angefügt.

INSERT INTO Mitarbeiter ( PersNR , Name , Vorname , Gehalt ) ( 123456 , ‘Berger‘ , ‘Felix‘ , 4900) ;

• Einfügen eines Datensatzes:

Page 51: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 51Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: INSERT - Beispiele

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.

• Einfügen eines Datensatzes in abweichender Reihenfolge der Spalten

Page 52: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 52Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: INSERT - Beispiel

In die Tabelle „Mitarbeiter“ wird ein Datensatz nur mit denSpalten PersNr und Name ein- bzw. angefügt. Es müssen hier nicht alle Spalten, mit denen die Tabelle vereinbart wurde, angegeben werden.

INSERT INTO Mitarbeiter ( PersNR , Name ) ( 123456 , ‘Berger‘ ) ;

• Einfügen eines unvollständigen Datensatzes:

Page 53: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 53Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: Der Befehl UPDATE

UPDATE { Tabellenname | Sichtname } SET { Spalte = { Spaltenausdruck | NULL }} [ , . . . ][ WHERE { Bedingung | CURRENT OF Cursorname } ]

Syntax:

Page 54: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 54Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: UPDATE - Beispiele

In der Tabelle „Mitarbeiter“ wird bei alle Datensätzen, bei denen.die Spalte „Gehalt“ < 5000 ist, diese Spalte mit 1,2 multiplziert.

UPDATE Mitarbeiter SET Gehalt = 1.20 * Gehalt WHERE Gehalt < 5000 ;

• Ändern bestimmter Werte einer Spalte in Abhängigkeit .von einer Bedingung:

Page 55: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 55Bauinformatik 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.

Page 56: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 56Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: Der Befehl DELETE

DELETE FROM { Tabellenname | Sichtname }[ WHERE { Bedingung | CURRENT OF Cursorname } ]

Syntax:

Page 57: Bauinformatik II Softwareanwendungen 1 5. Semester 1. Vorlesung: SQL Prof. Dr.-Ing. R. J. Scherer Nürnberger Str. 31a 2. OG, Raum 204 TU Dresden - Institut

TU Dresden - Institut für Baumechanik und Bauinformatik - Computeranwendung im Bauwesen

Folie-Nr.: 57Bauinformatik II, Softwareanwendunge 1; 1. Vorlesung

SQL: DELETE - Beispiele

Aus der Tabelle „Mitareiter“ wird der Datensatz, bei dem dieSpalte „PersNr“ = 233123 ist, gelöscht.

DELETE FROM Mitarbeiter WHERE PersNr = 234123 ;

• Löschen eines Datensatzes: