SQL Fortsetzung: Joins, Subselects, Aggregatfunktionen, Derived Tables, Views

Größe: px
Ab Seite anzeigen:

Download "SQL Fortsetzung: Joins, Subselects, Aggregatfunktionen, Derived Tables, Views"

Transkript

1 Teil 3: SQL Fortsetzung: Joins, Subselects, Aggregatfunktionen, Derived Tables, Views Joins Unser bisheriges SQL erlaubt bereits die Spezifikation von INNER-Joins durch Kombination von Produkt und Restriktion. In vielen Fällen, im speziellen für OUTER-Joins ist es aber erforderlich, spezielle Syntax für Joins zu verwenden. Statt eines Produktes in SelBase spezifiziert man gleich den Join inklusive der Join- Bedingung (Restriktion). Das kann in manchen Fällen auch zu höherer Effizienz führen. In jedem Fall verbessert es die Lesbarkeit von Select-Anweisungen. SelBase = Tabellenname {", " Tabellenname JoinType Tabellenname "ON" Cond}. JoinType = (("LEFT" "RIGHT" "FULL") ["OUTER"] ["INNER"]) "JOIN". Bei Outer-Joins wird ein erweitertes Produkt gebildet, dass alle Tupel der rechten, linken oder beider Relationen enthält. Fehlende Attribute sind als NULL definiert. Die obige Grammatikregel für SelBase ist etwas vereinfacht. In Wirklichkeit können Joins auch geklammert werden um von der Linksassoziativität abzuweichen. Manche Datenbanken (z.b. Oracle) unterstützen diese Form von Joins nicht. Sie erlauben OUTER-Joins über spezielle Vergleichsoperatoren (z.b. =*, *=, *=*), die zur Bildung eines erweiterten Produktes führen. Diese Form ist aber weniger mächtig, nicht standardisiert und führt nicht immer zum genau gleichen Ergebnis. Beispiel: Suche freie Artikelnummern unter Berücksichtigung von Lücken mittels LEFT-Join SELECT A.artnr + 1 A LEFT JOIN Artikel B ON (A.artnr + 1 = B.artnr) WHERE B.artnr IS NULL Subselect SQL erlaubt die Verwendung von SELECT auch innerhalb von Ausdrücken (Subselect, Subquery, nested select). In diesem Fall muss der SELCT-Ausdruck in runde Klammern eingeschlossen werden. Generell wird zwischen correlated und uncorrelated Subqueries unterschieden. Eine uncorrelated Subquery verwendet keine Attribute der umschließenden Query. Es genügt daher, wenn das RDBMS sie ein einziges Mal ausführt und die Ergebnisse für die Verwendung in der umschließenden Query zwischenspeichert. Eine correlated Subquery liegt vor, wenn die Subquery Attribute der umschließenden SELECT-Anweisung benutzt. Die Subquery muss dann für alle Tupel der umschließenden Anweisung ausgeführt werden. In vielen Fällen lassen sich solche Subselects auch als Joins schreiben. In manchen Fällen kann der Query- Compiler ein derartiges Subselect automatisch in einen Join umformen und damit effizienter ausführen. Subselect = "(" SelectExpr ")". Beispiel für correlated Subquery: Suche freie Artikelnummern unter Berücksichtigung von Lücken mittels Subquery.

2 SELECT artnr + 1 A WHERE (SELECT B.artnr B WHERE B.artnr = A.artnr + 1) IS NULL Exists Der EXISTS-Operator innerhalb von Ausdrücken wertet ein SELECT aus und liefert true, wenn das Ergebnis nicht leer ist. ExistsOp = "EXISTS" Subselect. Beispiel: Suche freie Artikelnummern unter Berücksichtigung von Lücken mittels EXISTS. SELECT artnr + 1 A WHERE NOT EXISTS (SELECT B.artnr B WHERE B.artnr = A.artnr + 1) Quantifizierte Operatoren ALL oder ANY (alias SOME) nach Vergleichsoperator (=, <>, <, >, <=, >=) (z.b. =ANY) vergleicht einen skalaren Wert mit einer Menge von einstelligen Tupel. Semantisch steckt dahinter ein Allquantor der Art: (für alle i: i Element aus Subselect: skalar op i) bzw. ein Existenzquantor der Art (es existiert ein i: i Element aus Subselect: skalar op i). quantifiedop = ("=" "<>"... ">=") ("ALL" "ANY" "SOME") Subselect. Beispiel: Selektiere alle Lieferanten, von denen in der Tabelle Artikel ausschließlich teure Artikel (preis > 1000) geführt werden. SELECT * FROM Lieferant L WHERE 1000 < ALL (SELECT preis A WHERE A.lifnr = L.lifnr) Mengenwertiges Insert Durch Kombination von INSERT und SELECT kann in vielen RDBMS nicht nur eine Zeile pro INSERT eingefügt werden, sondern eine ganze Relation. Die Regel für die Insert-Anweisung wird erweitert zu: InsertStat = "INSERT" ["INTO"] Tabellenname ["(" AttrList ")"] ("VALUES" "(" Const {"," Const} ")" SelectExpr). Beispiel: Kopieren einer Tabelle INSERT INTO ArtikelCopy SELECT * Erzeugen einer großen Testtabelle: Annahme: sch(tab10): {[x: integer]} mit den Werten INSERT INTO BigTable SELECT T1.x* T2.x* T3.x*100 + T4.x*10 + T5.x FROM Tab10 T1, Tab10 T2, Tab10 T3, Tab10 T4, Tab10 T5

