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

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

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

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

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

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

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

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

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

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

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

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

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

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

SQL. Abfragesprache Datenmanipulation - DML

SQL. Abfragesprache Datenmanipulation - DML SQL Abfragesprache Datenmanipulation - DML SQL DML-Operationen DML = Data Manipulation Language Sprache zur Veränderung der Daten Operationen Daten selektieren Daten einfügen Daten ändern Daten löschen

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

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

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

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme Handout zur Unit Web-Technologien SQL 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme Raum: 17-0.10 Tel.: 0451 300 5549 Email: nane.kratzke@fh-luebeck.de (Praktische

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

4. Structured Query Language (SQL)

4. Structured Query Language (SQL) 4. Structured Query Language (SQL) Rückblick Konzeptuelles Modell (ERM) können wir nun in (wenige) Relationen übersetzen Relationale Algebra gibt uns eine Sprache an die Hand, mit der wir Anfragen auf

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

Einleitung create table Integritätsbed. alter/ drop table Index ODL. Einleitung. create table. alter/ drop table Index ODL. Einleitung.

Einleitung create table Integritätsbed. alter/ drop table Index ODL. Einleitung. create table. alter/ drop table Index ODL. Einleitung. Thema dieser Vorlesung (im wesentlichen): Relationale Datenbanken zugrundeliegende Struktur sind Relationen. Es gibt auch andere Arten von Datenbanken, z. B. objektorientierte Datenbanken. Objekte anstelle

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

ACCESS SQL ACCESS SQL

ACCESS SQL ACCESS SQL ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache

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

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 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien Kapitel 5 Dr. Jérôme Kunegis SQL: Grundlagen WeST Institut für Web Science & Technologien Lernziele Kenntnis der Grundkonzepte von SQL Fähigkeit zur praktischen Anwendung von einfachen SQL-Anweisungen

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

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

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

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

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

5. SQL. Einleitung / Historie / Normierung. Datendefinition mit SQL (DDL) Datenänderung/-zugriff mit SQL (DML) Datenkontrolle mit SQL (DCL)

5. SQL. Einleitung / Historie / Normierung. Datendefinition mit SQL (DDL) Datenänderung/-zugriff mit SQL (DML) Datenkontrolle mit SQL (DCL) 5. SQL Einleitung / Historie / Normierung Datendefinition mit SQL (DDL) Datenänderung/-zugriff mit SQL (DML) Datenkontrolle mit SQL (DCL) Ausblick: Transaktionsverwaltung/Fehlerbehandlung Praktischer Teil

Mehr

Grober Überblick zu Datendefinitionsanweisungen in SQL

Grober Überblick zu Datendefinitionsanweisungen in SQL 5.2 Datendefinition mit SQL (DDL) Grober Überblick zu Datendefinitionsanweisungen in SQL Konzeptuelle Ebene - CREATE TABLE, ALTER TABLE, DROP TABLE - CREATE DOMAIN, ALTER DOMAIN, DROP DOMAIN -... Interne

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

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

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

4.1 SQL. Wichtige skalare Datentypen

4.1 SQL. Wichtige skalare Datentypen 4. Basierend auf dem Tupelkalkül und der relationalen Algebra wurden mit dem Aufkommen relationaler DBMS auch spezielle Sprachen entwickelt. SQL ist die derzeit am weitesten verbreitete Anfragesprache

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

DBSP. Vorlesung. Prof. Dr. rer. nat. Nane Kratzke. Unit. Praktische Informatik und betriebliche Informationssysteme

DBSP. Vorlesung. Prof. Dr. rer. nat. Nane Kratzke. Unit. Praktische Informatik und betriebliche Informationssysteme Handout zur Vorlesung Vorlesung DBSP Unit Datenbanken SQL 1 Prof. Dr. rer. nat. Nane Kratzke Praktische Informatik und betriebliche Informationssysteme Raum: 17-0.10 Tel.: 0451 300 5549 Email: kratzke@fh-luebeck.de

Mehr

Informations- und Wissensmanagement

Informations- und Wissensmanagement Informations- und Wissensmanagement Kapitel 2: Datenbankdefinitionssprachen IPD, Forschungsbereich Systeme der Informationsverwaltung Datenbank-Technologie Vielfalt Thema dieser Vorlesung (im wesentlichen):

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

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

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

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3) Vorlesung #5 SQL (Teil 3) Fahrplan Besprechung der Übungsaufgaben Rekursion Rekursion in SQL-92 Rekursion in DBMS- Dialekten (Oracle und DB2) Views (Sichten) - gespeicherte Abfragen Gewährleistung der

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

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

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

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-Anweisungen. SELECT (SQL Data Query Language)

SQL-Anweisungen. SELECT (SQL Data Query Language) SQL-Anweisungen SELECT (SQL Data Query Language) SELECT * SELECT * FROM "meine Tabelle"; SELECT feldname1, feldname2 SELECT feldname1, feldname2 FROM meinetabelle ORDER BY feldname2, feldname1 DESC; WHERE

