Datenbanken: SQL. SQL: Structured Query Language. Anfragesprache für relationale Datenbanksysteme

Größe: px
Ab Seite anzeigen:

Download "Datenbanken: SQL. SQL: Structured Query Language. Anfragesprache für relationale Datenbanksysteme"

Transkript

1 SQL: Structured Query Language Anfragesprache für relationale Datenbanksysteme Zur Erinnerung: Relationale Datenbanksysteme speichern die Daten in Tabellen (Relationen): Zeilen: einzelne Objekte der Realität (Datensätze, Tupel) Spalten: Eigenschaften der Objekte (Attribute) Beispiel: Person Persnr Vorname Name Gebdat Geschlecht Rudi Mentär M Ana Bolika W Mari Huana W 1

2 Beispiel: Person Persnr Vorname Name Gebdat Geschlecht Rudi Mentär M Ana Bolika W Mari Huana W Einzelne Datensätze werden identifiziert über so genannte Schlüsselattribute: (im Beispiel: persnr) Beziehungen zwischen Datensätzen aus verschiedenen Tabellen werden modelliert durch so genannte Fremdschlüssel-Attribute: Person Adresse Persnr Vorname Name Gebdat Geschlecht Rudi Mentär M Ana Bolika W Mari Huana W Adrnr PLZ Ort Strasse Persnr Teststadt Teststr Kirchdorf Kirchweg Dope-City Hanffeld

3 Zur Arbeit mit relationalen Datenbanksystemen sind notwendig: Statements zur Erzeugung von Datenbankobjekten (Tabellen, etc. ); Statements zur Datenmanipulation; Bereitstellung der notwendigen Datentypen; Möglichkeiten der Einsicht in bestehende Datenbankobjekte; Möglichkeiten zur Formulierung prozeduraler Abläufe; Möglichkeiten zur Einbindung von Datenmanipulations-Statements in gängige Programmiersprachen; Standardisierte Anfragesprache; Diese Anforderungen werden inzwischen alle von SQL erfüllt! 3

4 Beispiele für SQL-Statements: DDL create table Person (persnr integer, name varchar(30), vorname varchar(30), gebdat date, geschlecht char(1) ); alter table person add constraint pk_persnr primary key (persnr); create table Adresse (adrnr integer, plz char(5), ort varchar(30), str varchar(30), typ char(1), persnr integer ); alter table adresse add constraint fk_adr_pers foreign key (persnr) references Person (persnr) ; alter table person add constraint c_geschl check ( geschlecht in ('M', 'W' ) ) ; drop table person; 4

5 Beispiele für SQL-Statements: DDL Sequences Eine Sequence ist ein Nummerngenerator zur automatischen Versorgung eines Primärschlüssels mit unterschiedlichen Werten. Eine Sequence wird erzeugt mit: create sequence <seq.name> [start with n] [increment by m]; Einfachste Form: create sequence doznr_seq; Der Aufruf einer Sequence ist nicht standardisiert!!!! Oracle: doznr_seq.nextval bzw. doznr_seq.currval PostgreSQL: nextval( doznr_seq ) bzw. currval( doznr_seq ) Löschen einer Sequence: drop sequence <seq.name>; 5

6 Beispiele für SQL-Statements: DDL Hinzufügen einer neuen Spalte zu einer bestehenden Tabelle: alter table person add [column] bonus char(1); Löschen einer Spalte aus einer bestehenden Tabelle: alter table person drop column bonus; 6

7 Wichtige Standard SQL-99 Datentypen: integer smallint numeric decimal float real double precision bit bit varying binary large object (blob) character character varying (varchar) national character national character varying character large object (clob) national character large object date time time with time zone timestamp timestamp with time zone interval boolean 7

8 Beispiele für SQL-Statements: DML ORACLE insert into person values (persnr_seq.nextval, 'Meier', 'Kurt', ' ', 'M' ); insert into adresse values (adrnr_seq.nextval, '12345', 'Teststadt', 'Teststr.12', 'P', persnr_seq.currval ); commit; update person set gebdat = ' ' where persnr = 12; commit; delete from person where name = 'Meier'; commit; select persnr, name, vorname from person where persnr = 1; 8

9 Beispiele für SQL-Statements: DML PostgreSQL insert into person values (nextval('persnr_seq'), 'Meier', 'Kurt', ' ', 'M' ); insert into adresse values (nextval('adrnr_seq'), '12345', 'Teststadt', 'Teststr.12', 'P', currval('persnr_seq') ); commit; update person set gebdat = ' ' where persnr = 12; commit; delete from person where name = 'Meier'; commit; select persnr, name, vorname from person where persnr = 1; 9

10 Eigenschaften der Anfragesprache SQL: ist die einzige Kommunikationsmöglichkeit mit relationalen Datenbanksystemen; ist standardisiert; letzte Version: SQL-99, veröffentlicht unter ISO 9075: 2003; ist deskriptiv, d.h. man beschreibt das Ergebnis, nicht den Algorithmus dahin; operiert auf Mengen (Relationen als Mengen von Datensätzen); ist abgeschlossen, d.h. das Ergebnis eines SQl-statements ist wieder eine Relation; ist optimierbar; besteht aus 2 Komponenten: DDL: Data Definiton Language; DML: Data Manipulation Language; 10

11 Chronologie des SQL-Standards (Quelle: Wikipedia): etwa 1975: SEQUEL = Structured English Query Language, der Vorläufer von SQL, wird für das Projekt System R von IBM entwickelt. 1979: SQL gelangt mit Oracle V2 erstmals durch Relational Software Inc. auf den Markt. 1986: SQL1 wird von ANSI als Standard verabschiedet. 1987: SQL1 wird von der Internationalen Organisation für Normung (ISO) als Standard verabschiedet und 1989 nochmals überarbeitet. 1992: Der Standard SQL2 oder SQL-92 wird von der ISO verabschiedet. 1999: SQL3 oder SQL:1999 wird verabschiedet. Im Rahmen dieser Überarbeitung werden weitere wichtige Features (wie etwa Trigger oder rekursive Abfragen) hinzugefügt. 2003: SQL:2003 ISO/IEC 9075:2003 wird von der ISO als Nachfolger des SQL:1999- Standards verabschiedet und fügt erste Änderungen für besseren XML-Support ein. 2006: SQL/XML:2006 ISO/IEC :2005 legt genauer fest, wie SQL in Zusammenhang mit XML verwendet werden kann. 2008: SQL:2008 ISO/IEC 9075:2008 fügt INSTEAD OF -Trigger und das TRUNCATE - Statement hinzu 2011: SQL:2011 ISO/IEC 9075:2011 ist die aktuelle Revision des SQL-Standards. 11

12 Im Standard SQL-99 sind beschrieben: Sprachsyntax und Sprachelemente; Datentypen; Datenbankobjekte; Verarbeitung der Statements, Transaktionen; Prozedurale Spracherweiterung; CLI Anbindung (Einbindung in 3GL); multimediale Erweiterungen; objektrelationale Erweiterungen; 12

13 Standard SQL-99 Datenbankobjekte (die mit SQL erzeugt und/oder verwaltet werden können): table view (Sichten auf bestehende Tabellen, benannte select-statements) domain (benutzerdefinierte spezielle Wertebereiche) constraints procedure, function trigger privilege, role UDT (user defined types) schema (benannte Gruppe von SQL-Objekten, database ) AuthorizationID (Nutzerkennung, user) Catalog (Metadatenbank, Data Dictionary, z.b.: information_schema) Cluster (SQL-server) 13

14 Standard Constraints: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK Attribut muss einen Wert haben Attribut oder Attributkombination muss eindeutig sein Attribut oder Attributkombination identifiziert eindeutig (NOT NULL und UNIQUE) Attribut oder Attributkombination referenziert eindeutig einen Primärschlüsselwert oder ist NULL Vergleicht auf das Vorkommen vordefinierter Werte 14

