Datenbanken. SQL Einführung und SQL-DDL

Größe: px
Ab Seite anzeigen:

Download "Datenbanken. SQL Einführung und SQL-DDL"

Transkript

1 Datenbanken SQL Einführung und SQL-DDL

2 SQL Überblick ANSI/ISO standardisierte Datendefinitions (DDL)- Datenmanipulations (DML)- Anfrage (Query)-Sprache SQL-92 weitgehend von den meisten DB- Herstellern implementiert Neuere Standards: SQL-99 und SQL3 (2003) objektrelationale Erweiterung XML teilweise implementiert 2

3 Der SFW-Block SELECT... FROM... WHERE... Standardform einer SQL-Anfrage 3

4 FROM Klausel SELECT * FROM Relationenliste SELECT * FROM Bücher Liefert die gesamte Relation Bücher 4

5 Kartesisches Produkt SELECT * FROM R1, R2 R1 A B C R2 D E F R12 A B C D E F

6 INNER JOIN SELECT * FROM R1, R2 WHERE R1.C=R2.D SELECT * FROM R1 INNER JOIN R2 ON R1.C=R2.D R1 A B C R2 D E F R12 A B C D E F

7 Natürlicher Verbund SELECT * FROM R1 natural join R2 R1 A B C R2 B E F R12 A B C B E F Jene Zeilen werden verbunden, deren gleich benannte Attribute gleiche Werte haben. 7

8 Äußere Verbunde Left Outer Join, Right Outer Join, Full Outer Join 8

9 OUTER JOINS SELECT l.a, l.b, r.c FROM links l LEFT OUTER JOIN rechts r ON l.b=r.b SELECT l.a, r.b, r.c FROM links l RIGHT OUTER JOIN rechts r ON l.b=r.b SELECT l.a, l.b, r.c FROM links l FULL OUTER JOIN rechts r ON l.b=r.b 9

