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



Ähnliche Dokumente
Informatik 12 Datenbanken SQL-Einführung

Grundlagen Datenbanken Sommersemester 2008

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

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5

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

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

MIN oder MAX Bildung per B*Tree Index Hint

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

Praktikum Datenbanken. 1. Erstellen Sie eine Abfrage, die die gesamte Tabelle PC ausgibt

Sie sollen eine Datenbank für Befragungen mittels Online-Fragebögen zu unterschiedlichen Themen erstellen:

Abfragen: Grundbausteine

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Hardware - Software - Net zwerke

AW: AW: AW: AW: Kooperationsanfrage anwalt.de

COMPUTERIA VOM SERIENBRIEFE UND ETIKETTENDRUCK

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

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

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

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

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3

Anleitung über den Umgang mit Schildern

Produktionsplanung und steuerung (SS 2011)

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

8 Access-Abfragen migrieren

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Für die ersten Aufgaben verwenden Sie die Beispieltabellen der dritten Normalform zu dem Beispiel des Tante-Emma-Ladens (siehe Rückseite).

Professionelle Seminare im Bereich MS-Office

bagfa ist die Abkürzung für unseren langen Namen: Bundes-Arbeits-Gemeinschaft der Freiwilligen-Agenturen.

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Erstellen der Barcode-Etiketten:

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Erfahrungen mit Hartz IV- Empfängern

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

Platinen mit dem HP CLJ 1600 direkt bedrucken ohne Tonertransferverfahren

Die SPD und die Grünen machen im Niedersächsischen Landtag. Alle Menschen sollen in der Politik mitmachen können.

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Beispiel 1: Filmdatenbank

Umzug der abfallwirtschaftlichen Nummern /Kündigung

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

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Informationsblatt Induktionsbeweis

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

1. TEIL (3 5 Fragen) Freizeit, Unterhaltung 2,5 Min.

Wie Sie mit Mastern arbeiten

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

5. Übung: PHP-Grundlagen

Einrichtung eines -konto mit Thunderbird

Software- und Druckerzuweisung Selbstlernmaterialien

Papa - was ist American Dream?

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

Gemeinsame Erklärung zur inter-kulturellen Öffnung und zur kultur-sensiblen Arbeit für und mit Menschen mit Behinderung und Migrations-Hintergrund.

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

Was meinen die Leute eigentlich mit: Grexit?

Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Was ist das Budget für Arbeit?

Oracle SQL Tutorium - Wiederholung DB I -

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

1 topologisches Sortieren

Arbeiten mit UMLed und Delphi

Datenbanken Microsoft Access 2010

Menü auf zwei Module verteilt (Joomla 3.4.0)

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Mehr Arbeits-Plätze für Menschen mit Behinderung auf dem 1. Arbeits-Markt

Erfolg beginnt im Kopf

weiter. Der nächste Schritt ist der schwerste, Jakob versucht ihn, doch vergeblich. Sein Ärmel sitzt fest im Türspalt, der Mensch, der in das Zimmer

Fachhochschule Deggendorf Platzziffer:...

Webalizer HOWTO. Stand:

Etikettendruck mit Works 7.0

Der Gabelstapler: Wie? Was? Wer? Wo?

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

Örtliche Angebots- und Teilhabeplanung im Landkreis Weilheim-Schongau

Ermittlung der übereinstimmenden Variablen (-Namen) zweier Datasets

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

4. BEZIEHUNGEN ZWISCHEN TABELLEN

D.E.O. Die Erwachsene Organisation. Lösungen für eine synergetische Arbeitswelt

Fit in Deutsch 2. Für den Prüfungsteil Schreiben hast du 30 Minuten Zeit. In diesem Teil musst du auf eine Anzeige mit einem Brief antworten.

QTrade GmbH Landshuter Allee München Seite 1

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

Der Tag hat 24 Stunden. Bitte schreibt in die linke Spalte alles auf, was ihr gestern getan habt und euch noch einfällt: War es ein stressiger

Abfrage-Befehle in MySQL -diverse Funktionen -

Animationen erstellen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Word. Serienbrief erstellen

Alice & More Anleitung. GigaMail.

Erstellen von x-y-diagrammen in OpenOffice.calc

SQL - Übungen Bearbeitung der Datenbank Personal (1)

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

Grundbegriffe der Informatik

MPK Trader Ausbildung der erste Monat ist vorbei

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Wir machen neue Politik für Baden-Württemberg

Ablauf bei der Synchronisation und Sortierung von Dateien aus mehreren Kameras

Transkript:

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 Hatten schon SELECT * FROM table_name; Wählt alle Datensätze der table_name aus. Allgemeiner (in SQLite) SELECT [DISTINCT] select_heading FROM source_tables WEHRE filter_expression GROUP BY grouping_expression HAVING filter_expression ORDER BY ordering_expression LIMIT count OFFSET count; Und wir erkennen, dass das ein wenig komplizierter wird... DB, SS 12 May 20, 2012 1