15 Standard Constraints: Syntaxbeispiel: CREATE TABLE Personentab ( NOT NULL name VARCHAR2(30) CONSTRAINT nn_name NOT NULL, UNIQUE versnr INTEGER CONSTRAINT u_versnr UNIQUE, PRIMARY KEY FOREIGN KEY CHECK persnr INTEGER CONSTRAINT pk_personentab PRIMARY KEY, adrnr INTEGER CONSTRAINT fk_person_adr FOREIGN KEY (adrnr) REFERENCES Adressetab (adrnr) [ ON DELETE CASCADE ], geschlecht CHAR(1) CONSTRAINT c_geschlecht CHECK ( geschlecht in ( M, W ) ) ); 15

16 Standard Constraints: Im vorigen Syntaxbeispiel wurden alle constraints als Tabellenconstraints deklariert: <Attributname> <Datentyp> CONSTRAINT <constraintname> <constrainttyp> Als Spaltenconstraints mit dem alter table statement: UNIQUE PRIMARY KEY FOREIGN KEY ALTER TABLE Personentab ADD CONSTRAINT u_versnr UNIQUE (versnr); ALTER TABLE Personentab ADD CONSTRAINT pk_person PRIMARY KEY (persnr); ALTER TABLE Personentab ADD CONSTRAINT fk_person_adr FOREIGN KEY (adrnr) REFERENCES Adresse (adrnr) [ON DELETE CASCADE ]; CHECK ALTER TABLE Personentab ADD CONSTRAINT c_geschlecht CHECK (geschlecht in ( M, W )); 16

17 Wichtige Standard DDL-Statements 1: CREATE TABLE < tabname > ( < table element list >); < table element list > ::= < table element > [ {,< table element >} ] < table element > ::= < Column definition > < Column definition > ::= < column name > < data type > [ DEFAULT < default value > ] [ < column constraint > list ] < Column constraint > list ::= < Column constraint > [< Column constraint > ] < Column constraint > ::= [ CONSTRAINT < constraint name > ] Constraint_Type [ < constraint attributes > ] 17

18 Wichtige Standard DDL-Statements 2: ALTER TABLE < tabname > ( < alter table action >); < alter table action > ::= ADD [ COLUMN ] <Column definition > ALTER [ COLUMN ] <Column name > SET DEFAULT < default value > ALTER [ COLUMN ] <Column name > DROP DEFAULT DROP [ COLUMN] <Column name > ADD < Table constraint > DROP CONSTRAINT < constraint name> DROP TABLE < tabname > ; 18

19 Wichtige Standard DDL-Statements 3: Beispiele create table Personentab ( persnr integer constraint pk_perstab primary key, name varchar(30) not null, vorname varchar(30), gebdat date, geschlecht char(1) constraint c_geschl check (geschlecht in ( M, W )), profil varchar(50) ); alter table Personentab add versicherungsnr integer unique; drop table Personentab; 19

20 Wichtige Standard DDL-Statements 4: Objektrechte Nur der Erzeuger einer Tabelle hat auch die Rechte, die Inhalte dieser Tabelle zu ändern. Sollen auch andere Nutzer die Tabelle ändern können, brauchen sie die entsprechenden Rechte dazu. Standard Rechte auf Datenbankobjekten sind: SELECT [ ( < column name > [ {, < column name > } ] ) ] INSERT [ ( < column name > [ {, < column name > } ] ) ] UPDATE [ ( < column name > [ {, < column name > } ] ) ] REFERENCES [ ( < column name > [ {, < column name > } ] ) ] DELETE EXECUTE TRIGGER 20

21 Wichtige Standard DDL-Statements 5: Objektrechte zuweisen GRANT ALL PRIVILEGES < privilege list > ON <Object name> TO < grantee > [ {, < grantee > } ] [ WITH GRANT OPTION ]; < privilege list > ::= < privilege > [ {, < privilege > } ] < Object name > ::= < table name > < procedure > < function > < UDT > < grantee > ::= PUBLIC < AuthorizationID > Beispiel: Grant select, update, insert on Personentab to PUBLIC; 21

22 Wichtige Standard DDL-Statements 6: Objektrechte wegnehmen REVOKE [ GRANT OPTION FOR ] ALL PRIVILEGES < privilege list > ON <Object name> FROM < grantee > [ {, < grantee > } ] ; < privilege list > ::= < privilege > [ {, < privilege > } ] < Object name > ::= < table name > < procedure > < function > < UDT > < grantee > ::= PUBLIC < AuthorizationID > Beispiele: revoke select, update, insert on Personentab from PUBLIC; Grant update on Personentab to brackly with grant option; Revoke grant option for update on Personentab from brackly; Revoke references on Personentab from brackly cascade constraints; 22

23 Wichtige Standard DDL-Statements 7: Transaktionsstatements Datenbanken arbeiten nach dem Transaktionskonzept, d.h. Datenmanipulationsoperationen werden zu Gruppen zusammengefasst, so dass am Ende die Daten wieder in einem Zustand sind, der den vorgegebenen Geschäftsregeln entspricht! Eine Transaktion muss also explizit beendet werden. Dazu gibt es zwei Statements: COMMIT erfolgreiches Ende einer Transaktion; ROLLBACK ABORT erfolgloses Ende einer Transaktion; 23

24 Wichtige Standard DDL-Statements 8: Transaktionsstatements Beispiel: Annahme: für die Personendatenbank gilt die Geschäftsregel: R: jede Person muss eine gültige Adresse haben Folge: zu jedem Eintrag in die Tabelle Personentab muss es einen entsprechenden Eintrag in die Tabelle Adressentab geben! T: insert into Personentab values (01, Axel, Schweiss, , M ); insert into Adressentab values (001, 55334, Teststadt, Teststrasse 4, 01); commit; Die Transaktion T mit den beiden insert-statements ist also eine erfolgreiche Transaktion! 24

25 Realisierung der DDL Komponente beim Hersteller ORACLE: DB-Objekt Standard Create alter drop grant revoke Database database Index n Function Procedure Rechte Datenbankobjekte: Role Schema schema Sequence n Synonym n Table Tablespace n Trigger Type UDT User authorizationid View 25

26 Realisierung der DDL Komponente beim Hersteller ORACLE: Beispiele: create index i_name on Personentab (name); drop index i_name; Create sequence persnr_seq [start with < wert > ] [ increment by < wert > ]; Create sequence persnr_seq; Drop sequence persnr_seq; Create tablespace media data file c:\oracle\db\media.ora size 500 M; Alter tablespace media add data file c:\oracle\db\media2.ora size 200 M; drop tablespace media cascade; create user brackly identified by test default tablespace media quota 20 M on media; alter user brackly identified by wrglprnft; drop user brackly cascade; 26

27 Realisierung der DDL Komponente beim Hersteller ORACLE: Zusätzlich zu den Standard Objektrechten bietet ORACLE zwei weitere wichtige Konzepte an: 1. Systemrechte: Es gibt ca. 80 Systemrechte, z.b.: create table, create session, create sequence, create procedure, Beim Anlegen eines neuen Benutzers (create user..) muss mindestens das create session Recht vergeben werden! Syntax: Grant < Systemrecht liste > to PUBLIC user role [ with admin option]; revoke < Systemrecht liste > from PUBLIC user role; 27

28 Realisierung der DDL Komponente beim Hersteller ORACLE: Zusätzlich zu den Standard Objektrechten bietet ORACLE zwei weitere wichtige Konzepte an: 2. Role: Rechte (Objekt- und Systemrechte) können in Rollen gesammelt werden: create role daus; grant create table, create sequence to daus; grant select on brackly.personentab to daus; create user meier identified by schulze default tablespace media; grant daus to meier; revoke daus from meier; drop role daus; 28

29 Realisierung der DDL Komponente beim Hersteller ORACLE: ORACLE bietet verschiedene Sichten auf Datenbankobjekte an: user_catalog user_constraints user_free_space user_indexes user_ind_columns user_segments user_sequences user_source user_tables user_tablespaces user_tab_columns user_triggers user_ts_quotas user_views Informationen über Tabellen, views, synonyme, sequences Definitionen der constraints wieviel Speicherplatz ist noch im Zugriff Informat. über angelegte Indices welche Spalten in welchem Index Informationen über vom user angelegte Segmente Informat. über angelegte sequences Informationen über stored procedures/functions Informationen über angelegte Tabellen Beschreibung zugreifbarer Tablespaces welche Spalten in welcher Tabelle Informationen über angelegte Datenbanktrigger Tablespace-Quoten des users view-definitionen des users 29

