In diesem Abschnitt wollen wir uns mit einem besonderen Thema widmen. Dem Thema SQL-JOIN.

Ähnliche Dokumente
Es geht also im die SQL Data Manipulation Language.

Es geht also um die sogenannte SQL- Data Definition Language.

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

SQL. Komplexe Abfragen. SQL-Komplexe Abfragen. SQL-Komplexe Abfragen. Komplexe Abfragen verknüpfen mehrere Tabellen miteinander.

Microsoft Access 2010 SQL nutzen

Übersicht der wichtigsten MySQL-Befehle

Tabellen verknüpfen. In dieser Lektion lernen Sie

Datenbank und Tabelle mit SQL erstellen

Oracle: Abstrakte Datentypen:

Datenbanksysteme Teil 7 MySQL DML Die SELECT-Anweisung Mengenoperationen & Joins. Stefan Maihack Dipl. Ing. (FH) Datum:

In diesem Anschnitt geht es um die SQL Anweisungen, mit denen ich den Zugriff auf das Datenbankschema steuern kann.

Abfragen (Queries, Subqueries)

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

SQL. SQL SELECT Anweisung SQL-SELECT SQL-SELECT

Sructred Query Language

SQL,Teil 2: SELECT. W. Spiegel. Übersicht SELECT. Mehrfache Werte vermeiden: SELECT DISTINCT. Ausgabe ordnen: ORDER BY. Projektion.

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

Oracle 10g Einführung

Einführung in SQL Datenbanken bearbeiten

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

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

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

In diesem Abschnitt stehen Transaktionen im Mittelpunkt. Hierbei geht es darum, wie bei Mehrbenutzerbetrieb die Integrität von Datenbanken

8 DML (1) Daten abfragen

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

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

Seminar 1 SQL Abfragen DML. MatrNr Name Vorname Age Gruppe Schmidt Hans Meisel Amelie

Microsoft Access Abfragen. Verknüpfung von Tabellen

Tabellen verknüpfen: Joins

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Aggregatfunktionen in SQL

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

Verbunde (Joins) und mengentheoretische Operationen in SQL

Verbunde (Joins) und mengentheoretische Operationen in SQL

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

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken.

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

Mentorierte Arbeit Fachwissenschaftliche Vertiefung mit pädagogischem Fokus Informatik (A + B) Daten verwalten mit einer relationalen Datenbank

Wiederholung VU Datenmodellierung

Erzeugung und Veränderung von Tabellen

12 BG EDV Access / Inf-SQL1 Theodor-Heuss-Schule Wetzlar

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Whitepaper. Produkt: combit Relationship Manager 5. Import von Adressen nach Firmen und Personen. combit GmbH Untere Laube Konstanz

Zweitens über eine Abfrage, welche die Tabellen tblartikel und tbllieferanten verknüpft. Auf diese Weise würde das Kombinationsfeld

Indexbasiertes SQL Tuning

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

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

SQL,Teil 3: Unterabfragen, Views & Berechnungen

Gregor Kuhlmann Friedrich Müllmerstadt. MySQL. Der Schlüssel zu Datenbanken-Design und -Programmierung. c 3 E. i- O Rowohlt Taschenbuch Verlag

Prof. Dr. Bernd Blümel Prof. Dr. Volker Klingspor. Datenbanken und SQL

06 While-Schleifen. While-Schleifen 1/7 Wiederholung: Schleifen

Datenbanksysteme Kapitel 5: SQL Data Manipulation Language

Inhaltsverzeichnis. Einleitung

Daten verwalten mit einer relationalen Datenbank

DB2 for z/os. Übungen zur Schulung

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Datenmanipulation in SQL (1): Subselect:

SQL. Fortgeschrittene Konzepte Auszug

Datenbanksysteme Teil 6 MySQL DML Die SELECT-Anweisung. Stefan Maihack Dipl. Ing. (FH) Datum:

PHP MySQL - myphpadmin Formulardaten in eine Datenbank speichern

Abfragen aus mehreren Tabellen (mit join)

Beispieldaten Um die Erläuterungen in diesem Skript besser verständlich zu machen, soll nachfolgendes einfaches Datenbankschema dienen:

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

SQL structured query language

10 SQL-Basics: Erweiterte Abfragen mit SELECT Im Mittelpunkt dieses Kapitels steht nicht nur die einfache Auswahl von Spalten, sondern auch die

Datumsangaben, enthält mindestens Jahr, Monat, Tag

ids-system GmbH Tipp #3 Leer-Strings in SQL oder die Frage nach CHAR oder VARCHAR

Erste Schritte, um selber ConfigMgr Reports zu erstellen

SQL als Zugriffssprache

Datenmanipulation in SQL. Select Anweisung

SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP

Whitepaper. Produkt: combit Relationship Manager. Datensatzhistorie mit dem SQL Server 2000 und combit GmbH Untere Laube Konstanz