3 Aggregatfunktionen Erlauben das Verdichten von Mengen auf skalare Werte. Beispiele sind das Zählen der Elemente, das Bilden einer Summe, das Finden von Maximum oder Minimum oder das Bilden des arithmetischen Mittels. Aggregatfunktionen sind innerhalb von SelList erlaubt. Ein Mischen von Aggregatfunktionen und normalen Attributen oder Ausdrücken, in den normale Attribute vorkommen, ist nicht sinnvoll und daher verboten. Man kann eine Relation nicht gleichzeitig verdichten und nicht verdichten. AggregateFunction = "COUNT" "(" "*" ["DISTINCT"] Name ")" "SUM" "(" ["DISTINCT"] Expr ")" "MIN" "(" Expr ")" "MAX" "(" Expr ")" "AVG" "(" ["DISTINCT"] Expr ")". Man beachte den Unterschied zwischen SELECT DISTINCT... und DISTINCT innerhalb einer Aggregatfunktion. Das äußere DISTINCT wirkt auf die Ergebnismenge, das DISTINCT innerhalb der Aggregatfunktionen wirkt auf die Berechnung dieser Funktion. Wenn SELECTs mit Aggregaten nur eine Ergebniszeile liefern, ist das äußere DISTINCT auf jeden Fall überflüssig. Beispiele: Die Anzahl der verschiedenen Lieferanten der Artikel SELECT COUNT(DISTINCT lifnr) Der gesamte Lagerwert: SELECT SUM(preis * menge) AS Lagerwert Gruppenwechsel Die Aggregatfunktionen wirken normalerweise auf die gesamte Ergebnismenge. Manchmal möchte man aber eine Gruppenbildung innerhalb einer Ergebnisrelation und auf die Gruppen möchte man Aggregatfunktionen anwenden. Ein Beispiel wäre eine Tabelle der Lagerwerte pro Lieferant. Diese könnte mit einem Subselect erstellt werden wie folgt: SELECT DISTINCT lifnr, (SELECT SUM(menge * preis) AS A WHERE A.lifnr = Artikel.lifnr) AS Lagerwert Der Nachteil dieser Lösung ist die komplizierte Formulierung und die ev. langsame Ausführung, wenn für jeden Lieferant (ohne ausreichende Optimierung) ein Subselect ausgeführt wird. Abhilfe schafft hier der Gruppenwechselmechanismus von SQL, der es gestattet, die Gruppierung durch das syntaktische Konstrukte GROUP BY angefügt an SelectTerm auszudrücken. SelectTerm = "SELECT"... ["GROUP" "BY" AttrList ]. Bei jeder Änderung einer der Ausdrücke in der Gruppierungsliste wird ein Gruppenwechsel ausgelöst und die Aggregatfunktionen wirken auf alle Elemente der Gruppe. Attribute, die in der Gruppenwechselliste vorkommen, können in SelList stehen. Obiges Beispiel kann damit vereinfacht werden zu:

4 SELECT lifnr, SUM(menge * preis) AS Lagerwert GROUP BY lifnr Es könnte auch eine Sortierung der Ausgabe erfolgen unter Verwendung der Ergebnisse der Aggregatfunktionen. SELECT lifnr, SUM(menge * preis) AS Lagerwert GROUP BY lifnr Nicht in jedem Fall möchte man alle Gruppen ausgeben. Daher benötigt man noch einen Mechanismus zur Einschränkung der betrachteten Gruppen. Dieser Mechanismus ist in Form der HAVING-Klausel verfügbar. Die nach HAVING angegebene Bedingung muss für die Gruppen erfüllt sein. In der Having-Bedingung sind nur Attribute erlaubt, die auch für die Gruppierung verwendet werden einschließlich Aggregatfunktionen, die im WHERE nicht erlaubt sind. SelectTerm = "SELECT"... ["GROUP" "BY" Expr {"," Expr} ["HAVING" Cond]]. Beispiel: Selektieren der Lagerwerte der wichtigen Lieferanten, das seien jene, für die der Lagerwert eine bestimmte Grenze überschreitet. SELECT lifnr, SUM(menge * preis) AS Lagerwert GROUP BY lifnr HAVING SUM(menge * preis) > Roll-up, drill-down Das Hinzufügen von Attributen in die Gruppierungsliste wird als drill-down bezeichnet. Mit jedem zusätzlichen Attribut erfolgt eine feinere Gruppierung und damit eine weniger starke Verdichtung der Daten. Das Gegenteil ist das Weglassen von Attributen, das als roll-up bezeichnet wird. Es führt zu einer gröberen Gruppierung und damit zu einer stärkeren Verdichtung der Ergebnisse. Das extremste roll-up ist das Weglassen aller Attribute, das zu einem einzigen Ergebnistupel führt weil die gesamte Tabelle als eine einzige Gruppe betrachtet wird. Das extremste drill-down wäre das Hinzufügen aller Attribute, was die ursprüngliche Tabelle als Ergebnis liefern würde. Data Warehouse Das Verdichten von Daten ist eine zeitaufwändige Operation wenn alle Tupel einer Relation berücksichtigt werden müssen. Solche Operationen können die gleichzeitige Benutzung eines RDBMS für andere Benutzer stark einschränken. Daher hat man sich eine Abhilfe überlegt, die zum Begriff Data Warehous führt. Darunter versteht man eine Ansammlung von Daten, die (hauptsächlich) read-only zugegriffen wird. Der Hauptzweck ist die statistische Analyse von historischen Daten, zum Beispiel die Analyse von Verkaufszahlen pro Jahr, Region, Artikelgruppe etc. Man spricht in diesem Zusammenhang auch von OLAP (online analytical processing) im Gegensatz zu OLTP (online transactional processing). Die Aggregierung von Daten in einem Data Warehouse ist durch die Verwendung einer speziellen Speicherungsstruktur wesentlich effizienter als mit normalen Relationen. Hat man kein Data Warehouse zur Verfügung, so kann man in vielen RDBMS durch Materialisierung von Aggregaten eine gute Lösung erzielen. Man möchte aber nicht für alle N möglichen drill-down Stufen einer Relation R eine eigene Aggregierung durchführen, weil der Aufwand (N * R ) ist, wobei N mit der Anzahl der Attribute exponentiell ansteigt (bei 3 Attributen ist N = 2 3 = 8) und N einzelne SQL-Befehle formuliert werden müssen. Besser ist es, wenn man mit einem Befehl (und einem Durchlauf) die feinste Gruppierung durchführt und basierend auf diesen Daten alle möglichen roll-up Stufen berechnet. Dadurch können

5 weniger stark verdichtete Daten aus stärker verdichteten Daten ermittelt werden, ohne jedes mal die gesamte Relation zu lesen.genau diese Eigenschaft hat der CUBE-Operator, der in vielen RDBMS verfügbar ist. Der Operator ROLLUP, der meist zusätzlich zu CUBE verfügbar ist, liefert nicht alle möglichen 2 x Kombinationen von Verdichtungen sondern geht hierarchisch (gemäß der Attributreihenfolge) vor und liefert damit x Verdichtungsstufen. CUBE Operator Der Cube-Operator wird als Option zu GROUP BY angegeben und bewirkt dass zusätzlich zu den durch GROUP BY gelieferten Tupel alle möglichen Kombinationen von verdichteten Daten geliefert werden. Dabei gibt es verschiedene Schreibweisen. Die erste ist die in SQL-99 vorgeschlagene. Die zweite ist eine ältere Form. SelectTerm =... "GROUP" "BY" "CUBE" "(" AttrList ")". SelectTerm =... "GROUP" "BY" AttrList "WITH" "CUBE". Mit Hilfe der INSERT-SELECT Anweisung kann das Ergebnis von CUBE in eine Hilfstabelle geschrieben werden, die als Data-Warehouse verwendet werden kann. Der Cube-Operator liefert NULL für verdichtete Attribute. Man beachte, dass Primärschlüssel nicht NULL sein dürfen. Daher wird in folgendem Beispiel kein Primärschlüssel auf der Ergebnistabelle definiert. Beispiel: Verkaufstabelle enthält Tupel pro verkauftem Artikel. sch(verkauf): {[belegnr, artnr, jahr, region, artikelgruppe, menge]} sch(verkaufsstatistik): {[jahr, region, artikelgruppe, menge]} INSERT INTO Verkaufsstatistik SELECT jahr, region, artikelgruppe, sum(menge) FROM Verkauf GROUP BY jahr, region, artikelgruppe WITH CUBE Zur Selektion der Verkaufszahlen der Region 9: SELECT * FROM Verkaufsstatistik WHERE jahr IS NULL AND region = 9 AND artikelgruppe IS NULL Abgeleitete Tabellen (derived tables) Der Namensbestandteil S in SQL (Structured) kommt nicht zuletzt daher, dass man in SQL neben Subselects innerhalb von Ausdrücken auch Subselects zum Definieren der SelBase verwenden kann. Man kann also nicht nur eine in der Datenbank verfügbare (physische) Tabelle verwenden sondern auch Tabellen, die durch Selects definiert sind. Damit können komplexe Bedingungen, die man nur schwer oder gar nicht in einem SELECT unterbringt, in mehrere einfache Selects zerlegt werden, die von innen nach aussen zusammengesetzt werden. Solche innerhalb eines Selects erzeugten und benannten Hilfstabellen heissen abgeleitete (engl. derived) Tabellen. SelBase = (Tabellenname Subselect ["AS"] Name).... Beispiel: Einschränken des Ergebnisses einer Aggregatfunktion ohne Verwendung von HAVING, zb Selektion der Lagerwerte aller Lieferanten mit Wert > 1000