10 SELECT SELECT [DISTINCT] {attribute arithmetischer-ausdruck aggregat-funktion FROM... Attribute werden festgelegt, die im Anfrageergebnis erscheinen sollen Entspricht Projektion in der relationalen Algebra Beispiel: SELECT Preis FROM Artikel 10

11 SELECT II Arithmetische Ausdrücke über Attributen und Konstanten SELECT Preis/1.4 FROM Artikel Aggregatfunktionen über Attributen SELECT SUM (Preis) FROM Artikel SELECT COUNT(*) FROM Artikel DISTINCT: Menge statt Multimenge 11

12 Projektionsergebnis Menge oder Multimenge 12

13 Tupelvariablen und Relationennamen Angabe der Attributnamen durch Präfix ergänzen: SELECT Bücher.ISBN FROM Bücher Tupelvariable kann benutzt werden: SELECT eins.isbn, zwei.titel FROM Bücher eins, Bücher zwei 15

14 Tupelnamen und Relationennamen II Welches Problem gibt es hier? SELECT ISBN, Titel, Stichwort FROM Bücher, Buch_Stichwort WHERE Bücher.ISBN=Buch_Stichwort.ISBN ISBN im SELECT-Teil ist nicht eindeutig Richtig: SELECT Bücher.ISBN, Titel, Stichwort FROM Bücher, Buch_Stichwort WHERE Bücher.ISBN=Buch_Stichwort.ISBN 16

15 WHERE Klausel SELECT... FROM... WHERE Bedingung Selektion von Tupeln der hinter FROM stehenden Relationen, die der hinter WHERE stehenden Bedingung genügen Entspricht Selektion in der relationalen Algebra Bedingung: Konstantenselektion Attributselektion Verbundbedingung Bereichsselektion Ungewissheitsselektion NULL-Selektion Quantifizierte Bedingungen 17

16 Verbundbedingung Relation1.attribut=Relation2.attribut Bsp. Natürlicher Verbund: SELECT Bücher.Titel, Bücher_Stichwort.Stichwort FROM Bücher, Buch_Stichwort WHERE Bücher.ISBN = Buch_Stichwort.ISBN 18

17 Konstanten- und Attributselektion Konstantenselektion Vergleich eines Attributs mit einer Konstante SELECT * FROM Artikel WHERE Preis < 100 Attribut-Selektion Vergleich zweier Attribut mit kompatiblen Wertebereichen SELECT * FROM Artikel WHERE Einkaufspreis = Verkaufspreis 19

18 Bereichsselektion Attribut BETWEEN konstante1 AND konstante2 Achtung: eigentlich von/bis [konstante1, konstante2] Abkürzung für Attribut konstante1 and attribut konstante2 Beispiel: SELECT * FROM Artikel WHERE Preis BETWEEN 100 and

19 Ungewissheitsselektion Attribut LIKE Spezialkonstante Spezialkonstante kann beinhalten % kein oder beliebig viele Zeichen _ genau ein Zeichen 21

20 Ungewissheitsselektion II Beispiel: Selektion von Büchern von Benjamin/Cummings SELECT * FROM Bücher WHERE Verlagsname LIKE `Benj%Cummings% Ist Abkürzung für SELECT * FROM Bücher WHERE Verlagsname = `Benjamin Cummings OR Verlagsname = `Benjamin/Cummings OR Verlagsname = `Benjamin and Cummings OR Verlagsname = `BenjFJSLKDJFCummingsJFDLKJ usw. 22

21 Quantifizierte Bedingungen Vergleich eines Attributs mit einer Menge ALL, ANY, SOME Bsp. ALL: SELECT Note FROM Prüft WHERE Matrikelnr = 1234 AND Note ALL (SELECT Note FROM Prüft WHERE Matrikelnr = 1234) Gibt schlechteste Note des Studenten mit der Matrikelnummer 1234 aus. 23

22 Quantifizierte Bedingungen II Bsp. ANY SELECT Name FROM Student WHERE Matrikelnr = ANY (SELECT Matrikelnr FROM Prüft) Selektiert Namen aller Studenten, die schon geprüft wurden. Unterschied ANY und SOME? Keiner, sind identisch. Grund: englische Grammatik. 24

23 Weitere Bedingungen NULL-Selektion Attribut IS NULL Wählt Tupel aus, die bei einem bestimmten Attribut Nullwerte enthalten Verknüpfungen der Bedingungen OR, AND, NOT 25

24 Relationales Modell: SQL-DDL SQL-DDL umfasst alle Klauseln von SQL, die mit Definition von Typen Wertebereichen Relationenschemata Integritätsbedingungen zu tun haben.

25 SQL Datentypen char(n) varchar(n) numeric(p,s), integer blob oder raw für sehr große binäre Daten clob für sehr große String-Attribute date für Datumsangaben xml für XML-Dokumente... Achtung: Datentypen sind teilweise Hersteller-spezifisch!!! im DBMS-Manual nachlesen, wie der Datentyp definiert ist

26 SQL als Definitionssprache Externe Ebene create view alter view drop view Konzeptuelle Ebene create table alter table drop table

27 SQL als Definitionssprache II Konzeptuelle Ebene create domain alter domain drop domain Interne Ebene create index alter index drop index

28 CREATE TABLE Beispiele CREATE TABLE Bücher (ISBN char(10) NOT NULL, Titel varchar(200), Verlagsname varchar(30)) CREATE TABLE Bücher (ISBN char(10), Titel varchar(200), Verlagsname varchar(30), PRIMARY KEY (ISBN), FOREIGN KEY (Verlagsname) REFERENCES Verlage (Verlagsname))

29 Definition eines Wertebereichs CREATE DOMAIN Gebiete varchar(20) DEFAULT `Informatik CREATE TABLE Vorlesungen ( Bezeichnung VARCHAR(80) NOT NULL, SWS smallint, Semester smallint, Studiengang Gebiete) CREATE TABLE Mitarbeiter ( PANR integer NOT NULL, Fachbereich Gebiete, Gehalt decimal(10,2), Raum integer, Einstellung date)

30 CHECK Klausel CREATE TABLE Vorlesungen ( Bezeichnung varchar(80) PRIMARY KEY, SWS smallint CHECK(SWS>=0), Semester smallint CHECK (Semester BETWEEN 1 AND 9), Studiengang Gebiete)

31 ALTER TABLE ALTER TABLE relationenname ADD spaltenname wertebereich ALTER TABLE Lehrstühle ADD Budget decimal(8,2) Wirkung: Änderung des Relationenschemas im Data-Dictionary. Erweiterung der existierenden Tupel um ein Attribut, welches mit NULL besetzt wird. Angabe von default-werten und check-klausel möglich ADD Budget decimal(8,2) DEFAULT CHECK (Budget > Anzahl_Planstellen * 3000)

32 ALTER und DROP für Attribute ALTER spaltenname DATENTYP Änderung des Datentyps In Oracle: MODIFY spaltenname DATENTYP ALTER spaltenname SET DEFAULT wert Änderung der Defaultwerte DROP spaltenname {RESTRICT CASCADE} Erlaubt Löschen von Attributen, falls keine Sichten und Integritätsbedingungen mit Hilfe dieses Attributs definiert wurden (im Fall RESTRICT) Oder mit gleichzeitiger Löschung dieser Sichten und Integritätsbedingungen (im Fall CASCADE)

33 DROP TABLE DROP TABLE relationenname {RESTRICT CASCADE} Löscht Tabelle (auch das Schema, nicht nur den Inhalt) RESTRICT und CASCADE analog zu DROP bei Attributen

34 SQL Queries Teil 1

35 Schachtelung von Anfragen WHERE Klausel kann geschachtelt werden SFW Blöcke liefern im Allgemeinen mehrere Werte Vergleiche mit Wertemengen Standardvergleiche in Verbindung mit Quantoren ALL oder ANY Spezielle Prädikate für den Zugriff auf Mengen IN und EXISTS 37

36 Das IN-Prädikat und geschachtelte Anfragen Syntax Attribut IN (SFW-Block) Beispiel: SELECT Titel FROM Bücher WHERE ISBN IN (SELECT ISBN FROM EMPFIEHLT) Natürlicher Verbund mit nachfolgender Projektion 38

37 Wie erfolgt die Abarbeitung dieser SQL Abfrage? Ergebnis der inneren SELECT Anweisung hinter IN als Liste von Konstanten einsetzen Dann Auswertung der modifizierten Anfrage: SELECT Titel FROM Bücher WHERE ISBN IN (1111, 2222, 3333, 4444) Was liefert dies Abfrage also? Titel aller empfohlenen Bücher. Liegt hier eine Verzahnung vor? Nein, die innere Abfrage ist unabhängig von der äußeren Abfrage! 39

38 Wie kann man die Abfrage anders formulieren? SELECT Titel FROM Bücher, Empfiehlt WHERE Bücher.ISBN=Empfiehlt.ISBN Gibt es einen Unterschied zu vorher? Duplikate kommen vor, falls ein Buch mehrmals empfohlen wurde. Falls es keine Bücher mit verschiedener ISBN aber gleichem Titel gibt, liefert SELECT DISTINCT Titel... das gleiche Ergebnis. 40

39 Verzahnt geschachtelte Anfragen In der inneren Anfrage Relationen oder Tupelvariablen- Namen aus dem FROM-Teil der äußeren Anfrage verwenden: SELECT Nachname FROM Personen WHERE 1.0 IN (SELECT Note FROM Prüft WHERE PANr=Personen.PANr) Was liefert diese Anfrage? Nachnamen aller Prüfer, die schon einmal die Note 1.0 gegeben haben. 41

40 Abarbeitung 1. In der äußeren Anfrage das erste Personen-Tupel untersuchen und das Ergebnis in die innere Anfrage einsetzen. 2. Innere Anfrage SELECT Note FROM Prüft WHERE PANr=4711 auswerten. Liefert Werteliste (2.0, 3.0). 3. Ergebnis der inneren Anfrage in die äußere einsetzen: 1.0 IN (2.0, 3.0) ergibt FALSE, d.h. ersten Prüfer nicht berücksichtigen. 4. In der äußeren Anfrage das zweite Personen-Tupel untersuchen usw. 42

41 Wie kann man diese Anfrage anders formulieren? SELECT Nachname FROM Personen, Prüft WHERE Personen.PANr=Prüft.PANr AND Prüft.Note=1.0 Unterschied zu vorher? Nachname wird mehrmals ausgegeben, wenn ein Prof. mehrere 1er vergeben hat. 43

42 Noch eine andere Variante: Umdrehen der Abfragen SELECT Nachname FROM Personen WHERE PANr IN (SELECT PANr FROM Prüft WHERE Note = 1.0) Umdrehen ist generell möglich Vorteil? Nicht mehr verzahnt! 44

43 Was liefert diese SQL Abfrage? SELECT Matrikelnummer FROM Prüft WHERE PANr IN (SELECT PANr FROM Prüft WHERE Matrikelnummer = 123) Matrikelnummer aller Studenten, die zumindest einen Prüfer mit dem Studenten 123 gemeinsam hatten. Liegt hier eine Verzahnung vor? Nein, der Gültigkeitsbereich der inneren FROM Klausel bindet stärker. 45

44 Umformulierung mittels Verbund SELECT A.Matrikelnummer FROM Prüft A, Prüft B WHERE B.Matrikelnummer = 123 AND A.PANr = B.PANr 46

45 Was ergibt folgende Anfrage? SELECT X.PANr FROM Prüft X WHERE X.PANr IN (SELECT Y.PANr FROM Prüft Y WHERE Y.Matrikelnummer <> X.Matrikelnummer) Gibt PANr aller Prüfer aus, die mehr als einen Studenten geprüft haben. 47

46 Umformulierung mittels Verbund SELECT DISTINCT X.PANr FROM Prüft X, Prüft Y WHERE X.PANr = Y.PANr AND X.Matrikelnummer <> Y.Matrikelnummer 48

47 Das EXISTS-Prädikat Testet, ob das Ergebnis der inneren Anfrage nicht leer ist. SELECT ISBN FROM BUCH_EXEMPLARE WHERE EXISTS (SELECT * FROM Ausleihe WHERE Inventarnr = Buch_Exemplare.Inventarnr) Was liefert diese Abfrage? Die ISBN der ausgeliehenen Bücher. 49

48 Umformulierung mittels Verbund SELECT ISBN FROM Buch_Exemplare, Ausleihe WHERE Ausleihe.Inventarnr = Buch_Exemplare.Inventarnr 50

49 EXISTS: Simulation des Allquantors SELECT Lehrstuhlbezeichnung FROM Professoren WHERE NOT EXISTS (SELECT * FROM Liest WHERE Liest.PANr = Professoren.PANr AND NOT EXISTS (SELECT * FROM Prüft WHERE Prüft.PANr = Professoren.PANr AND Prüft.V_Bezeichnung=Liest.V_Bezeichnung)) Lehrstuhlbezeichnung von Professoren, die alle Vorlesungen geprüft haben, die sie lesen 51

50 Simulation des Allquantors: Mathematischer Hintergrund Doppelte Negation 52

51 Professoren, die alle VO geprüft haben, die sie lesen Professoren, die keine VO, die sie lesen, nicht geprüft haben Professoren, sodass keine von diesem gelesene VO existiert, für die von ihm keine Prüfung existiert. SELECT Lehrstuhlbezeichnung FROM Professoren WHERE NOT EXISTS (SELECT * FROM Liest WHERE Liest.PANr = Professoren.PANr AND NOT EXISTS (SELECT * FROM Prüft WHERE Prüft.PANr = Professoren.PANr AND Prüft.V_Bezeichnung=Liest.V_Bezeichnung)) 53

52 Bsp. zur Vereinigung: Alle Mitarbeiter und Studenten SELECT svnr FROM Mitarbeiter UNION SELECT svnr FROM Studenten Voraussetzungen Gleiche Attribut-Anzahl Attribute müssen positionsweise kompatibel sein Duplikate werden eliminiert UNION ALL verhindert dies 54

53 Bsp. zur Differenz: Alle Mitarbeiter, die keine Studenten sind. SELECT svnr FROM Mitarbeiter EXCEPT SELECT svnr FROM Studenten Achtung: MINUS in Oracle Wie kann man dies ohne EXCEPT simulieren? SELECT svnr FROM Mitarbeiter WHERE svnr NOT IN (SELECT svnr FROM Studenten) 55

54 Bsp. zur Schnittmenge: Alle Mitarbeiter, die auch Student sind SELECT svnr FROM Mitarbeiter INTERSECT SELECT svnr FROM Studenten Wie kann man dies ohne INTERSECT simulieren? SELECT svnr FROM Mitarbeiter WHERE svnr IN (SELECT svnr FROM Studenten) 56

55 Quantoren und Mengenvergleiche Syntax Attribut {all any some} (SELECT attribut FROM... WHERE...) ALL... Allquantor ANY, SOME... Existenzquantoren Beispiel SELECT Matrnr, Immatrikulationsdatum FROM Studenten IN WHERE Matrnr = ANY (SELECT Matrnr FROM Prüft) Ergebnis der Abfrage? Studenten, die bereits geprüft wurden 57

56 Was macht folgende Abfrage? SELECT Note FROM Prüft WHERE Matrnr = 12 AND Note >= ALL (SELECT Note FROM Prüft WHERE Matrnr=12) Ermittelt schlechteste Note des Studenten 12 Bestimmt Maximalwert ohne Verwendung der Aggregatfunktionen Umformulierung: SELECT MAX(Note) FROM Prüft WHERE Matrnr = 12 58

57 Geben Sie alle Bücher aus, an denen Vossen und Witt gemeinsam als Autoren beteiligt waren! Buch = {ISBN, Titel, Autor} Was gibt folgendes Statement: SELECT ISBN FROM Buch WHERE Autor= Vossen and Autor= Witt leere Ergebnismenge, da tupelweise ausgewertet wird und nicht gleichzeitig Vossen und Witt in einem Tupel stehen können. 59

58 Lösung mit Selbstverbund SELECT b1.isbn FROM Buch b1, Buch b2 WHERE b1.isbn=b2.isbn AND b1.autor= Vossen AND b2.autor= Witt Umformulierung mittels IN Prädikat? SELECT ISBN FROM Buch b1 WHERE Autor= Vossen AND Witt IN (SELECT Autor FROM Buch WHERE ISBN=b1.ISBN) 60

59 Weitere Varianten Weitere Umformulierung mittels IN Prädikat? SELECT ISBN FROM Buch WHERE Autor= Vossen AND ISBN IN (SELECT ISBN FROM Buch WHERE Autor= Witt ) Weitere Umformulierung mittels Gruppierung? SELECT ISBN FROM Buch WHERE Autor= Vossen OR Autor= Witt GROUP BY ISBN HAVING COUNT(*) = 2 61

60 SQL Queries Teil 2

61 Die Folien basieren auf: Datenbanken: Konzepte und Sprachen, Andreas Heuer und Gunter Saake, mitp-verlag, 2. Auflage, 2000 Datenbanken: Konzepte und Sprachen, Gunter Saake, Kai-Uwe Sattler, Andreas Heuer, mitp-verlag, 3. Auflage, 2008 Datenbanksysteme Eine Einführung, Alfons Kemper und Andre Eickler, Oldenbourg Verlag, München, 6. Auflage, SQL Performance Tuning, Peter Gulutzan and Trudy Pelzer, Addison-Wesley

62 Aggregatfunktionen COUNT SUM AVG Anzahl der Werte einer Spalte oder im Falle von COUNT(*) die Anzahl der Tupel einer Relation Summe der Werte einer Spalte Arithmetisches Mittel der Werte einer Spalte MAX bzw. MIN Größter bzw. kleinster Werte einer Spalte Vor Argument: DISTINCT oder ALL ( default) Nullwerte werden vor der Anwendung (außer bei COUNT(*)) eliminiert 64

63 Aggregatfunktionen: Beispiele SELECT SUM(Gehalt) FROM Mitarbeiter SELECT COUNT(*) FROM Mitarbeiter SELECT COUNT(DISTINCT Matrnr) FROM PRÜFT SELECT AVG(Note) FROM Prüft WHERE Vorlesung = `Datenbanken 65

64 GROUP BY und HAVING Was macht folgendes Statement? SELECT count(*) as Anzahl, PANr FROM Ausleihe GROUP BY PANr HAVING count(*)>1 Gibt die Anzahl der ausgeliehenen Bücher pro Person aus, vorausgesetzt diese Person hat mehr als 1 Buch ausgeborgt. 66

65 Gedankliche Abarbeitungsreihenfolge (5) SELECT... (1) FROM... (2) [WHERE...] (3) GROUP BY attributliste (4) HAVING bedingung (optional) 67

66 GROUP BY Gruppierung von R nach G: Für gleiche G werden die übrigen Attribute R-G in einer geschachtelten Relation gesammelt G = Gruppierungsattribute (d.h. jene, die mit der GROUP BY Klausel ausgewählt werden) R-G = Nicht-Gruppierungsattribute 68

67 HAVING Selektionsbedingung auf gruppierter Relation darf Bezug nehmen auf Gruppierungsattribute beliebige Aggregatfunktionen (über Nicht- Gruppierungsattributen*) * auch über Gruppierungsattribute möglich, macht aber i.a. keinen Sinn 69

68 Worauf darf man mit SELECT Bezug nehmen? Direkt auf die Gruppierungsattribute Aggregatfunktionen (auf die Nicht-Gruppierungsattribute*) *auch auf die Gruppierungsattribute möglich, macht aber i.a. keinen Sinn Warum? siehe Beispiel auf der nächsten Folie 70

69 71

70 Zählen von Wertemengen Was liefert folgende Abfrage: SELECT DISTINCT X.PANR FROM Prüft X WHERE X.PANr IN (SELECT Y.PANr FROM Prüft Y WHERE X.Matrnr <> Y.Matrnr) Alle Prüfer, die mehr als einen Studenten geprüft haben. 72

71 Alternative SELECT DISTINCT X.PANr FROM Prüft X, Prüft Y WHERE X.PANr = Y.PANr AND X.Matrnr <> Y.Matrnr 73

72 Weitere Alternativen Mit <>ANY SELECT DISTINCT X.PANR FROM Prüft X WHERE X.Matrikelnummer <> ANY (SELECT Y.Matrikelnummer FROM Prüft Y WHERE X.PANr = Y.PANr) Mit Gruppierung SELECT PANr FROM Prüft GROUP BY PANr HAVING COUNT (DISTINCT Matrikelnummer) > 1 74

73 ORDER BY Menge von Tupeln Liste von Tupeln Syntax ORDER BY attributliste Beispiel SELECT Matrnr, Note FROM Prüft WHERE Vorlesung = `DB 1 ORDER BY Note DESC Aufsteigend (ASC) oder absteigend (DESC) sortieren 75

74 Behandlung von Nullwerten Arithmetische Operationen: Ergebnis NULL, sobald Nullwert in die Berechnung eingeht NULL = NULL 4 * NULL = NULL Aggregatfunktionen: Nullwerte werden vor der Anwendung der Funktion entfernt, mit Ausnahme von COUNT(*). Fast alle Vergleiche mit NULL ergeben Wahrheitswert UNKNOWN (statt TRUE oder FALSE). 10 = NULL ergibt UNKNOWN Ausnahmen: NULL IS NULL TRUE, NULL IS NOT NULL FALSE WHERE Bedingung: es werden nur Tupel weitergereicht, für die die Bedingung TRUE ist. Wenn die Bedingung zu UNKNOWN auswertet, wird sie nicht ins Ergebnis aufgenommen. Boolesche Ausdrücke: dreiwertige Logik 76

75 Behandlung von Nullwerten II 77

76 Was ergibt folgende Abfrage? Studenten SVNR Vorname Nachname Semester 1 Max Muster NULL 2 Ilse Muster 4 3 Sebastian Muster 17 SELECT COUNT(*) FROM Studenten WHERE Semester < 13 OR Semester >=13 Ergibt 2, nicht 3 78

77 Änderungsoperationen INSERT/UPDATE/DELETE Einfügen/Ändern/Löschen von Tupeln in Relationen oder Sichten Eintupel-Operationen: Z.B. Erfassung einer Buchausleihe Mehrtupel-Operationen Z.B. Erhöhe das Gehalt aller Mitarbeiter um 3% 79

78 INSERT INSERT INTO Relation [(attr1,..., attrn)] VALUES (konstante_1,..., konstante_n) INSERT INTO Buch (Invnr, Titel) VALUES (1234, `DB 1 ) INSERT INTO Buch VALUES (1234, `DB1, 2000, mitp) INSERT INTO Relation [(attr1,..., attrn)] SQL-Anfrage INSERT INTO Kunde (VN, NN, Bestellungen) (SELECT VN, NN, 0 FROM Lieferant) 80

79 UPDATE Syntax UPDATE relation SET attr1=ausdr1,..., attrn=ausdrn [WHERE Bedingung] Beispiel UPDATE Angestellte SET Gehalt = Gehalt WHERE Gehalt <

80 DELETE DELETE FROM Relation WHERE Bedingung DELETE FROM Ausleihe WHERE Inventarnr = 1234 Löschen aller Tupel einer Relation: DELETE FROM Ausleihe 82

81 SQL Query Performance Tuning Es gibt eine Vielzahl von Möglichkeiten, Query Performance zu verbessern. Allerdings kann es sein, dass verschieden Varianten auf verschiedenen DBMS unterschiedliche Wirkung zeigen! Testen Sie Ihre Optimierungen immer! Das Test-Environment soll dabei möglichst ähnlich dem Production-Environment sein, d.h. gleiche Datenmenge, Last, etc. 83

82 Einige Beispiele für Tuning-Tipps JOINS: Verwenden Sie möglichst restriktive Ausdrücke, d.h. eliminieren Sie unnötige Tupel. Attribute, über die ein Join erfolgt, sollen möglichst den gleichen Datentyp haben. Ein Index auf einer der Tabellen ist oft sehr hilfreich. Indizes auf beide Tabellen bringen oft keine weitere Verbesserung mehr.... Buch-Empfehlung: SQL Performance Tuning, Peter Gulutzan and Trudy Pelzer, Addison-Wesley

83 Künstliche Schlüssel Häufig benötigt, wäre schwierig in Anwendungen oder von Anwendungen in DB zu realisieren. Sequenzgenerator in SQL: CREATE SEQUENCE SeqName AS Datentyp START WITH Startwert INCREMENT BY Inkrementwert MINVALUE Minimalwert MAXVALUE Maximalwert CYCLE Cycle: Beim Erreichen von MAXVALUE wird wieder mit MINVALUE begonnen 85

84 Identitätspalte Benutzt Sequenzgenerator, ohne diesen explizit anzulegen CREATE TABLE Weine ( WeinID INT GENERATED ALWAYS AS IDENTITY ( START WITH 1 INCREMENT BY 1 MINVALUE 1 MAXVALUE CYCLE), Name VARCHAR(20) NOT NULL, Farbe VARCHAR(10), Jahrgang INT, Weingut VARCHAR(20)) INSERT INTO Weine VALUES (null, Pinot Noir, Rot, 1999, Helena ) null wird durch den neuen Wert der Sequenz ersetzt Achtung: etwas andere Notation in ORACLE! 86

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

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005

Datenbanksprache SQL. Datenbanksprache SQL. 5.1 Anfragesprache SQL-DQL. from-klausel SS 2005 Webbasierte Informationssysteme SS 2005 8. SQL-Vertiefung Prof. Dr. Stefan Böttcher Universität Paderborn Datenbanksprache SQL Structured Query Language (SQL) - am IBM San Jose Research Laboratory entwickelt

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

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

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

5.3 Datenänderung/-zugriff mit SQL (DML)

5.3 Datenänderung/-zugriff mit SQL (DML) 5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- 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

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

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

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

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

Relationale Datenbanksprachen

Relationale Datenbanksprachen Relationale Datenbanksprachen SQL-Kern Weitere Sprachkonstrukte von SQL SQL-Versionen Andreas Heuer, Gunter Saake Datenbanken I 9-1 Sprachen und ihre Grundlagen Grundlagen Kommerzielle Sprachen ISBL SQL

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

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

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

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

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

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.

Mehr

8. Relationale Datenbanksprachen

8. Relationale Datenbanksprachen 8. Relationale Datenbanksprachen SQL-Kern Weitere Sprachkonstrukte von SQL SQL-Versionen VL Datenbanken I 8 1 SQL-Kern select Projektionsliste arithmetische Operationen und Aggregatfunktionen from zu verwendende

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

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

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

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

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

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien 1.1 Definition Datenbank Ein Datenbanksystem (DBS) ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe eines DBS

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

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

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

Die Anweisung create table

Die Anweisung create table SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl

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

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

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

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

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

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank

Sichten II. Definition einer Sicht. Sichten. Drei-Ebenen-Schema-Architektur. Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Vorteile Vereinfachung von Anfragen Strukturierung der Datenbank Sichten II logische Datenunabhängigkeit (Sichten stabil bei Änderungen der Datenbankstruktur) Beschränkung von Zugriffen (Datenschutz) Definition

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

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

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

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

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

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

Ü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

7. Datenbankdefinitionssprachen

7. Datenbankdefinitionssprachen 7. Datenbankdefinitionssprachen SQL-DDL Teil der Standardsprache für relationale Datenbanksysteme: SQL ODL (Object Definition Language) für objektorientierte Datenbanksysteme nach dem ODMG-Standard VL

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

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

Webbasierte Informationssysteme 8. Datenbanksprache SQL

Webbasierte Informationssysteme 8. Datenbanksprache SQL Universität Paderborn Webbasierte Informationssysteme 8. Datenbanksprache SQL Prof. Dr. Gregor Engels Alexander Förster AG Datenbank- und Informationssysteme 1 Kapitelübersicht Einführung in relationale

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

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

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle) Kapitel 6 Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle) 1 Datenmanipulationssprache (DML) SQL Einfügen: Insert-Statement Ändern: Update-Statement Löschen:

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

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