30 Realisierung der DDL Komponente beim Hersteller ORACLE: ORACLE bietet verschiedene Sichten auf Datenbankobjekte an: Sichten bzgl Rechte: user_col_privs user_col_privs_made user_col_privs_recd user_role_privs role_sys_privs role_tab_privs user_sys_privs user_tab_privs user_tab_privs_made user_tab_privs_recd Rechte auf Spalten als Besitzer, grantor oder grantee vergebene Rechte auf Spalten erhaltene Rechte auf Spalten Rechte, die dem user über Rollen zugewiesen sind Systemrechte der Rolle Tabellenrechte der Rolle Systemrechte des users, direkt gegeben Objektrechte des users, direkt vergeben vergebene Rechte auf Tabellen erhaltene Rechte auf Tabellen 30

31 Standard SQL-99 DML Komponente: Datenmanipulations-Statements: insert Statement update Statement delete Statement select Statement Einfügen neuer Datensätze Aktualisieren bestehender Datensätze Löschen bestehender Datensätze Anzeigen bestehender Datensätze Das select Statement kann in allen anderen Statements verwendet werden. 31

32 Standard SQL-99 DML Komponente: insert Statement Syntax: INSERT INTO < table name > [ ( < Column name > [ {, < Column name > }... ] ) ] < select statement > VALUES ( < value comma list > ) ; Wird nach dem Tabellennamen keine Liste der zu füllenden Attribute angegeben, muss jedes Attribut der Tabelle mit einem Wert (auch NULL möglich) gefüllt werden! Mit der VALUES Klausel können direkt konstante Werte eingefügt werden. 32

33 Standard SQL-99 DML Komponente: insert Statement Beispiele: Person: (persnr, vorname, name, gebdat, geschlecht) Sequence für die persnr: persnr_seq insert into Person (persnr, name) values (persnr_seq.nextval, Meier ); Ergebnis: Falls kein anderes Attribut der Tabelle auf NOT NULL gesetzt ist, wird ein neuer Datensatz eingefügt, der nur in den Attributen persnr und name einen Wert ungleich NULL enthält. insert into Person values (persnr_seq.nextval, NULL, Meier, NULL, NULL); Ergebnis: Ein neuer Datensatz wird eingefügt mit den gleichen Werten wie oben. insert into Person (persnr, gebdat) (select persnr_seq.nextval, sysdate from dual); Ergebnis: Ein neuer Datensatz wird eingefügt mit je einem Wert für persnr und gebdat. dual ist eine virtuelle Systemtabelle, die man benutzt, wenn man eine Tabelle braucht (wie in der from Klausel eines select Statements), aber eigentlich keine Tabelle hat (Oracle-spezifisch!!)! 33

34 Standard SQL-99 DML Komponente: delete Statement Syntax: DELETE FROM < table name > [ WHERE - Klausel ]; Beispiele: delete from Person; Ergebnis: Alle Datensätze der Tabelle Person werden gelöscht. Die Tabelle selbst bleibt bestehen! delete from Person where gebdat < ; Ergebnis: Alle Datensätze der Personen, die vor dem geboren wurden, werden gelöscht, sofern nicht in anderen Tabellen Referenzen durch Fremdschlüsselattribute bestehen!!! Bestehen solche Referenzen, müssen erst die Datensätze aus den abhängigen Tabellen (z.b. Adressentab) gelöscht werden. Alternative: Bei der Formulierung des Fremdschlüsselconstraints die Option ON DELETE CASCADE verwenden (gefährlich!!) 34

35 Standard SQL-99 DML Komponente: update Statement Syntax: UPDATE < table name > SET < column name > = < scalar expression > [ {, < column name > = < scalar expression > }... ] (< column list >) = ( select Statement ) [ WHERE - Klausel ]; Auch hier ist sehr wichtig, die optionale WHERE - Klausel nicht zu vergessen, da sonst alle Datensätze entsprechend den Vorgaben aktualisiert werden!! 35

36 Standard SQL-99 DML Komponente: update Statement Beispiele: update dozent set vorname = Klaus, name = Trophobie ; Ergebnis: Alle Datensätze der Tabelle Dozent bekommen die Werte Klaus und Trophobie in den Attributen vorname und name!! update dozent set vorname = Klaus, name = Trophobie where doznr = 25; Ergebnis: Nur der Datensatz zur doznr 25 wird verändert.!! update dozent set (vorname, name) = (select vorname, name from person where persnr = 17) where doznr = 32; Ergebnis: Nur der Datensatz zur doznr 32 wird verändert.!! 36

37 Standard SQL-99 DML Komponente: select Statement Das Standard SQL-99 select Statement besteht aus den folgenden Klauseln: SELECT - Klausel FROM - Klausel [ WHERE - Klausel [ GROUP BY - Klausel bestimmt das Layout der Ergebnistabelle bestimmt die Quellen der Daten bestimmt die Selektionskriterien ] bestimmt die Gruppierung bei Gruppenfunktionen [ HAVING - Klausel bestimmt Einschränkungen der Gruppierung ] ] [ ORDER BY - Klausel bestimmt die Sortierreihenfolge der Ausgabe ] select - und from - Klausel sind Pflicht, alle anderen Klauseln sind optional! 37

38 Standard SQL-99 DML Komponente: select Statement Beispiele: select vorname, name from dozent; select * from dozent; select name as Dozentenname, gebdat as Geburtstag from dozent; select distinct name from dozent; select vorname, name, fbname from dozent join fachbereich using (fbnr); select count(*) from halten where doznr = 3; select name, (select count(*) from halten where doznr = dozent.doznr) as Anz_vera, (select count(*) from pruefung where doznr = dozent.doznr) as Anz_prue from dozent; select substr(vorname,1,1) '. ' name as Name, cos(doznr), (current_date - gebdat)/365 as P_Alter from dozent; 38

39 Standard SQL-99 DML Komponente: select Statement SELECT - Klausel: (Angabe des Layouts der Ergebnistabelle) select [ DISTINCT ALL ] < column expression > [ AS < name > ] [ {, < column expression > [ AS < name > ] } ] *; < column expression > ::= < numeric expression > < string expression > (select statement) < numeric expression > ::= < attribute name > < parameter > < host variable > < constant > < scalar function > < aggregat function > ( < column expression > + - * / < column expression > ) < scalar function > ::= übliche mathematische Funktionen wie sin(), cos(), abs(), sqrt(), power(), etc... < aggregat function > ::= sum() count() max() min() avg() Beispiel: select preis*1.2 as Neupreis, cos(abs(preis - productnr))/27 from product; 39

40 Standard SQL-99 DML Komponente: select Statement SELECT - Klausel: select [ DISTINCT ALL ] < column expression > [ AS < name > ] [ {, < column expression > [ AS < name > ] } ] *; < column expression > ::= < numeric expression > < string expression > ( select statement ) < string expression > ::= < attribute name > < parameter > < host variable > < constant > < string function > ( < column expression > < column expression > ) < string function > ::= substring(<string> FROM <start> [ FOR <length> ] ) char_length() current_date current_user lower() upper() Beispiel: select substring(vorname FROM 1 FOR 1). name from Personentab; 40

41 Standard SQL-99 DML Komponente: select Statement SELECT - Klausel: Aggregatfunktionen: select count(*) from Pruefung; select count(note) from Pruefung; select count(*) from Pruefung group by doznr; select sum(preis) from Produkttab; select max(preis) from Produkttab; select min(preis) from Produkttab; Anzahl der Datensätze in Pruefung Anzahl der Datensätze in Pruefung, die in note einen Wert ungleich NULL haben Anzahl der Datensätze in Pruefung pro Dozent Gesamtsumme der Preise aller Produkte Maximaler Preis über alle Produkte Minimaler Preis über alle Produkte select avg(preis) from Produkttab; Mittlerer Preis über alle Produkte 41

