Datenbanken. SQL Einführung und SQL-DDL
|
|
- Josef Breiner
- vor 8 Jahren
- Abrufe
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: 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
MehrDatenbanksprache 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
MehrMengenvergleiche: 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
MehrSQL 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
MehrSQL 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-
MehrEinfü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
Mehr5.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
MehrDBS ::: 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
MehrTU 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/
MehrUniversitä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
MehrEinfü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
MehrWS 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)
MehrRelationale 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
MehrSemantische 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
MehrSQL 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
MehrReferentielle 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
MehrSQL: 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
MehrWiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
MehrVorlesung Datenbankmanagementsysteme
Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.
Mehr8. 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
MehrNachtrag: 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
MehrReferentielle 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
MehrDATENBANKEN 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.
MehrInformatik 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
MehrWiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VL Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
MehrVielen 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
MehrViews 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
MehrDatenintegritä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
MehrAufbau 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
MehrDie 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
MehrSeminar 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
MehrSQL. 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
Mehrmit 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
MehrDipl. 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
MehrIV. 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.
MehrSichten 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
MehrDatenintegritä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!
MehrSQL. 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
MehrDatenintegritä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!
MehrSQL 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)
MehrSructred 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
MehrSQL 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
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
Mehr7. 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
MehrSQL 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
MehrBibliografische 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
MehrWebbasierte 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
MehrDatenintegritä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
MehrSQL. 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
MehrKapitel 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:
MehrLabor 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.
MehrKapitel 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
MehrWebbasierte 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
MehrSQL. 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
MehrIntegritä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
MehrBeispiel 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,
MehrSQL-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
MehrKalkü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
MehrInformatik 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
MehrInformatik 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),
MehrVorlesung 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
MehrRelationale 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)-
MehrISU 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
MehrVorlesung 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
MehrDetails 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
MehrDaten-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
MehrDas 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
Mehr7. Ü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
MehrDatenbanksysteme 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)
MehrSQL-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
MehrAnwendungsentwicklung 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
Mehr3. 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
MehrMySQL: 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
MehrEine 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
Mehrcs241: 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:
MehrSQL 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
MehrMIN 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
MehrDatenbanken 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,
MehrDatumsangaben, 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 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
Mehr6. 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
MehrDie 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
MehrDynamisches 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
MehrKapitel 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:
MehrUnterabfragen (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
MehrEin 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
MehrStructured 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
MehrAbfragen (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
MehrIntroduction 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
MehrDatenbanksysteme 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
Mehr9. 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
MehrDatenbanktechnologie 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
MehrObjektrelationale 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
Mehrfrom-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
MehrAbfrage-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
MehrOracle: 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
MehrSQL 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