SELECT Spielen die Relationenalgebra Operationen durch. Beispieltabellen dazu Verkäufer1 Verkäufer Produkt Käufer Meier Hose Schmidt Müller Rock Schmidt Meier Hose Schulz Verkäufer2 Verkäufer Produkt Käufer Müller Hemd Schmidt Müller Rock Schmidt Meier Rock Schulz Produkte Produkt Preis Klasse Hose 100 B Rock 200 A Keine guten Tabellen, da bspw. Schlüssel unklar. Aber zum Üben ok. Und es waren die Beispiele der Relationenalgebra. Projektion Betrachten zuerst die Projektion einer Tabelle auf einen Satz von Spalten: Proj(R, [B 1,..., B k ]), π B1,...,B k R, PJ (B1,...,B k )R SELECT b1,b2,b3 FROM r; SELECT kaeufer FROM verkaeufer1; SELECT kaeufer, produkt FROM verkaeufer1; Erste Abfrage liefert Tabelle mit doppelten Einträgen (zweimal Schmidt ). Manchmal unerwünscht. SELECT DISTINCT kaeufer FROM verkaeufer1; Benötigt etwas länger. DB, SS 12 May 20, 2012 2

Projektion Ergebnisse nicht sortiert. SELECT DISTINCT verkaeufer FROM verkaeufer2; Sortierung festlegen über ORDER BY Klausel. SELECT DISTINCT verkaeufer FROM verkaeufer2 ORDER BY verkaeufer ASC; SELECT DISTINCT verkaeufer FROM verkaeufer2 ORDER BY verkaeufer; ASC default SELECT DISTINCT verkaeufer FROM verkaeufer2 ORDER BY verkaeufer DESC; Auch über mehrere Spalten hinweg möglich. SELECT kaeufer, produkt FROM verkaeufer1 ORDER BY kaeufer DESC, product ASC; Selektion Nun die Auswahl bestimmter Datensätze einer Tabelle: Sel(R, Bed), σ Bed R, SL Bed R SELECT * FROM r WHERE bed; SELECT * FROM verkaeufer1 WHERE verkaeufer== Meier ; SELECT * FROM verkaeufer1 WHERE verkaeufer==produkt; Beantwortet für Tabelle verkaeufer1 die Fragen Welche Daten haben wir über den Verkäufer Meier? Wo stimmen Verkäufer-Namen und Produkt-Name überein? DB, SS 12 May 20, 2012 3

Selektion Direkt kombinierbar mit Projektion. Wer hat bei Meier gekauft? SELECT kauefer FROM verkaeufer1 WHERE verkaeufer== Meier ; Was hat Käufer Schmidt bei Meier gekauft? SELECT product FROM verkaeufer1 WHERE (verkaeufer== Meier ) AND (kaeufer== Schmidt ); Selektion Vergleiche bei Strings. verkaeufer== Meier ist äquivalent mit verkaeufer LIKE Meier Auch mit Wildcards % und _ kombinierbar. Etwa v LIKE M%, alles, was mit M anfängt. v LIKE %er, alles, was mit er aufhört. v LIKE %ei%, alles, was ein ei enthält. Und v LIKE M, alles, was mit M anfängt und vier Zeichen danach besitzt. Vor String-Vergleichen noch UPPER() oder LOWER() anwendbar. Gegen Gross-Klein- Schreibfehlern in der Tabelle. SELECT kauefer FROM verkauefer1 WHERE UPPER(verkaeufer)== MEIER ; DB, SS 12 May 20, 2012 4

Selektion Vorsicht beim Vergleich und Rechnen mit NULL. Dreiwertige Logik. Und v == NULL liefert immer NULL. Auch wenn v tatsächlich NULL ist. Korrekter Test auf NULL. v IS NULL Vereinigung, Schnitt, Differenz Bisher nur auf einer Tabelle gearbeitet. Jetzt zwei (oder mehr). Aber vereinigungsverträglich. Vereinigung zweier Tabellen: SELECT * FROM r UNION [ALL] SELECT * FROM s; R S, R UN S Mit ALL werden auch doppelte Einträge angezeigt. SELECT * FROM verkaeufer1 UNION SELECT * FROM verkaeufer2; DB, SS 12 May 20, 2012 5

Vereinigung, Schnitt, Differenz Schnitt zweier Tabellen: SELECT * FROM r INTERSECT SELECT * FROM s; R S, R IN S SELECT * FROM verkaeufer1 INTERSECT SELECT * FROM verkaeufer2; Vereinigung, Schnitt, Differenz Differenz zweier Tabellen: SELECT * FROM r EXCEPT SELECT * FROM s; R \ S, R DF S SELECT * FROM verkaeufer1 EXCEPT SELECT * FROM verkaeufer2; DB, SS 12 May 20, 2012 6