42 Standard SQL-99 DML Komponente: select Statement FROM - Klausel: (Angabe der Datenquellen) Beispiele: FROM < Table reference > [ {, < Table reference > } ] < Table reference > ::= < Table name > [ AS < alias > ] < Table subquery > [ AS < alias > ] < joined Table > < Table subquery> ::= ( select Statement ) select * from dozent; select * from dozent AS d where d.doznr < 2000; select distinct matnr from (select matnr, vnr, semester from besuchen where matnr > 10); 42

43 Standard SQL-99 DML Komponente: select Statement FROM - Klausel: < joined Table > ::= < Table reference > CROSS JOIN < Table reference > < Table reference > [ NATURAL ] [ < join type > ] join < Table reference > [ < join specification > ] < join type > ::= INNER { LEFT RIGHT FULL } [ OUTER ] UNION < join specification > ::= ON < search condition > USING ( <join column name > [ {, < join column name > } ] ) 43

44 Standard SQL-99 DML Komponente: select Statement FROM - Klausel: Beispiele (ohne joined Table): select d.fbnr, name, vorname, fbname from dozent AS d, fachbereich; Ergebnis: das kartesische Produkt aller Datensätze aus Fachbereich mit allen Datensätzen aus Dozent! select d.fbnr, name, vorname, fbname from dozent AS d, fachbereich AS f where f.fbnr = d.fbnr; Ergebnis: Alle Datensätze aus Dozent mit ihrem zugehörigen Datensatz aus Fachbereich! select d.doznr, d.name, d.vorname, h.vnr, h.semester from dozent d, (select doznr, vnr, semester from halten where semester= SS2012 ) h where d.doznr = h.doznr; Ergebnis: Alle Datensätze aus Dozent mit ihrem im SS2012 gehaltenen Veranstaltungen! 44

45 Standard SQL-99 DML Komponente: select Statement FROM - Klausel: Beispiele (joined Table): select dozent.doznr, name, vorname, fbname from dozent CROSS JOIN fachbereich; Dozent CROSS JOIN Fachbereich liefert das kartesiche Produkt beider Tabellen, jeder Datensatz der einen Tabelle wird mit jedem Datensatz der anderen Tabelle verknüpft. select doznr, name, vorname, fbname from dozent NATURAL JOIN fachbereich; Beim NATURAL JOIN wird zunächst das kartesische Produkt der Tabellen gebildet. Dann werden implizit die namensgleichen Attribute in beiden Tabellen mit = verglichen. Mehrere solche Gleichheitsbedingungen werden mit dem booleschen Operator AND verknüpft. Abschließend werden namensgleiche Attribute herausprojiziert, so dass jeder Attributname in der Ergebnistabelle nur einmal vorkommt: Beispiel: Select * from dozent NATURAL JOIN student; 45

46 Standard SQL-99 DML Komponente: select Statement FROM - Klausel: Beispiele (joined Table): select doznr, name, vorname, fbname from dozent INNER JOIN fachbereich USING (fbnr); INNER ist default und kann weggelassen werden. Ohne das Schlüsselwort NATURAL muss über USING angegeben werden, welche namensgleichen Attribute im kartesischen Produkt der beiden Tabellen auf Wertegleichheit überprüft werden sollen! Diese werden dann nur einmal ausgegeben. Weitere namensgleiche Attribute werden doppelt ausgegeben! Beispiel: select * from dozent join student using(vorname, name); select dozent.doznr, name, vorname, fbname from dozent JOIN fachbereich ON (dozent.fbnr = fachbereich.fbnr); ON <search condition> liefert aus dem kartesischen Produkt der beiden Tabellen die Datensätze, die der search condition genügen. Hier sind alle arithmetischen Vergleichsoperatoren zulässig, nicht nur =. Alle selektierten Attribute werden ausgegeben, namensgleiche Attribute doppelt. Diese müssen mit einem vorangestellten Tabellennamen eindeutig gemacht werden! Beispiel:select doznr, dozent.name, dozent.gebdat, matnr, student.name, student.gebdat from dozent join student on(dozent.gebdat < student.gebdat); 46

47 Standard SQL-99 DML Komponente: select Statement FROM - Klausel: Beispiele (joined Table): select * from dozent UNION JOIN fachbereich; Liefert eine neue Tabelle mit allen Attributen aus Dozent und allen Attributen aus Fachbereich. Hat die Tabelle Dozent 5 Datensätze und die Tabelle Fachbereich 8 Datensätze, enthält die neue Tabelle also 13 Datensätze, wobei die Dozentendatensätze mit NULL-Werten in den Attributen von Fachbereich ergänzt werden und umgekehrt. Outer Join: Ein Outer Join liefert wie ein Inner Join zunächst die Datensätze aus dem kartesischen Produkt der beiden Tabellen, entsprechend dem wertemäßigen Vergleich der Attribute mittels using bzw. search condition. Zusätzlich werden auch solche Datensätze der einen Tabelle ausgegeben, die nur in einer Tabelle vorkommen und zu denen es gemäß dem Vergleich keine entsprechenden Datensätze in der anderen Tabelle gibt (sogenannte Dangling-Tupel). 47

48 Standard SQL-99 DML Komponente: select Statement FROM - Klausel: Beispiele (joined Table, OUTER JOIN): select doznr, name, vorname, vnr, semester from dozent FULL OUTER JOIN halten USING (doznr); Liefert auch Dozenten, die keine Veranstaltung gehalten haben und Veranstaltungen, die noch nicht gehalten wurden. select doznr, name, vorname, vnr, semester from dozent LEFT OUTER JOIN halten USING (doznr); Liefert auch Dozenten, die keine Veranstaltung gehalten haben (Datensätze der linken Tabelle, zu denen es keine Einträge in der rechten Tabelle gibt). select doznr, name, vorname, vnr, semester from dozent RIGHT OUTER JOIN halten USING (doznr); Liefert auch Veranstaltungen, die nicht gehalten wurden (Datensätze der rechten Tabelle, zu denen es keine Einträge in der linken Tabelle gibt). 48

49 Standard SQL-99 DML Komponente: select Statement WHERE - Klausel: (Angabe von Suchkriterien) WHERE < conditional expression > < conditional expression > ::= < conditional term > < conditional expression > OR < conditional term > < conditional term > ::= < conditional factor > < conditional term > AND < conditional factor > < conditional factor > ::= [ NOT ] < conditional test > < conditional test > ::= < conditional primary > [ [ NOT ] TRUE FALSE ] < conditional primary > ::= < simple condition > ( < conditional expression > ) < simple condition > ::= < comparisation condition > < BETWEEN condition > < LIKE condition > < IN condition > < MATCH condition > < EXISTS condition > 49

50 Standard SQL-99 DML Komponente: select Statement WHERE - Klausel: WHERE < conditional expression > Vereinfacht ausgedrückt: eine where - Bedingung ist eine Kombination von einfachen Suchbedingungen, verknüpft mit den booleschen Operatoren NOT, AND oder OR Einfache Suchbedingungen sind: Vergleichsbedingungen: <, <=, =, >, >=, <>, IS, IS NOT BETWEEN Bedingung LIKE Bedingung IN Bedingung MATCH Bedingung EXISTS Bedingung 50

51 Standard SQL-99 DML Komponente: select Statement WHERE - Klausel: Vergleichsbedingung Vorab ein paar einfache Beispiele: select doznr, name from dozent where gebdat < ; BETWEEN Bedingung select doznr, name from dozent where gebdat between and ; LIKE Bedingung IN Bedingung MATCH Bedingung select doznr, name from dozent where name like M% ; select doznr, name from dozent where name in ( Meier, Schulze, Schmidt, Kunz ); select doznr, name from dozent where doznr match unique (select doznr from halten); EXISTS Bedingung select doznr, name from dozent where not exists (select * from halten where doznr = dozent.doznr); 51