GDI-Business-Line 3.x

1.1 Datenbanken Tabellen SQL und die Befehlseingabe Beispieldatenbank 36

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

Oracle SQL. Seminarunterlage. Version vom

Übungsaufgaben mit Lösungen

Die SQL-Schnittstelle

IV. Datenbankmanagement

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

CREATE TABLE-Syntax

Garten - Daten Bank. - survival pack -

Datenbank Grundlagen. Performanceuntersuchungen

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

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

Informatik 12 Datenbanken SQL-Einführung

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

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

CADSTAR MRP-Link. MRP-Link ist erstellt von:

Wirtschaftsinformatik Jgst. 9/10. Fortbildung am in Ansbach

OpenOffice - Base G. Laner 1

Folien php/mysql Kurs der Informatikdienste

SQL-Befehlsliste. Vereinbarung über die Schreibweise

Lösungen der Übungsaufgaben von Kapitel 10

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

Lektion 3 Übungsaufgaben

Übung 3. Komplexe SQL-Anfragen. Prof. Dr. Andreas Schmietendorf 1. Übung 3

Oracle Database 12c: Introduction to SQL (ORA-D80174)

Transkript:

1

In diesem Abschnitt wollen wir uns mit einem besonderen Thema widmen. Dem Thema SQL-JOIN. Logisch angesiedelt ist dieses Thema bei dem SQL-DML Anweisungen, da es sich um einen besonderen Aspekt bei Select Anweisungen handelt. Zunächst müssen wir klären, was JOIN überhaupt ist, bevor wir uns dann mit den einzelnen Formen von JOINs auseinander setzen. Wie man der Abbildung entnehmen kann, gibt es sogenannte INNER und OUTER Joins. Diese wollen wir uns näher ansehen. 2

JOIN bedeutet zunächst verbinden. Es geht also darum, mehrere Tabellen miteinander zu verbinden. Wir beschränken uns auf das Verknüpfen zweier Tabellen, um die Grundproblematik zu verstehen. Das Verknüpfen von mehr als zwei Tabellen erfolgt dann analog. Doch was bedeutet nun genau Zwei Tabelle zu verbinden? Wie in der Abbildung dargestellt, betrachten wir zunächst zwei Tabellen. Nun geht es darum die Daten der beiden Tabellen (Tabellenzeilen) miteinander so zu verknüpfen, so dass wir als Ergebnis eine einzige Tabelle erhalten. Dies bedeutet, dass wir angeben müssen, wie die Zeilen aus den jeweiligen Tabellen zugeordnet werden sollen. Dies genau passiert in der sogenannten JOIN-Bedingung. Wie genau so ein JOIN-Bedingung ist, sehen wir uns als nächstes anhand eines Beispiels an. 3

Um zu verstehen, was ein JOIN genau ist, schauen wir uns das Beispiel in der Abbildung genauer an. Wir haben zwei Tabellen: 1. Tabelle A mit den Spalten Name und Ort Diese Tabelle enthält also sowas wie den Wohnort einer Person. 2. Tabelle B mit den Spalten Name und Arbeitgeber Diese Tabelle enthält also sowas wie den Arbeitgeber einer Person. Für das Verständnis von JOINS spielt es keine Rolle, ob es einen Primärschlüssel gibt und wenn ja, wie der genau aussieht. Daher benötigen wir diese Angaben hier nicht. Die Aufgabe Nun soll die Aufgabe darin bestehen, genau eine Liste zu erstellen, aus denen der Wohnort UND der Arbeitgeber einer Person hervorgeht. Die Lösung mittels JOIN Hierzu müssen wir nun die Inhalte beider Tabellen zusammenfassen. Wenn wir davon ausgehen können, dass die Verbindung bzw. Verknüpfung der Zeilen auf der Spalte Namen basiert, können wir nun folgende SELECT Anweisung erstellen. 4

SELECT * FROM TabelleA, TabelleB WHERE TabelleA.name = TabelleB.name Um den JOIN zu verstehen, schauen wir uns das Statement mal ganz genau an auf der nächsten Abbildung. 4

In Zeile (1) sehen wir zunächst eine Select-Klausel, die besagt, dass die Ergebnismenge alle Spalten enthalten sollen, die sich auf der Basis der FROM und WHERE Klausel ergeben. Alternativ hätten wir hier auch schreiben können Select TabelleA.*, TabelleB.* In Zeile (2) sehen wir, dass dort zwei Tabellennamen aufgeführt sind. Die Tabellen Namen sind durch ein Komma getrennt. In JOINs, mit mehr als zwei Tabellen, sind hier als alle Tabellen aufzuführen, die beim JOIN beteiligt sind. In Zeile (3) sehen wir die JOIN. Diese bedeutet, dass der in einer Zeile der TabelleA der Wert in der Spalte name mit dem Wert aus der Spalte name aus der TabelleB GLEICH (=) ist Dann werden die beiden Zeilen zu einer Zeile zusammengefasst. Diese neue Zeile enthält dann alle Spalten der jeweiligen Tabelle. Wie das Ergebnis aussieht, sehen wir in der nächsten Abbildung: 5