Mehr

Datenbanksysteme Kapitel: SQL Data Definition Language

Datenbanksysteme Kapitel: SQL Data Definition Language Datenbanksysteme Kapitel: SQL Data Definition Language Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Dr. Peter Chamoni - Prof.

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

Kommunikation und Datenhaltung

Kommunikation und Datenhaltung Kommunikation und Datenhaltung Relationale Datenbanksprachen (SQL Structured Query Language) Überblick über den Datenhaltungsteil Motivation und Grundlagen Architektur von Datenbanksystemen Datenbankanfragen

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

VO Datenmodellierung. Katrin Seyr

VO Datenmodellierung. Katrin Seyr Datenintegrität Datenintegrität VO Datenmodellierung Katrin Seyr Institut für Informationssysteme Technische Universität Wien Katrin Seyr Seite 1 Datenintegrität 1. Überblick Überblick 1 Überblick 2 Integritätsbedingungen

Mehr

(Von der Nähe zur Distanz zum User geordnet)

(Von der Nähe zur Distanz zum User geordnet) Datebanken Was ist eigentlich eine Datenbank? Datenbanken, Datenhaltungsschicht und Datenbankensysteme (hier als Synonyme zu verstehen) finden viele unterschiedliche Anwendungsbereiche. Datenbanken kann

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

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

Herbstsemester 2009. Datenbanken mit Übungen Kapitel 4: SQL. H. Schuldt. Inhalt

Herbstsemester 2009. Datenbanken mit Übungen Kapitel 4: SQL. H. Schuldt. Inhalt Herbstsemester 2009 Datenbanken mit Übungen Kapitel 4: SQL H. Schuldt Inhalt Datenmanipulationssprache SQL: SQL (Structured Query Language) ist die Standardsprache für die Datendefinition und Datenmanipulation

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

Tabellenausdrücke. Bedingungen

Tabellenausdrücke. Bedingungen Anfragetypen in SQL zwei Typen von SQL-Ausdrücken: Resultat: abgeleitete Tabelle ( derived table ) Tabellenausdrücke DB Bedingungen Problem (?): Nur Tabellenausdrücke dürfen direkt vom Benutzer als Anfrage

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

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

DBMS-Übungsserver. Seite 1 von 13

DBMS-Übungsserver. Seite 1 von 13 Aufgabe Nr. 1, BETWEEN-Prädikat Welche Fahrten finden von Heiligabend bis Neujahr 2001/2002 einschließlich statt? Rückgabe-Typ sei (fahrtnr). SELECT fahrtnr FROM Fahrt WHERE tag BETWEEN '2001-12-24' AND

Mehr

SQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler

SQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler SQL-Vertiefung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester 2015/16 Gliederung

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

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

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

5. Datendefinition in SQL

5. Datendefinition in SQL Datendefinition 5. Datendefinition in SQL Schema, Datentypen, Domains Erzeugen von Tabellen (CREATE TABLE) Schemaevolution: Ändern/Löschen von Tabellen Sichtkonzept (Views) CREATE VIEW / DROP VIEW Problemfälle

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

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

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

Objektrelationale und erweiterbare Datenbanksysteme

Objektrelationale und erweiterbare Datenbanksysteme Objektrelationale und erweiterbare Datenbanksysteme Erweiterbarkeit SQL:1999 (Objekt-relationale Modellierung) In der Vorlesung werden nur die Folien 1-12 behandelt. Kapitel 14 1 Konzepte objekt-relationaler

Mehr

Teil III. Relationale Datenbanken Daten als Tabellen

Teil III. Relationale Datenbanken Daten als Tabellen Teil III Relationale Datenbanken Daten als Tabellen Relationale Datenbanken Daten als Tabellen 1 Relationen für tabellarische Daten 2 SQL-Datendefinition 3 Grundoperationen: Die Relationenalgebra 4 SQL

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

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

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus:

Die SQL-Syntax für den Befehl CREATE TABLE sieht folgendermassen aus: Einführung in MySQL SQL (Structured Query Language) ist eine Computersprache zum Speichern, Bearbeiten und Abfragen von Daten in relationalen Datenbanken. Eine relationale Datenbank kann man sich als eine

Mehr

Datenbanken 1 SQL. Nikolaus Augsten. nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg. http://dbresearch.uni-salzburg.

Datenbanken 1 SQL. Nikolaus Augsten. nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg. http://dbresearch.uni-salzburg. Datenbanken 1 SQL Nikolaus Augsten nikolaus.augsten@sbg.ac.at FB Computerwissenschaften Universität Salzburg http://dbresearch.uni-salzburg.at Sommersemester 2015 Version: 14. April 2015 Augsten (Univ.

Mehr

Taschenbuch der Wirtschaftsinformatik und Wirtschaftsmathematik