52 Standard SQL-99 DML Komponente: select Statement WHERE - Klausel: Vergleichsbedingungen Syntax: where < column expression > < Vergleichsoperator > < row constructor > < column expression > ::= siehe select - Klausel < row constructor > ::= < column expression > NULL (select statement ) < Vergleichsoperator > ::= < <= = <> > >= IS IS NOT Beispiel: select vorname, name from dozent where (gebdat < to_date(' ','dd.mm.yyyy') OR gebdat < (select gebdat from dozent where name= 'Huana') ) AND vorname IS NOT NULL; 52

53 Standard SQL-99 DML Komponente: select Statement WHERE - Klausel: BETWEEN Bedingung Syntax: where < column expression > [ NOT ] BETWEEN < row constructor > AND <row constructor > Beispiel: select vorname, name from dozent where gebdat BETWEEN (select gebdat from dozent where name = Huana ) AND (select max(gebdat) from dozent); 53

54 Standard SQL-99 DML Komponente: select Statement WHERE - Klausel: LIKE Bedingung Syntax: where < character string expression > [ NOT ] LIKE < pattern > [ ESCAPE < character > ] < pattern > ::= < character string expression > Sonderzeichen: _ Platzhalter für genau ein Zeichen % Platzhalter für eine beliebige Zeichenkette Ausschalten der Bedeutung der Sonderzeichen mit ESCAPE Beispiele: select doznr from dozent where name like M_ller% ; select dateiname from Mediendateien where dateiname like =_% ESCAPE = ; 54

55 Standard SQL-99 DML Komponente: select Statement WHERE - Klausel: IN Bedingung Syntax: where < column expression > [ NOT ] IN < row constructor> Beispiele: select name, vorname from dozent NATURAL JOIN fachbereich where ort in ( Informatik, Betriebswirtschaft, Elektrotechnik ); select vorname, name from dozent where doznr not in (select doznr from halten where semester = WS2012/13 ); 55

56 Standard SQL-99 DML Komponente: select Statement WHERE - Klausel: MATCH Bedingung Syntax: where < column expression > MATCH [ UNIQUE ] (select statement) Beispiele: a) wird UNIQUE nicht angegeben, ist die MATCH Bedingung äquivalent zur IN Bedingung! b) wird UNIQUE angegeben, hat die MATCH Bedingung den Wert TRUE, falls das select Statement genau einen Wert ergibt, der dem column expression entspricht! a) select vorname, name from dozent where doznr MATCH (select doznr from halten where semester= SS2013 ); b) select vorname, name from dozent where doznr MATCH UNIQUE (select doznr from halten where semester = SS2013 ); 56

57 Standard SQL-99 DML Komponente: select Statement WHERE - Klausel: EXISTS Bedingung Syntax: where [ NOT ] EXISTS (select statement) Diese Bedingung testet auf die Existenz kompletter Datensätze! Deshalb muß das select Statement eine select * Klausel enthalten! Außerdem müssen die beiden select Statements über eine Primär- Fremdschlüssel Beziehung verbunden werden! Beispiel: select vorname, name from dozent where NOT EXISTS (select * from pruefung where doznr = dozent.doznr); 57

58 Standard SQL-99 DML Komponente: select Statement GROUP BY - Klausel: (Gruppierung bei Gruppenfunktionen) Syntax: GROUP BY < grouping column list > Beispiele: Die group by Klausel muß gesetzt werden, wenn in der select Klausel neben Gruppenfunktionen noch andere Ausdrücke selektiert werden! Zur Erinnerung: Gruppen- bzw Aggregatfunktionen sind: max(), min(), sum(), avg(), count() 1. select count(*) from halten; Ergebnis: Die Anzahl der Datensätze in der Tabelle Halten. Eine Gruppierung ist nicht erforderlich. 58

59 Standard SQL-99 DML Komponente: select Statement GROUP BY - Klausel: Beispiele: 2. select doznr, count(*) from halten group by doznr; Ergebnis: Die Anzahl der Halten-Datensätze pro Dozent in der Tabelle Halten. Eine Gruppierung ist notwendig, da außer der Gruppenfunktion noch ein Attribut selektiert wird! 3. select doznr, max(count(*)) from Halten group by doznr; Ergebnis: Die Dozentennummern mit den meisten Halten-Datensätzen in der Tabelle Halten. Eine Gruppierung ist notwendig, da außer der Gruppenfunktion noch ein Attribut selektiert wird und eine Gruppenfunktion auf eine andere Gruppenfunktion angewendet wird! Wird von Oracle und PostgreSQL nicht unterstützt!! 4. select doznr, vorname, name, count(*) from dozent natural join halten group by doznr, vorname, name; Die Gruppierung muß auf alle Attribute der select Klausel außer den Gruppenfunktionen angewendet werden! 59

60 Standard SQL-99 DML Komponente: select Statement HAVING - Klausel: (Einschränkende Bedingungen zur Gruppierung) Syntax: HAVING < simple condition > Beispiele: select doznr, count(*) from halten group by doznr HAVING count(*) > 2; Ergebnis: Die Dozenten die mehr als 2 Datensätze in der Tabelle Halten haben. select vorname, name from dozent natural join halten group by vorname, name HAVING count(*) = (select max(count(*)) from halten group by doznr); Ergebnis: Die Dozenten mit den meisten Halten-Datensätzen. 60

61 Standard SQL-99 DML Komponente: select Statement ORDER BY - Klausel: (Bestimmung der Sortierreihenfolge) Syntax: ORDER BY < sort specification > [ {, < sort specification > }... ] < sort specification > ::= < scalar expression > [ ASC DESC ] Beispiele: select doznr, name, vorname from dozent ORDER BY name; Ergebnis: Die Datensätze werden nach Name sortiert ausgegeben. select doznr, name, vorname from dozent ORDER BY name, vorname; Ergebnis: Die Datensätze werden nach Name, dann nach Vorname sortiert ausgegeben. select doznr, name, vorname, gebdat from dozent ORDER BY gebdat ASC; Ergebnis: Die Datensätze werden aufsteigend nach Geburtsdatum sortiert ausgegeben. 61

62 Standard SQL-99 DML Komponente: select Statement Mengentheoretische Operationen: Da select Statements immer eine Tabelle, also eine Menge von Datensätzen als Ergebnis haben, können select Statements durch die aus der Mathematik bekannten Mengenoperatoren Vereinigung, Durchschnitt und Differenz verknüpft werden. Syntax: (select Statement) UNION INTERSECT EXCEPT (select Statement); Achtung: Oracle hat die Differenz mit MINUS statt EXCEPT realisiert!! PostgreSQL verwendet EXCEPT Bedingungen an die select Statements: 1. Beide Statements müssen die gleiche Anzahl von Attributen in der select Klausel haben! 2. Beide Statements müssen in der Reihenfolge vergleichbare Datentypen in der select Klausel haben! 62

63 Standard SQL-99 DML Komponente: select Statement Mengentheoretische Operationen: Beispiele: (select vorname, name from dozent where gebdat < ) UNION (select vorname, name from dozent where geschlecht = W ); Ergebnis: Alle Dozenten, die vor dem geboren sind oder die weiblich sind. (select vorname, name from dozent where gebdat < ) INTERSECT (select vorname, name from dozent where geschlecht = W ); Ergebnis: Alle weiblichen Dozenten, die vor dem geboren sind. (select vorname, name from dozent where gebdat < ) EXCEPT (select vorname, name from dozent where geschlecht = W ); Ergebnis: Alle männlichen Dozenten, die vor dem geboren sind. 63

64 Standard SQL-99 DML Komponente: select Statement Mengentheoretische Operationen: Beispiele: (select vorname, name, gebdat from dozent where gebdat < ) UNION (select vorname, name from dozent where geschlecht = W ); Ergebnis: Fehler!! Ungleiche Anzahl von Attributen in den select-klauseln!! (select vorname, gebdat from dozent where gebdat < ) INTERSECT (select gebdat, name from dozent where geschlecht = W ); Ergebnis: Fehler!! Nicht vergleichbare Datentypen!! (select doznr, name from dozent where gebdat < ) EXCEPT (select fbnr, fbname from fachbereich); Ergebnis: syntaktisch korrekt, semantisch Unsinn! 64