6 SELECT lifnr, Lagerwert FROM (SELECT lifnr, SUM(menge * preis) AS Lagerwert GROUP BY lifnr) AS LWert WHERE Lagerwert > 1000 Views Zur weiteren Vereinfachung von Selects kann man eine derived table auch im Schema der Datenbank unter einem Namen ablegen und hat sie über diesen Namen zur Verfügung. Man spricht in diesem Fall von einer View. Überall (oder fast überall) wo bisher ein Tabellenname verwendet werden konnte, kann auch ein Viewname stehen. Die Regel für SelBase erweitert sich damit auf: SelBase = (Tabellenname Viewname Subselect ["AS"] Name).... Views werden durch das DDL-Kommando CREATE VIEW definiert und gespeichert. Optional kann eine Umbenennung der Attributnamen erfolgen. Views sind nicht parametrisierbar. CreateViewStat = "CREATE" "VIEW" Viewnanme ["(" Name {"," Name ")"}] "AS" SelectExpr. Beispiel: CREATE VIEW LWert AS SELECT lifnr, SUM(menge * preis) AS Lagerwert GROUP BY lifnr SELECT lifnr, Lagerwert FROM LWert WHERE Lagerwert > 1000 Views können mit dem Befehl DROP VIEW wieder gelöscht werden. DropViewStat = "DROP" "VIEW" Viewname. Beispiel DROP VIEW LWert Update einer View Unter bestimmten Bedingungen können auf Views auch UPDATE, INSERT, DELETE-Operationen angewendet werden. Im einfachsten Fall einer 1:1 View kann das einfach nachvollzogen werden. CREATE VIEW ArtikelView AS SELECT * Die View ist identisch zur darunterliegenden Tabelle, daher wirken sämtliche Modifikation so, also ob sie auf Artikel angewendet würden. Bei Verwendung von Projektion, Joins, etc. wird es schon schwieriger, bei Verwendung von Aggregaten oder UNION wird es unmöglich. RDBMS stellen häufig spezielle Mechanismen bereit, um View-Updates explizit definieren zu können. Die ursprünglich angeforderte Änderungsoperation wird auf eine spezielle Anweisung abgebildet, die als Teil des Schemas definiert ist (z.b. INSTEAD OF Trigger in MsSQL Server). RDBMS müssen Information bereitstellen, ob eine View Updateable ist oder nicht. Zumindest einfache Views müssen updateable sein.

7 Anwendung von View Updates speziell nach Schemaänderungen, um Anwendungen unverändert zu lassen. Die alte Tabelle wird als View basierend auf einer neuen, modifizierten Tabelle bereitgestellt.

Übersicht der wichtigsten MySQL-Befehle

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

Mehr

Abfragen (Queries, Subqueries)

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

Mehr

SQL als Zugriffssprache

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

Mehr

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

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

Mehr

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

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle

insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Einführung in SQL insert, update, delete Definition des Datenbankschemas select, from, where Rechteverwaltung, Transaktionskontrolle Quelle Wikipedia, 3.9.2015 SQL zur Kommunikation mit dem DBMS SQL ist

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

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware. *HVFKDFKWHOWH$QIUDJHQ In einer SQL-Anweisung können in der where-klausel, from-klausel, select-klausel wieder SQL-Anweisungen auftreten. Man spricht dann auch von einer geschachtelten Anfrage oder Unteranfrage.

Mehr

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

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

Mehr

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

Wiederholung VU Datenmodellierung

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

Mehr

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung

Rückblick. SQL bietet viele Möglichkeiten zur Anfrageformulierung Rückblick SQL bietet viele Möglichkeiten zur Anfrageformulierung mathematische Funktionen (z.b. ABS(A) und SIGN(A)) Aggregatfunktionen (z.b. MIN(A) und SUM(A)) Boole sche Operatoren (AND, OR, EXCEPT) Verknüpfungen

Mehr

Datenbanksysteme Kapitel 5: SQL - Grundlagen

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

Mehr

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1 Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1 Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Prof. Dr. Dr. Peter Peter

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

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

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

Mehr

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

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage.

SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage. SELECT-FROM SELECT dient dazu, aus einer vorhandenen Datenbank bestimmte Spalten und Zeilen auszugeben es handelt sich also um eine Auswahlabfrage. Inhaltsverzeichnis 1 Der grundlegende Aufbau 2 Doppelte