TIPP: Führen Sie nun aus dem Übungsbuch, die Übungen zum Thema INNER JOIN durch. 5

Bei dem Ergebnis werden vereinfacht ausgedrückt- die jeweils korrespondierenden Zeilen hintereinander gehängt. Machen wir uns dies wieder anhand zweier Beispiel-Zeilen klar. Der Name Müller kommt in beiden Tabellen vor. Er genügt also der JOIN- Bedingung. aus der Zeile aus TabelleA = ( Müller, Berlin ) Und Aus der Zeile aus TabelleB = ( Müller, Regional GmbH ) Wird eine neue Zeile = ( Müller, Berlin, Müller, Regional GmbH ) Also ( TabelleA.name, TabelleA.ort, TabelleB.name, TabelleB.arbeitgeber) Hinweis: 6

Würde in der Tabelle TablleB der Name Müller mehrmals auftreten (Haupt- und Neben-Arbeitgeber), dann hätten wir in der Ausgabe 2 Zeilen. 6

In dem vorherigen Beispiel haben wir ein einfaches Beispiel für einen sogenannten INNER-JOIN gesehen. Da wir als Bedingung eine = (equal) angegeben haben, spricht man in diesem Fall von einem EQUAL-JOIN. Das charakteristische an INNER JOINs ist, dass wir eine Bedingung angeben und immer an einem Ergebnis interessiert sind, bei dem die Bedingung zutrifft. Wenn es nun einen INNER JOIN gibt, so stellt sich die Frage Gibt es noch andere JOIN Arten? Gibt es auch einen OUTER JOIN (wenn es schon einen INNER-JOIN gibt ) Die Antwort lautet in beiden Fällen JA! Den OUTER-JOIN schauen wir uns als nächstes an. 7

Während man bei dem INNER-JOIN an der Ergebnismenge interessiert ist, auf deren Element die Bedingung zutrifft, gibt es in der Praxis Fälle. bei denen man immer alle Sätze einer Tabelle haben will. Sofern für eine Zeile keine passende Zeile in der Partnertabelle gefunden wird, dann sollen die Spaltenwerte mit NULL gefüllt werden. Weil dies etwas abstrakt klingt, machen wir uns den OUTER-JOIN wieder an einem Beispiel klar. In der Abbildung sind wieder unsere Tabellen A und B zu finden. Diesmal geht es um folgende Anforderung / Zielsetzung: Anforderung: Gebe mir eine Liste aller Namen aus Tabelle A mit den zugehörigen Arbeitgebern. Sofern für einen Namen KEIN Arbeitgeber eingetragen ist, so soll der Eintrag aus der Tabelle A trotzdem in der Ergebnisliste erscheinen inkl. der Spaten aus der Tabelle B. Die Spaltenwerte der Tabelle B sollen in diesem Fall mit NULL gefüllt sein. Diese Aufgabe ist am einfachsten zu lösen mit einem OUTER-JOIN. 8

Dieser sieht wie folgt aus: select * from wohnorte left outer join arbeitgeber on wohnorte.name = arbeitgeber.name Wie Sie an dem SELECT Befehl sehen, können wir die JOIN Bedingung durch das Schlüsselwort ON einleiten. Nach der JOIN Bedingung können Sie wie immer die WHERE Bedingung einfügen, wie in nachfolgendem Beispiel aufgeführt: select wohnorte.*, arbeitgeber.* from wohnorte right outer join arbeitgeber on wohnorte.name = arbeitgeber.name where wohnorte.name ='Schmidt TIPP: Führen Sie nun aus dem Übungsbuch die Aufgaben zu dem Thema OUT-JOIN durch LEFT or RIGHT --- that s the question Das Zusatz Left in dem left outer join gibt dabei an, dass alle Sätze aus der Tabelle, dessen Name auf der LINKEN Seite der JOIN Bedingung aufgeführt ist sind, in der Ergebnismenge enthalten sein sollen. Somit gibt es auch einen RIGHT OUTER JOIN. In diesem Fall bedeutet dies, dass in der Ergebnismenge als Sätze aus der Tabelle dessen Name auf der RECHTEN Seite der JOIN Bedingung aufgeführt ist sind, in der Ergebnismenge enthalten sein sollen. 8

Somit sieht ein RIGHT JOIN wie folgt aus Select * From TabelleA right outer join TabelleB On TabelleA.name = TabelleB.name Sonderübung: Überlegen, wie die Anforderung umformuliert werden müsste, wenn sie wie oben aufgeführt- einen RIGHT JOIN verwenden. 8

9

10