65 Standard SQL-99 Fazit: Die DML-Komponente des Standard SQL-99 Sprachumfangs enthält die Statements insert, update, delete und select. Nur darüber können Tabellendaten hinzugefügt, verändert, gelöscht oder angezeigt werden. insert, update und delete Statements müssen irgendwann durch ein Transaktionsstatement (COMMIT oder ROLLBACK) bestätigt oder zurückgenommen werden. (Transaktionskonzept!) Die DDL-Komponente von SQL-99 enthält die Statements create, alter, drop, grant und revoke. Außerdem werden die beiden Transaktionsstatements commit und rollback dazugezählt. create, alter, drop, grant und revoke haben im Standard ein implizites commit! 65

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software SQL Tutorial SQL - Tutorial SS 06 Hubert Baumgartner INSO - Industrial Software Institut für Rechnergestützte Automation Fakultät für Informatik Technische Universität Wien Inhalt des Tutorials 1 2 3 4

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo. Mengenvergleiche: Mehr Möglichkeiten als der in-operator bietet der θany und der θall-operator, also der Vergleich mit irgendeinem oder jedem Tupel der Unteranfrage. Alle Konten außer das, mit dem größten

Mehr

SQL. Fortgeschrittene Konzepte Auszug

SQL. Fortgeschrittene Konzepte Auszug SQL Fortgeschrittene Konzepte Auszug Levels SQL92 Unterteilung in 3 Levels Entry Level (i.w. SQL89) wird von nahezu allen DBS Herstellern unterstützt Intermediate Level Full Level SQL DML 2-2 SQL92 behebt

Mehr

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL Datenmodifikation mit SQL Folie 45 SQL - Datenmodifikation Einfügen INSERT INTO Relation [(Attribut, Attribut,...)] VALUES (Wert, Wert,...) INSERT INTO Relation [(Attribut, Attribut,...)] SFW-Anfrage Ändern

Mehr

Informatik 12 Datenbanken SQL-Einführung

Informatik 12 Datenbanken SQL-Einführung Informatik 12 Datenbanken SQL-Einführung Gierhardt Vorbemerkungen Bisher haben wir Datenbanken nur über einzelne Tabellen kennen gelernt. Stehen mehrere Tabellen in gewissen Beziehungen zur Beschreibung

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

SQL (Structured Query Language) Schemata Datentypen

SQL (Structured Query Language) Schemata Datentypen 2 SQL Sprachelemente Grundlegende Sprachelemente von SQL. 2.1 Übersicht Themen des Kapitels SQL Sprachelemente Themen des Kapitels SQL (Structured Query Language) Schemata Datentypen Im Kapitel SQL Sprachelemente

Mehr

Sructred Query Language

Sructred Query Language Sructred Query Language Michael Dienert 11. November 2010 Inhaltsverzeichnis 1 Ein kurzer Versionsüberblick 1 2 SQL-1 mit einigen Erweiterungen aus SQL-92 2 3 Eine Sprache zur Beschreibung anderer Sprachen

Mehr

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin PhpMyAdmin = grafsches Tool zur Verwaltung von MySQL-Datenbanken Datenbanken erzeugen und löschen Tabellen und Spalten einfügen,

Mehr

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle. Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu

Mehr

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL Relationales Modell: SQLDDL SQL als Definitionssprache SQLDDL umfaßt alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben Externe Ebene

Mehr

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung }

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung } Create-Table-Befehl CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung } [, ] ) Liste der wichtigsten Datentypen in SQL INTEGER INT SMALLINT NUMERIC(x,y)

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language) Einführung in SQL 1. Grundlagen Structured Query Language Viele Dialekte Unterteilung: i. DDL (Data Definition Language) ii. iii. DML (Data Modifing Language) DRL (Data Retrival Language) 1/12 2. DDL Data

Mehr

Views in SQL. 2 Anlegen und Verwenden von Views 2

Views in SQL. 2 Anlegen und Verwenden von Views 2 Views in SQL Holger Jakobs bibjah@bg.bib.de, holger@jakobs.com 2010-07-15 Inhaltsverzeichnis 1 Wozu dienen Views? 1 2 Anlegen und Verwenden von Views 2 3 Schreibfähigkeit von Views 3 3.1 Views schreibfähig

Mehr

Abfragen (Queries, Subqueries)

Abfragen (Queries, Subqueries) Abfragen (Queries, Subqueries) Grundstruktur einer SQL-Abfrage (reine Projektion) SELECT [DISTINCT] {* Spaltenname [[AS] Aliasname ] Ausdruck} * ; Beispiele 1. Auswahl aller Spalten SELECT * ; 2. Auswahl

Mehr

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I SQL SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R VII-1 Beispielrelationen Filiale ( Name Leiter Stadt Einlagen ) Konto ( KontoNr KundenNr FilialName Saldo ) Kredit

Mehr

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198

Bibliografische Informationen digitalisiert durch http://d-nb.info/995021198 Auf einen Blick 1 Einleitung 15 2 Datenbankentwurf 23 3 Datenbankdefinition 43 4 Datensätze einfügen (INSERT INTO) 95 5 Daten abfragen (SELECT) 99 6 Daten aus mehreren Tabellen abfragen (JOIN) 143 7 Unterabfragen

Mehr

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski. www.iit.tu-cottbus.de 08 Datenbanken Übung SQL Einführung Eckbert Jankowski www.iit.tu-cottbus.de Datenmodell (Wiederholung, Zusammenfassung) Objekte und deren Eigenschaften definieren Beziehungen zwischen den Objekten erkennen/definieren

Mehr

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)

SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans schmidt@cs.ro

Mehr

SQL: statische Integrität

SQL: statische Integrität SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen

Mehr

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language: SQL Structured Query Language: strukturierte Datenbankabfragesprache eine Datenbanksprache zur Definition, Abfrage und Manipulation von Daten in relationalen Datenbanken In der SQL-Ansicht arbeiten In

Mehr

Unterabfragen (Subqueries)

Unterabfragen (Subqueries) Unterabfragen (Subqueries) Die kürzeste Formulierung ist folgende: SELECT Felderliste FROM Tabelle1 WHERE Tabelle1.Feldname Operator (SELECT Feldname FROM Tabelle2 WHERE Bedingung); wobei Tabelle1 und