Mehr

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird. Thomas Studer Relationale Datenbanken: Von den theoretischen Grundlagen zu Anwendungen mit PostgreSQL Springer, 2016 ISBN 978-3-662-46570-7 Dieser Foliensatz darf frei verwendet werden unter der Bedingung,

Mehr

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

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

Mehr

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

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47

SQL-Sprachvielfalt. Peter Willadt (Ludwig-Erhard-Schule) SQL-Befehle / 47 SQL-Sprachvielfalt DML Data Manipulation Language: Daten einfügen, ändern und löschen DQL Data Query Language: Daten abfragen DDL Data Definition Language: Tabellen und andere Strukturelemente erzeugen,

Mehr

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB "Zugriff" auf Tupel mit Tupel-Variablen

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB Zugriff auf Tupel mit Tupel-Variablen Kapitel 6.3 SQL als Anfragesprache Kap. 6.3.1 Allgemeine Begriffe Identifiers: Var-Name ~ Tupel-Variable Table-Name ~ Rel., View Field-Name ~ Attribut-Bez. Key-Words: select where key is integer string

Mehr

Aggregatfunktionen in der Relationenalgebra?

Aggregatfunktionen in der Relationenalgebra? Aggregatfunktionen in der Relationenalgebra? Dieter Sosna Aggregatfunktionen in der Relationenalgebra p.1/23 Gliederung Motivation Begriffe Definitionen Anwendungen Zusammenfassung Aggregatfunktionen in

Mehr

Datenbanken im WI-Unterricht mit

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

Mehr

Datenbank Grundlagen. Performanceuntersuchungen

Datenbank Grundlagen. Performanceuntersuchungen Vorlesung Datenbanken, Entwurfsarbeit 1 Fachbereich Automatisierung und Informatik Wernigerode Datenbank Grundlagen Performanceuntersuchungen Entwicklung einer Datenbank zur Verwaltung eines Bestellwesens

Mehr

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Grundlagen von SQL Informatik 2, FS18 Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Markus Dahinden 13.05.18 1 Grundlagen von SQL (Structured Query Language)