Taschenbuch der Wirtschaftsinformatik und Wirtschaftsmathematik Taschenbuch der Wirtschaftsinformatik und Wirtschaftsmathematik von Wolfgang König, Heinrich Rommelfanger, Dietrich Ohse, Oliver Wendt, Markus Hofmann, Michael Schwind, Klaus Schäfer, Helmut Kuhnle, Andreas

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 08. Exkurs: Datenbanken 1 Motivation Datenbanksysteme

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

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 2009 Kapitel 3: Datenbanksysteme Vorlesung:

Mehr

Informations- und Wissensmanagement

Informations- und Wissensmanagement Übung zur Vorlesung Informations- und Wissensmanagement (Übung 1) Frank Eichinger IPD, Lehrstuhl für Systeme der Informationsverwaltung Zur Person Beruflicher Hintergrund Studium an der TU Braunschweig

Mehr

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL

Kompaktes Datenbank-Wissen rund um die Datenbank-Programmierung mit Transact-SQL UnternehmensDatenbanken im Netzwerk Teil 3: SQL Programmierung - Grundlagen SQL-Befehle Funktionen Operatoren Datentypen Datenbank erstellen Tabellen SQL-Abfragen Autor: Rainer Egewardt Copyright Kompaktes

Mehr

Datenmodelle und Anfragesprachen. Datenbankmodell. Datenbankmodell. ƒ Entity-Relationship-Modell ƒ Relationale Datenbanken Relationenmodell SQL

Datenmodelle und Anfragesprachen. Datenbankmodell. Datenbankmodell. ƒ Entity-Relationship-Modell ƒ Relationale Datenbanken Relationenmodell SQL Datenmodelle und Anfragesprachen ƒ Entity-Relationship-Modell ƒ Relationale Datenbanken Relationenmodell SQL ƒ Semistrukturierte Daten Graphenbasierte Modelle und XML XML-Anfragesprachen und XML-DOM ƒ

Mehr

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL.

Themen des Kapitels. 2 Grundlagen von PL/SQL. PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren. 2.1 Übersicht. Grundelemente von PL/SQL. 2 Grundlagen von PL/SQL Grundelemente von PL/SQL. 2.1 Übersicht Themen des Kapitels Grundlagen von PL/SQL Themen des Kapitels PL/SQL Blöcke Kommentare Bezeichner Variablen Operatoren Im Kapitel Grundlagen

Mehr

Termin 12: Datenbanksysteme (2) - Einführung in SQL

Termin 12: Datenbanksysteme (2) - Einführung in SQL Termin 12: Datenbanksysteme (2) - Einführung in SQL Grundlagen der Informatik Wintersemester 2006/07 Prof. Bernhard Jung Übersicht 1. Einführung SQL 2. Datenbankanfragen mit SQL (select from where) 3.

Mehr

Lösungen der Übungsaufgaben von Kapitel 10

Lösungen der Übungsaufgaben von Kapitel 10 Lösungen der Übungsaufgaben von Kapitel 10 1. Legen Sie mit einem SQL - Befehl eine neue Tabelle PERSON_KURZ mit den Feldern Kurz_Id, Kurz_Name an. Machen Sie das so, dass Kurz_Id der Primärschlüssel wird

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

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

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

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

Inhaltsverzeichnis. jetzt lerne ich

Inhaltsverzeichnis. jetzt lerne ich Inhaltsverzeichnis jetzt lerne ich Einführung 15 1 Erste Schritte 21 1.1 Datenbanken und Datenbank-Managementsysteme 21 1.2 Zugriff auf Datenbanken 22 1.3 Was der Großvater noch wusste... 22 1.4 Einordnung

Mehr

5.8 Bibliotheken für PostgreSQL

5.8 Bibliotheken für PostgreSQL 5.8 Bibliotheken für PostgreSQL Haskell/WASH: Modul Dbconnect PHP: pqsql-funktionen Java/JSP: JDBC Perl: DBI database interface modul Vorläufige Version 80 c 2004 Peter Thiemann, Matthias Neubauer 5.9

Mehr

Teil II Relationale Datenbanken Daten als Tabellen

Teil II Relationale Datenbanken Daten als Tabellen Teil II Relationale Datenbanken Daten als Tabellen Relationale Datenbanken Daten als Tabellen 1 Relationen für tabellarische Daten 2 SQL-Datendefinition 3 Grundoperationen: Die Relationenalgebra 4 SQL

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

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

Einführung in SQL mit Oracle

Einführung in SQL mit Oracle Seminar Einführung in SQL mit Oracle von Prof. Dr. Rainer Schwenkert Hochschule München c Vervielfältigung nur mit Zustimmung des Autors Themenbereiche SQL-Historie Wichtige DDL- und DML-Anweisungen Der

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme Relationale Datenbanken Vorlesung Datenbankmanagementsysteme Relationale Datenbanken M. Lange, S. Weise Folie #4-1 Relationale Datenbanken Wiederholung - Datenbankmodelle,

Mehr