Mehr

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt DBS ::: SERIE 5 Die Relation produkt enthält Hersteller, Modellnummer und Produktgattung (pc, laptop oder drucker aller Produkte. Die Modellnummer ist (der Einfachheit halber eindeutig für alle Hersteller

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1) Vorlesung #3 SQL (Teil 1) Fahrplan Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE...) SQL DML (INSERT, UPDATE, DELETE)

Mehr

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen.

Aufbau des SELECT-Befehls. Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. Datenbankabfragen (Query) mit SQL (Structured Query Language) 1 Aufbau des SELECT-Befehls Im Folgenden werden zunächst Abfragen aus einer Tabelle vorgenommen. SQL-Syntax: SELECT spaltenliste FROM tabellenname

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004) Nachtrag: Farben Farbblindheit (Light und Bartlein 2004) 1 Vorgeschlagene Farbskalen (Light and Bartlein 2004) Farbkodierung metrisch skalierter Daten Unterscheide: 1. Sequential Data (ohne Betonung der

Mehr

IV. Datenbankmanagement

IV. Datenbankmanagement Wirtschaftsinformatik 2 (PWIN) IV. Datenbankmanagement Kapitel 2: Datenmanipulationssprache SQL Wirtschaftsinformatik 2 (PWIN) SS 2009, Professur für Mobile Business & Multilateral Security 1 Agenda 1.

Mehr

Übersicht der wichtigsten MySQL-Befehle

Übersicht der wichtigsten MySQL-Befehle Übersicht der wichtigsten MySQL-Befehle 1. Arbeiten mit Datenbanken 1.1 Datenbank anlegen Eine Datenbank kann man wie folgt erstellen. CREATE DATABASE db_namen; 1.2 Existierende Datenbanken anzeigen Mit

Mehr

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:

Mehr

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel Anwendungsentwicklung Datenbanken SQL Stefan Goebel SQL Structured Query Language strukturierte Abfragesprache von ANSI und ISO standardisiert deklarativ bedeutet was statt wie SQL beschreibt, welche Daten

Mehr

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY.

Details zu den Ausdrücken nach FROM, WHERE, GROUP BY und HAVING finden Sie in den Abschnitten über JOIN, WHERE und GROUP BY. SELECT - Der Grundbefehl zur Auswahl von Daten Die SELECT-Anweisung fragt Daten aus einer Datenbank ab und stellt diese in einer virtuellen Tabelle zur Verfügung. Diese virtuelle Tabelle, eine Menge von

Mehr

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel

4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel 4.14.3 Bedingungen über Werte 4.14.4 Statische Integrität Zu jeder Tabelle werden typischerweise ein Primärschlüssel und möglicherweise weitere Schlüssel festgelegt (UNIQUE-Klausel). In jeder Instanz zu

Mehr

Datenbanken: Relationales Datenbankmodell RDM

Datenbanken: Relationales Datenbankmodell RDM Das RDM wurde in den 70'er Jahren von Codd entwickelt und ist seit Mitte der 80'er Jahre definierter Standard für Datenbanksysteme! Der Name kommt vom mathematischen Konzept einer Relation: (Sind A, B

Mehr

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. Metadaten

Fakultät für Informatik & Wirtschaftsinformatik DB & IS II - SS 2015. Metadaten Fakultät für Informatik & Wirtschaftsinformatik Metadaten Metadaten sind Daten über Daten Data-Dictionary speichert Informationen über die Struktur der Daten, z.b.: Tabellen, Spalten, Datentypen Primär-

Mehr

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Datumsangaben, enthält mindestens Jahr, Monat, Tag Datenbanken mit SQL Informatik - Sprenger Häufig wird mit Tabellenkalkulationen gearbeitet, obwohl der Einsatz von Datenbanken sinnvoller ist. Tabellenkalkulationen wie Microsoft Excel oder LibreOffice

Mehr

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert.

Die bisher bereits bekannten Aggregatsfunktionen MIN, MAX, SUM, AVG, COUNT, VARIANCE und STDDEV wurden um FIRST und LAST erweitert. Betrifft Autor FIRST, LAST Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem NF9i-Kurs, NF9i-Techno-Circle der Trivadis und Oracle9i Data Warehousing

Mehr

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung 6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten

Mehr

7. Übung - Datenbanken

7. Übung - Datenbanken 7. Übung - Datenbanken Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: DBS a Was ist die Kernaufgabe von Datenbanksystemen? b Beschreiben Sie kurz die Abstraktionsebenen

Mehr

SQL - Übungen Bearbeitung der Datenbank Personal (1)

SQL - Übungen Bearbeitung der Datenbank Personal (1) Bearbeitung der Datenbank Personal (1) 1. Abfragen einer einzigen Tabelle 1.1. Zeigen Sie alle Informationen an, die über die Kinder der Mitarbeiter gespeichert sind. 1.2. Zeigen Sie aus der Tabelle stelle

Mehr

Objektrelationale Datenbanken

Objektrelationale Datenbanken Vorlesung Datenbanksysteme vom 26.11.2008 Objektrelationale Datenbanken Konzepte objektrelationaler DBs SQL:1999 OO vs. OR Konzepte objektrelationaler Datenbanken Große Objekte (LOBs: Large Objects) Mengenwertige

Mehr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr Raum: LF 230 Bearbeitung: 9.-11. Mai 2005 Datum Gruppe Vorbereitung Präsenz Aktuelle Informationen unter: http://www.is.informatik.uni-duisburg.de/courses/dbp_ss03/ Tabellen in IBM DB2 Tabellen Eine relationale

Mehr

Referenzielle Integrität SQL

Referenzielle Integrität SQL Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet

Mehr

Oracle: Abstrakte Datentypen:

Oracle: Abstrakte Datentypen: Oracle: Abstrakte Datentypen: Oracle bietet zwei mögliche Arten um abstrakte Datentypen zu implementieren: Varying Array Nested Table Varying Array (kunde) kdnr kdname gekaufteart 1 Mustermann 1 4 5 8

Mehr

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 Hochschule Darmstadt DATENBANKEN Fachbereich Informatik Praktikum 3 Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum: 11.09.2009 PL/SQL Programmierung Anwendung des Cursor Konzepts und Stored Procedures Und Trigger

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VL Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

dbis Praktikum DBS I SQL Teil 2

dbis Praktikum DBS I SQL Teil 2 SQL Teil 2 Übersicht Fortgeschrittene SQL-Konstrukte GROUP BY HAVING UNION / INTERSECT / EXCEPT SOME / ALL / ANY IN / EXISTS CREATE TABLE INSERT / UPDATE / DELETE 2 SELECT Syntax SELECT FROM [WHERE [GROUP

Mehr

4. Datenbanksprache SQL

4. Datenbanksprache SQL 4. Datenbanksprache SQL Standard-Sprache für das Arbeiten mit relationalen Datenbanken: Structured Query Language Datendefinition: Anlegen, Ändern und Löschen von Datenbankstrukturen Datenmanipulation:

Mehr

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Hochschule Karlsruhe Technik und Wirtschaft- 10.7.2013. Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt. Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Datenbanken und Informationssysteme II Szenario: Projektverwaltung. Es gibt Projekte, Projektleiter, Mitarbeiter und ihre Zuordnung zu Projekten.

Mehr

DB1. DB SQL-DQL 1 Mario Neugebauer

DB1. DB SQL-DQL 1 Mario Neugebauer DB1 DB1-12 041-SQL-DQL 1 Mario Neugebauer Einführung Informationsmodellierung Relationales Datenbankmodell Datenbanksprache SQL Einführung Daten-Abfrage-Sprache - DQL Daten-Definitions-Sprache - DDL Daten-Manipulations-Sprache

Mehr

Konstante Relationen

Konstante Relationen Konstante Relationen values-syntax erzeugt konstante Relation values ( [, Konstante] * )[, ( [, Konstante] * )]* Beispiel values (1, eins ), (2, zwei ), (3, drei ); Resultat ist eine

Mehr

Praktische SQL-Befehle

Praktische SQL-Befehle Praktische SQL-Befehle Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Nested Selects Inserts Updates Views Triggers Constraints Functions Voraussetzung: Laptop + MySQL/

Mehr

Labor 3 - Datenbank mit MySQL

Labor 3 - Datenbank mit MySQL Labor 3 - Datenbank mit MySQL Hinweis: Dieses Labor entstand z.t. aus Scripten von Prof. Dr. U. Bannier. 1. Starten des MySQL-Systems MySQL ist ein unter www.mysql.com kostenlos erhältliches Datenbankmanagementsystem.

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Kapitel DB:VI (Fortsetzung)

Kapitel DB:VI (Fortsetzung) Kapitel DB:VI (Fortsetzung) VI. Die relationale Datenbanksprache SQL Einführung SQL als Datenanfragesprache SQL als Datendefinitionssprache SQL als Datenmanipulationssprache Sichten SQL vom Programm aus

Mehr

Schnellübersichten. SQL Grundlagen und Datenbankdesign

Schnellübersichten. SQL Grundlagen und Datenbankdesign Schnellübersichten SQL Grundlagen und Datenbankdesign 5 Datenbanken 2 6 Tabellen erstellen und verwalten 3 7 Daten einfügen, aktualisieren, löschen 4 8 Einfache Datenabfragen 5 9 Schlüsselfelder und Indizes

Mehr

Referentielle Integrität

Referentielle Integrität Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische

Mehr

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL. Datenintegrität Arten von Integritätsbedingungen Statische Integritätsbedingungen Referentielle Integrität Integritätsbedingungen in SQL Trigger 1 Datenintegrität Einschränkung der möglichen Datenbankzustände

Mehr

3.17 Zugriffskontrolle

3.17 Zugriffskontrolle 3. Der SQL-Standard 3.17. Zugriffskontrolle Seite 1 3.17 Zugriffskontrolle Datenbanken enthalten häufig vertrauliche Informationen, die nicht jedem Anwender zur Verfügung stehen dürfen. Außerdem wird man

Mehr

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis. SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit

Mehr

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. MySQL-Befehle 1. Einleitung In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben. 2. Arbeiten mit Datenbanken 2.1 Datenbank anlegen Eine Datenbank kann man wie folgt

Mehr

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7 1 Data Definition Language (DDL)... 2 1.1 Tabellen erstellen... 2 1.1.1 Datentyp...... 2 1.1.2 Zusätze.... 2 1.2 Tabellen löschen... 2 1.3 Tabellen ändern (Spalten hinzufügen)... 2 1.4 Tabellen ändern

Mehr

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten. Lehrstuhl für Datenbanken und Informationssysteme Wintersemester 1999/2000 Universität Augsburg, Institut für Informatik 25. Februar 2000 Prof. Dr. Werner Kießling A. Leubner, M. Wagner Datenbanksysteme

Mehr

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!

Mehr

Beispiel 1: Filmdatenbank

Beispiel 1: Filmdatenbank Beispiel 1: Filmdatenbank Die Filmdatenbank hat drei Tabellen (ACTOR, MOVIE, PLAYED) Aufgabe 1: Erstelle mit Hilfe der SQL-DDL die drei Tabellen und die Datenbank (MOVIEDB) ACTOR (ActorID, Name, Birthday,

Mehr

MySQL: Einfaches Rechnen. www.informatikzentrale.de

MySQL: Einfaches Rechnen. www.informatikzentrale.de MySQL: Einfaches Rechnen Vorweg: Der Merksatz Warum geht Herbert oft laufen? Vorweg: Der Merksatz Warum geht Herbert oft laufen?...... WHERE... GROUP BY... HAVING... ORDER BY... LIMIT Beispieldatenbank

Mehr

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note:

Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note: 1 Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007 Name: Note: Nr. Aufgaben Max. Punkte Erreichte Punkte 1 Grundlagen ~ 10% Vgl. Hinweis unten 2 Integrität, Procedures, Triggers, Sichten ~ 20%

Mehr

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung Inhalt Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle Daten und Tabellen Normalisierung, Beziehungen, Datenmodell SQL - Structured Query Language Anlegen von Tabellen Datentypen (Spalten,

Mehr

Benutzerverwaltung, Sichten und Datenintegrität

Benutzerverwaltung, Sichten und Datenintegrität Benutzerverwaltung, Sichten und Einige Vergleiche zwischen MySQL, Oracle und PostgreSQL OStR Michael Dienert, StR Ahmad Nessar Nazar 29. November und 30. November 2011 1 von 113 OStR Michael Dienert, StR

Mehr

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Carl-Engler-Schule Karlsruhe Datenbank 1 (5) Informationen zur Datenbank 1. Definition 1.1 Datenbank-Basis Eine Datenbank-Basis ist eine Sammlung von Informationen über Objekte (z.b Musikstücke, Einwohner,

Mehr

Vorlesung Dokumentation und Datenbanken Klausur

Vorlesung Dokumentation und Datenbanken Klausur Dr. Stefan Brass 5. Februar 2002 Institut für Informatik Universität Giessen Vorlesung Dokumentation und Datenbanken Klausur Name: Geburtsdatum: Geburtsort: (Diese Daten werden zur Ausstellung des Leistungsnachweises

Mehr

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck

SQL Teil 2. SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Komplexer SELECT-Ausdruck SELECT Projektion Selektion Vereinigung, Schnitt, Differenz Verbund Fahren fort mit SQL Befehlen. Bilden Relationenalgebra auf SQL ab. So Umsetzung von Anfragen an die DB (bzw. Tabellen) möglich. SELECT

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.

Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB. Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5. Leseprobe: SQL mit MySQL - Band 4 Kompendium mit Online-Übungs-DB Kompendium zur schnellen Kurzinformation der Datenbanksprache SQL/MySQL 5.1 im Internet: www.datenbanken-programmierung.de... 3.0 SQL nach

Mehr

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 4 Dynamisches SQL Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!

Mehr

Arbeiten mit einem lokalen PostgreSQL-Server

Arbeiten mit einem lokalen PostgreSQL-Server Arbeiten mit einem lokalen PostgreSQL-Server Download für das Betriebssystem Windows PostgreSQL-Server und pgadmin: http://www.enterprisedb.com/products-servicestraining/pgdownload#windows pgadmin: http://www.pgadmin.org/download/windows.php

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Informationen aus der Datenbank lesen Klasse SQLiteDatabase enthält die Methode query(..) 1. Parameter: Tabellenname

Mehr

Relationales Datenbanksystem Oracle

Relationales Datenbanksystem Oracle Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information

Mehr

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 8 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 12.01. 2004 Integritätsbedingungen

Mehr

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 6. Übung zur Vorlesung Datenbanken im Sommersemester 2007 mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007 Aufgabe 1: Rekursion Betrachten Sie die folgende Tabelle

Mehr

Übersicht über Datenbanken

Übersicht über Datenbanken Übersicht über Datenbanken Vergleich zwischen normaler Datenorganisation und Datenbanken Definition einer Datenbank Beispiel (inkl. Zugriff) Der Datenbankadministrator Relationale Datenbanken Transaktionen

Mehr

Datenintegrität. Bisherige Integritätsbedingungen

Datenintegrität. Bisherige Integritätsbedingungen Datenintegrität Integitätsbedingungen chlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Bedingungen an den Zustand der Datenbasis dynamische Bedingungen an Zustandsübergänge

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 7 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe (muehe@in.tum.de) http://www-db.in.tum.de/teaching/ws1314/dbsys/exercises/

Mehr

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Datenbanktechnologie mit praktischen Übungen in MySQL und PHP Übung, Sommersemester 2013 22. April 2013 - MySQL Sebastian Cuy sebastian.cuy@uni-koeln.de Datenbanken Was sind eigentlich Datenbanken? Eine

Mehr

105.3 SQL-Datenverwaltung

105.3 SQL-Datenverwaltung LPI-Zertifizierung 105.3 SQL-Datenverwaltung Copyright ( ) 2009 by Dr. W. Kicherer. This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 2.0 Germany License. To view a

Mehr

SQL Performance - Tips Do's & Don'ts

SQL Performance - Tips Do's & Don'ts SQL Performance - Tips Do's & Don'ts S.K. Consulting GmbH, München DB2_SQL_PERF - 1 - Inhaltsverzeichnis I. Richtlinien bei der Verwendung von SQL 1.1. In Programmen "verbotene" SQL- Anweisungen 1.2 SQL

Mehr

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL-Befehlsliste. Vereinbarung über die Schreibweise Vereinbarung über die Schreibweise Schlüsselwort [optionale Elemente] Beschreibung Befehlsworte in SQL-Anweisungen werden in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche Teile

Mehr

SQL und MySQL. Kristian Köhntopp

SQL und MySQL. Kristian Köhntopp SQL und MySQL Kristian Köhntopp Wieso SQL? Datenbanken seit den frühen 1950er Jahren: Hierarchische Datenbanken Netzwerkdatenbanken Relationale Datenbanken = SQL Relational? 10 9 8 7 6 f(y) := y = x r(y)

Mehr

Datenbanken im WI-Unterricht mit

Datenbanken im WI-Unterricht mit Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 26., 27. und 29. Juni 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material unter: http://www.is.inf.uni-due.de/courses/dbp_ss07/index.html

Mehr

6. Datenintegrität. Integritätsbedingungen

6. Datenintegrität. Integritätsbedingungen 6. Integritätsbedingungen dienen zur Einschränkung der Datenbankzustände auf diejenigen, die es in der realen Welt tatsächlich gibt. sind aus dem erstellten Datenmodell ableitbar (semantisch) und können

Mehr