Mehr

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp 5/14/18 Grundlagen von SQL (Structured Query Language) Datenbanksprache Befehle Datenbanken und Tabellen erstellen/verändern Daten manipulieren (eingeben, ändern, löschen) Datenbank durchsuchen (Queries

Mehr

Datenmanipulation in SQL (1): Subselect:

Datenmanipulation in SQL (1): Subselect: Datenmanipulation in SQL (1): Unter Datenmanipulation wird sowohl der lesende Zugriff auf die Daten (Select Statement) als auch die Änderung von Daten (Insert, Delete, Update) subsummiert. Wir beginnen

Mehr

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

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

Mehr

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis

Daniel Warner SQL. Das Praxisbuch. Mit 119 Abbildungen. Franzis Daniel Warner SQL Das Praxisbuch Mit 119 Abbildungen Franzis Inhaltsverzeichnis Teil I - Einleitung 15 1 Einleitung 17 1.1 Zum Aufbau des Buchs 17 1.2 Hinweise zur Buch-CD 18 1.3 Typografische Konventionen

Mehr

Datenmanipulation in SQL. Select Anweisung

Datenmanipulation in SQL. Select Anweisung Datenmanipulation in SQL Unter Datenmanipulation wird sowohl der lesende Zugriff auf die Daten (Select Statement) als auch die Änderung von Daten (Insert, Delete, Update) subsummiert. Wir beginnen mit

Mehr

Oracle 10g Einführung

Oracle 10g Einführung Kurs Oracle 10g Einführung Teil 5 Einführung Timo Meyer Administration von Oracle-Datenbanken Timo Meyer Sommersemester 2006 Seite 1 von 16 Seite 1 von 16 Agenda 1 Tabellen und Views erstellen 2 Indizes

Mehr

SQL Data Manipulation Language (DML) und Query Language (QL)

SQL Data Manipulation Language (DML) und Query Language (QL) Innsbruck Information System University of Innsbruck School of Management Information Systems Universitätsstraße 15 6020 Innsbruck SQL Data Manipulation Language (DML) und Query Language (QL) Universität

Mehr

dbis Praktikum DBS I SQL Teil 2

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

Mehr

Praktische SQL-Befehle 2

Praktische SQL-Befehle 2 Praktische SQL-Befehle 2 Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Functions Views Triggers Voraussetzung: Laptop + MySQL/ MariaDB + Workbench! DB1 WS2018 2 Airport

Mehr

Wiederholung VU Datenmodellierung

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

Mehr

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

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

Mehr

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

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

Mehr

SQL. 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 : Datenbanksysteme Vorlesung:

Mehr

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

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

Mehr

SQL 2. Ziele. Fortgeschrittene SQL-Konstrukte. Aggregatfunktionen revisited. Subqueries. Korrelierte Subqueries

SQL 2. Ziele. Fortgeschrittene SQL-Konstrukte. Aggregatfunktionen revisited. Subqueries. Korrelierte Subqueries SQL 2 Lehr- und Forschungseinheit Datenbanken und Informationssysteme 1 Ziele Fortgeschrittene SQL-Konstrukte groupby having union / intersect / except Aggregatfunktionen revisited Subqueries Korrelierte

Mehr

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

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

Mehr

Aggregatfunktionen in SQL

Aggregatfunktionen in SQL Aggregatfunktionen in SQL Michael Dienert 14. April 2008 1 Definition von Aggregatfunktionen Ihren Namen haben die Aggregatfunktionen vom englischen Verb to aggregate, was auf deutsch anhäufen, vereinigen,

Mehr

7. Einfache Auswertungen aus der Datenbank (select)

7. Einfache Auswertungen aus der Datenbank (select) 7. Einfache Auswertungen aus der Datenbank (select) [ ] 7.3 rojektion Erzeuge eine Übersicht aller existierender Warengruppen Select distinct warengruppe from artikel - WS 2007/2008 - rof. Dr. Klaus-Dieter

Mehr

Vorlesung Wissensentdeckung in Datenbanken

Vorlesung Wissensentdeckung in Datenbanken Vorlesung Wissensentdeckung in Datenbanken Data Cube Katharina Morik, Uwe Ligges Informatik LS 8 22.04.2010 1 von 26 Gliederung 1 Einführung 2 Aggregation in SQL, GROUP BY 3 Probleme mit GROUP BY 4 Der

Mehr

Operationen auf Relationen

Operationen auf Relationen Existierende relationale Datenbanken Beispiele von relationalen DB-Systemen: DB2, SQL (v. IBM), ORACLE, INGRES, INFORMIX, SYBASE, ACCESS u.v.a.m. Die dominierende Query-, DB-Language: SQL (Structured Query

Mehr

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

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

Mehr

Vorlesung Wissensentdeckung in Datenbanken

Vorlesung Wissensentdeckung in Datenbanken Gliederung Vorlesung Wissensentdeckung in Datenbanken Data Cube Katharina Morik, Claus Weihs 14.07.2009 1 Einführung 2 Aggregation in SQL, GROUP BY 3 Probleme mit GROUP BY 4 Der Cube-Operator 5 Implementierung

Mehr

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2008/2009 Prof. Dr. W. Kießling 23. Nov. 2007 Dr. A. Huhn, M. Endres, T. Preisinger Lösungsblatt 5 Aufgabe 1: SQL-Queries Datenbanksysteme I a) Geben Sie

Mehr

1 Equi Join und Inner Join

1 Equi Join und Inner Join 1 Equi Join und Inner Join Die allgemeine Form des Equi Join lautet: SELECT Tabelle1.Feld1, Tabelle2.Feld3 FROM Tabelle1, Tabelle2 WHERE Tabelle1.Feld2 = Tabelle2.Feld2 2 beliebige Felder in zwei Tabellen

Mehr

VIEWS UND WEITERE TABELLEN-OPERATIONEN

VIEWS UND WEITERE TABELLEN-OPERATIONEN KAPITEL 9 VIEWS UND WEITERE TABELLEN-OPERATIONEN 9.1 Vereinbarung und Einsatz von Views 9.1.1 Einrichtung von Views Die CREATE VIEW-Anweisung Von Ausnahmen abgesehen ist es wie wir zuvor erläutert haben

Mehr

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1 Schlüssel Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1 und t 2 r gilt: - t 1 (K) t 2 (K) und - keine echte Teilmenge K'

Mehr

SQL Wiederholung. Datenbanktechnologien. Verbunde. Aggregation und Gruppierung. Unterabfragen. Hochschule für Technik und Wirtschaft Berlin

SQL Wiederholung. Datenbanktechnologien. Verbunde. Aggregation und Gruppierung. Unterabfragen. Hochschule für Technik und Wirtschaft Berlin SQL Wiederholung Datenbanktechnologien Prof. Dr. Ingo Claÿen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Verbunde Aggregation und Gruppierung Unterabfragen Verbunde Inner-Join Nur

Mehr

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

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

Mehr

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken 17. V. 2017 Outline 1 Organisatorisches 2 SQL 3 OLTP, OLAP, SAP, and Data Warehouse OLTP and OLAP SAP 4 Objekt-relationale Datenbanken Beispiel

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

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

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

Mehr

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

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

Mehr

DB2 for z/os. Teil 2 SQL

DB2 for z/os. Teil 2 SQL DB2 for z/os Teil 2 SQL cps4it consulting, projektmanagement und seminare für die informationstechnologie Ralf Seidler, Stromberger Straße 36A, 55411 Bingen Fon: +49-6721-992611, Fax: +49-6721-992613,

Mehr

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007

PRG2 Folien Zicari Teil 5. Einführung in Datenbanken SS 2007 PRG2 Folien Zicari Teil 5 Einführung in Datenbanken SS 2007 Prof. Dott. Ing. Roberto Zicari Johann Wolfgang Goethe-Universität Frankfurt am Main PRG2 V-1 Fachbereich Informatik und Mathematik SQL SQL =

Mehr

DB2 for z/os. Teil 2 SQL

DB2 for z/os. Teil 2 SQL DB2 for z/os Teil 2 SQL cps4it consulting, projektmanagement und seminare für die informationstechnologie Ralf Seidler, Stromberger Straße 36A, 55411 Bingen Fon: +49-6721-992611, Fax: +49-6721-992613,

Mehr

SQL,Teil 3: Unterabfragen, Views & Berechnungen

SQL,Teil 3: Unterabfragen, Views & Berechnungen SQL,Teil 3: Unterabfragen, Views & Berechnungen W. Spiegel Übersicht Hinweis... Unterabfragen (subqueries) Virtuelle Spalten: AS Logik Berechnungen: Aggregatfunktionen in SQL GROUP BY & HAVING Views (Sichten)

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

Data Cube. 1. Einführung. 2. Aggregation in SQL, GROUP BY. 3. Probleme mit GROUP BY. 4. Der Cube-Operator. 5. Implementierung des Data Cube

Data Cube. 1. Einführung. 2. Aggregation in SQL, GROUP BY. 3. Probleme mit GROUP BY. 4. Der Cube-Operator. 5. Implementierung des Data Cube Data Cube 1. Einführung 2. Aggregation in SQL, GROUP BY 3. Probleme mit GROUP BY 4. Der Cube-Operator 5. Implementierung des Data Cube 6. Zusammenfassung und Ausblick Dank an Hanna Köpcke! 1 On-line Analytical

Mehr

Die Anweisung create table

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

Mehr

Induktionsschluss: Sei Q RA eine Anfrage der Relationenalgebra mit n > 0 Operatoren.

Induktionsschluss: Sei Q RA eine Anfrage der Relationenalgebra mit n > 0 Operatoren. 1 Aufgabe 3.1: Wir beweisen durch Induktion über die Anzahl Operatoren π, σ,,,, δ eines Ausdrucks der Relationenalgebra, dass zu jeder Anfrage der Relationenalgebra eine äquivalente Anfrage in SQL existiert.

Mehr

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT SQL SQL SELECT Anweisung Mit der SQL SELECT-Anweisung werden Datenwerte aus einer oder mehreren Tabellen einer Datenbank ausgewählt. Das Ergebnis der Auswahl ist erneut eine Tabelle, die sich dynamisch

Mehr

4. Objektrelationales Typsystem Kollektionstypen. Nested Table

4. Objektrelationales Typsystem Kollektionstypen. Nested Table Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13 Auf einen Blick Vorwort... 13 Teil 1 Vorbereitung Kapitel 1 Einleitung... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 Kapitel 3 Die Beispieldatenbanken... 39 Teil 2 Abfrage und Bearbeitung

Mehr

Beispiel zur referentiellen Integrität

Beispiel zur referentiellen Integrität 3. Der SQL-Standard 3.14. Integrität und Trigger Seite 1 Beispiel zur referentiellen Integrität CREATE TABLE T1( k1 NUMERIC NOT NULL PRIMARY KEY); CREATE TABLE T2( k2 NUMERIC NOT NULL PRIMARY KEY, k1 NUMERIC,

Mehr

Tabellen verknüpfen: Joins

Tabellen verknüpfen: Joins SQL2-1 - Tabellen verknüpfen: Joins Bisher haben wir Tabellen mittels Unterabfragen verknüpft d. h. eine Spalte einer anderen Tabelle kann ein Selektionskriterium liefern. Wie kann man aber eine "echte"

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

Datenbank und Tabelle mit SQL erstellen

Datenbank und Tabelle mit SQL erstellen Datenbank und Tabelle mit SQL erstellen 1) Übung stat Mit dem folgenden Befehlen legt man die Datenbank stat an und in dieser die Tabelle data1 : CREATE DATABASE stat; USE stat; CREATE TABLE data1 ( `id`

Mehr

Datenbank-Tuning. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Datenbank-Tuning. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München Kapitel 7 Datenbank-Tuning Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München 2008 Thomas Bernecker, Tobias Emrich unter Verwendung der Folien des Datenbankpraktikums aus dem Wintersemester

Mehr

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

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Anlegen einer Tabelle create

Mehr

Data Cubes PG Wissensmangement Seminarphase

Data Cubes PG Wissensmangement Seminarphase PG 402 - Wissensmangement Seminarphase 23.10.2001-25.10.2001 Hanna Köpcke Lehrstuhl für Künstliche Intelligenz Universität Dortmund Übersicht 1. Einführung 2. Aggregation in SQL, GROUP BY 3. Probleme mit

Mehr

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13 Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel

Mehr

Einleitung. ROLLUP, CUBE und GROUPING. Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002)

Einleitung. ROLLUP, CUBE und GROUPING. Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Betrifft Autör: GROUPING_ID Markus Jägle (markus.jaegle@trivadis.com) Art der Info Technische Background Info (April 2002) Quelle Aus dem Oracle9i Data Warehousing Guide und den Kursen New Features Oracle9i

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

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

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

Mehr

Kapitel 5: Sortieren, Gruppieren und Views in SQL

Kapitel 5: Sortieren, Gruppieren und Views in SQL Ludwig Maximilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Datenbanksysteme I Wintersemester 2016/2017 Kapitel 5: Sortieren, Gruppieren

Mehr

Fortsetzung: Kreuzprodukt, Inner Join. Sortierung. Existenzquantor, Mengenvergleich Gruppierung, Aggregate Cast-Operator

Fortsetzung: Kreuzprodukt, Inner Join. Sortierung. Existenzquantor, Mengenvergleich Gruppierung, Aggregate Cast-Operator Fortsetzung: Anfragen mit SQL Bisher: Projektion, Selektion, Duplikatbehandlung, NULL Werte Kreuzprodukt, Inner Join Mengenoperationen Sortierung Geschachtelte Anfragen Existenzquantor, Mengenvergleich

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

Datenbanken Unit 9: OLAP, OLTP, Data Warehouse Ranking Algorithmen

Datenbanken Unit 9: OLAP, OLTP, Data Warehouse Ranking Algorithmen Datenbanken Unit 9: OLAP, OLTP, Data Warehouse Ranking Algorithmen 28. V. 2018 Outline 1 Organisatorisches 2 OLTP, OLAP, SAP, and Data Warehouse OLTP and OLAP SAP 3 Ranking 4 SQL Organisatorisches Ergebnisse

Mehr

Es geht also im die SQL Data Manipulation Language.

Es geht also im die SQL Data Manipulation Language. 1 In diesem Abschnitt wollen wir uns mit den SQL Befehlen beschäftigen, mit denen wir Inhalte in Tabellen ( Zeilen) einfügen nach Tabelleninhalten suchen die Inhalte ändern und ggf. auch löschen können.

Mehr

Datenmanagement I SoSe 2006 Aufgabenblatt 4

Datenmanagement I SoSe 2006 Aufgabenblatt 4 Datenmanagement I SoSe 2006 Aufgabenblatt 4 June 11, 2009 Versuchen Sie, einige der Anfragen zu formulieren (ab Punkt 6), die im Tutorium stehen, das hier zu finden ist: http://wwwiti.cs.uni-magdeburg.de/iti_db/lehre/dm/tut/tutorium.html.

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

SQL - Datenbankdesign - Aufbau SQL - Datenbankdesign - Aufbau Kompakt-Intensiv-Training Unsere fünftägige ANSI SQL Schulung vermittelt Ihnen alle nötigen Kenntnisse zur Erstellung von Datenauswertungen und Programmierung wiederkehrender

Mehr

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken 31. V. 2016 Outline 1 Organisatorisches 2 SQL 3 OLTP, OLAP, SAP, and Data Warehouse OLTP and OLAP SAP 4 Objekt-relationale Datenbanken Beispiel

Mehr

Datenbanken und SQL. Kapitel 4. Die Datenbankzugriffssprache SQL. Edwin Schicker: Datenbanken und SQL (4)

Datenbanken und SQL. Kapitel 4. Die Datenbankzugriffssprache SQL. Edwin Schicker: Datenbanken und SQL (4) Datenbanken und SQL Kapitel 4 Die Datenbankzugriffssprache SQL Die Datenbankzugriffssprache SQL Der Select-Befehl Der Hauptteil des Select-Befehls From-, Where-, Select-Klausel Group By und Having Join

Mehr

4.5 Anfragen mit Mengenoperatoren

4.5 Anfragen mit Mengenoperatoren 4. Der SQL-Standard 4.5. Anfragen mit Mengenoperatoren 4.5 Anfragen mit Mengenoperatoren UNION,INTERSECT und. Die beteiligten Tabellen müssen zueinander kompatible Spaltentypen haben. Die Resultatspalte

Mehr

Materialized Views. Jan-Peter Timmermann. DOAG Regiotreffen Hamburg: Materialized Views Seite 1

Materialized Views. Jan-Peter Timmermann. DOAG Regiotreffen Hamburg: Materialized Views Seite 1 Materialized Views Jan-Peter Timmermann DOAG Regiotreffen Hamburg: Materialized Views Seite 1 Klassische View Sind virtuelle Tabellen Erstellung nicht aufwendig, da nur ein Eintrag im Data Dictionary vorgenommen

Mehr

[1] DBS-exercice

[1] DBS-exercice [1] DBS-exercice 1.11.14 Daten abfragen (SELECT) Wenn Sie die Möglichkeiten des SELECT-Befehls nutzen, müssen Sie diese Reihenfolge der einzelnen Befehlskomponenten einhalten: SELECT spaltenliste FROM

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 fett und in Großbuchstaben geschrieben mögliche, aber nicht zwingend erforderliche

Mehr