Verbund Verknüpfen strukturungleiche Tabellen miteinander. Beginnen mit dem Kreuzprodukt: SELECT * FROM r, s; R S oder SELECT * FROM r CROSS JOIN s; SELECT * FROM verkaeufer1, produkte; Liefert schnell sehr grosse Tabellen. Verbund Join von zwei Tabellen: SELECT * FROM r, s WHERE Bed; Join(R, S, Bed), R Bed S, R JN Bed S SELECT * FROM verkaeufer1, produkte WHERE verkaeufer1.verkaeufer==produkte.produkt; SELECT * FROM verkaeufer1, produkte WHERE verkaeufer1.produkt==produkte.produkt; SELECT * FROM verkaeufer1 NATURAL JOIN produkte; DB, SS 12 May 20, 2012 7

Tabellen: Angestellter AngNr Name Wohnort Beruf AbtNr 112 Müller Erfurt Ingenieur 3 205 Winter Zwickau Programmierer 3 117 Rüllich Weimar Hundezüchter 5 198 Schumann Jena Kaufmann 4 Projekt ProNr Titel Inhalt Leiter 27 Pkw2000 blabla... 205 16 Wankel99 blabla... 117 84 Trabi00 blabla... 117 Mitarbeit ProNr AngNr Prozent 27 112 100 27 198 70 16 198 20 Anfrage: Finde alle Namen der Angestellten, die im Projekt 27 mitarbeiten Anfrage: Finde alle Namen der Angestellten, die im Projekt 27 mitarbeiten PJ (Name) (Angestellter JN AngNr=AngNr (SL P ronr=27 Mitarbeit)) PJ (Name) (Angestellter JN AngNr=AngNr (PJ (AngNr) (SL P ronr=27 Mitarbeit))) PJ (Name) (SL P ronr=27 (Angestellter JN AngNr=AngNr Mitarbeit)) SL P ronr=27 (PJ (Name) (Angestellter JN AngNr=AngNr Mitarbeit)) SELECT DISTINCT Name FROM Angestellter, (SELECT * FROM Mitarbeit WHERE ProNr==27) AS Temp WHERE Angestellter.AngNr==Temp.AngNr; DB, SS 12 May 20, 2012 8

Anfrage: Finde alle Namen der Angestellten, die im Projekt 27 mitarbeiten PJ (Name) (Angestellter JN AngNr=AngNr (SL P ronr=27 Mitarbeit)) PJ (Name) (Angestellter JN AngNr=AngNr (PJ (AngNr) (SL P ronr=27 Mitarbeit))) PJ (Name) (SL P ronr=27 (Angestellter JN AngNr=AngNr Mitarbeit)) SL P ronr=27 (PJ (Name) (Angestellter JN AngNr=AngNr Mitarbeit)) SELECT DISTINCT Name FROM Angestellter, (SELECT AngNr FROM Mitarbeit WHERE ProNr==27) AS Temp WHERE Angestellter.AngNr==Temp.AngNr; Anfrage: Finde alle Namen der Angestellten, die im Projekt 27 mitarbeiten PJ (Name) (Angestellter JN AngNr=AngNr (SL P ronr=27 Mitarbeit)) PJ (Name) (Angestellter JN AngNr=AngNr (PJ (AngNr) (SL P ronr=27 Mitarbeit))) PJ (Name) (SL P ronr=27 (Angestellter JN AngNr=AngNr Mitarbeit)) SL P ronr=27 (PJ (Name) (Angestellter JN AngNr=AngNr Mitarbeit)) SELECT DISTINCT Name FROM Angestellter JOIN Mitarbeit WHERE Angestellter.AngNr==Mitarbeit.AngNr AND Mitarbeit.ProNr==27; SELECT Name FROM Angestellter NATURAL JOIN Mitarbeit WHERE Mitarbeit.ProNr==27; DB, SS 12 May 20, 2012 9

Anfrage: Finde alle Namen der Angestellten, die im Projekt 27 mitarbeiten PJ (Name) (Angestellter JN AngNr=AngNr (SL P ronr=27 Mitarbeit)) PJ (Name) (Angestellter JN AngNr=AngNr (PJ (AngNr) (SL P ronr=27 Mitarbeit))) PJ (Name) (SL P ronr=27 (Angestellter JN AngNr=AngNr Mitarbeit)) SL P ronr=27 (PJ (Name) (Angestellter JN AngNr=AngNr Mitarbeit)) SELECT * FROM (SELECT Name FROM Angestellter NATURAL JOIN Mitarbeit) AS Temp WHERE Temp.ProNr==27; Geht schief!! DB, SS 12 May 20, 2012 10