Webbasierte Informationssysteme 8. Datenbanksprache SQL

Webbasierte Informationssysteme 8. Datenbanksprache SQL Universität Paderborn Datenbanksprache SQL Webbasierte Informationssysteme 8. Datenbanksprache SQL Prof. Dr. Gregor Engels Alexander Förster AG Datenbank- und Informationssysteme 1 umfasst Sprachanteile

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

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

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

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL ) Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 6 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 1.12.2003 SQL-DDL und SQL-Anfragen

Mehr

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln Structured Query Language, SQL vom American National Standards Institute, ANSI, genormte Datenbanksprache. enthält eine Teilsprache, die eine relationale Anfragesprache ist, Mischung von tupelorientierten

Mehr

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne Informatik für Ökonomen II: Datenintegrität Prof. Dr. Carl-Christian Kanne 1 Konsistenzbedingungen DBMS soll logische Datenintegrität gewährleisten Beispiele für Integritätsbedingungen Schlüssel Beziehungskardinalitäten

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 30.5.2016 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Datentypen character (n),

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL als Anfrage- und Datenmanipulationssprache (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL als DQL und DML M. Lange, S. Weise Folie #8-1 Themen

Mehr

Relationale Anfragesprachen

Relationale Anfragesprachen Relationale Anfragesprachen Structured Query Language: SQL Query by Example: QBE Kapitel 1 Übungen Fr 8.0 Uhr Michael Kühn Raum E 11 SQL standardisierte - Datendefinitions (DDL)- - Datenmanipulations (DML)-

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

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

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

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

Mehr

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik Beispielaufgaben Informationssysteme erstellt von Fabian Rump zur IS Vorlesung 2009/10 1 Multiple Choice Aussage richtig falsch Eine SQL-Abfrage beginnt immer mit dem Schlüsselwort SELECT Eine Datenbank

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

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 7a: Structured Query Language (SQL) MySQL 5.0 (enthalten in: http://www.apachefriends.org/de/xampp.html)

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

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

3. Das Relationale Datenmodell

3. Das Relationale Datenmodell 3. Das Relationale Datenmodell Das Relationale Datenmodell geht zurück auf Codd (1970): E. F. Codd: A Relational Model of Data for Large Shared Data Banks. Comm. of the ACM 13(6): 377-387(1970) DBMS wie

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

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

cs241: Datenbanken mit Übungen HS 2011

cs241: Datenbanken mit Übungen HS 2011 UNIVERSITÄT BASEL Prof. Dr. Heiko Schuldt MSc. Nenad Stojnić BSc. Ivan Giangreco BSc. Florian Lindörfer cs241: Datenbanken mit Übungen HS 2011 Übung 5 Abgabe bis: 4.11.2011 Hinweise: Modalitäten der Abgabe:

Mehr

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

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

Mehr

MIN oder MAX Bildung per B*Tree Index Hint

MIN oder MAX Bildung per B*Tree Index Hint E-Mail: rainer@lambertz-c.de Internet: http://www.lambertz-c.de MIN oder MAX Bildung per B*Tree Index Hint Zugegeben, der Trick Min- oder Maximalwerte per Index Hint zu ermitteln ist nicht neu. Gewöhnlich

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

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

Ü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

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung Informa=onssysteme Sommersemester 2015 6. Sichten, Integrität und Zugriffskontrolle Vorlesung "Informa=onssysteme" Sommersemester 2015 Überblick Sichten Integritätsbedingungen Zugriffsrechte SQL- Schema und SQL- Katalog Das Informa=onsschema

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

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

Kapitel 3: Datenbanksysteme

Kapitel 3: Datenbanksysteme LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Skript zur Vorlesung: Einführung in die Informatik: Systeme und Anwendungen Sommersemester 2015 Kapitel 3: Datenbanksysteme Vorlesung:

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

Ein Ausflug zu ACCESS

Ein Ausflug zu ACCESS Ein Ausflug zu ACCESS Die folgenden Folien zeigen beispielhaft, wie man sein DB- Wissen auf ACCESS übertragen kann betrachtet wird ACCESS 2002, da gerade im Bereich der Nutzung von SQL hier einiges nachgearbeitet

Mehr

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken

Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Rückblick Structured Query Language (SQL) als standardisierte Anfragesprache für relationale Datenbanken Data Definition Language zur Schemadefinition (z.b. CREATE TABLE zum Anlegen von Tabellen) Data

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

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Introduction to Data and Knowledge Engineering. 6. Übung SQL Introduction to Data and Knowledge Engineering 6. Übung SQL Aufgabe 6.1 Datenbank-Schema Buch PK FK Autor PK FK ISBN Titel Preis x ID Vorname Nachname x BuchAutor ISBN ID PK x x FK Buch.ISBN Autor.ID FB

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

9. Einführung in Datenbanken

9. Einführung in Datenbanken 9. Einführung in Datenbanken 9.1 Motivation und einführendes Beispiel 9.2 Modellierungskonzepte der realen Welt 9.3 Anfragesprachen (Query Languages) 9.1 Motivation und einführendes Beispiel Datenbanken

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

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

from-klausel Sprachen und ihre Grundlagen Relationale Datenbanksprachen SQL-Kern Syntax select from Beispiel select from liefert die gesamte Relation

from-klausel Sprachen und ihre Grundlagen Relationale Datenbanksprachen SQL-Kern Syntax select from Beispiel select from liefert die gesamte Relation Sprachen und ihre Grundlagen Relationale Datenbanksprachen SQL-Kern Weitere Sprachkonstrukte von SQL SQL-Versionen Andreas Heuer, Gunter Saake Datenbanken I 9-1 Grundlagen Kommerzielle Sprachen ISBL SQL

Mehr

Abfrage-Befehle in MySQL -diverse Funktionen -

Abfrage-Befehle in MySQL -diverse Funktionen - Abfrage-Befehle in MySQL -diverse Funktionen - Berechnungen mit MySQL -Einführung Ich liebe Funktionen! Es sollen die Projektbezeichnung, der Auftragswert, die Mehrwertsteuer und der Bruttobetrag für jedes

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

SQL als Zugriffssprache

SQL als Zugriffssprache SQL als Zugriffssprache Der Select Befehl: Aufbau Select- und From-Klausel Where-Klausel Group-By- und Having-Klausel Union Join-Verbindung Order-By-Klausel Der Update-Befehl Der Delete-Befehl Der Insert-Befehl

Mehr