Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
1 Einführung
2 Grundlagen
3 Fehlerbehandlung
4 Erweiterte Grundlagen
5 Objektorientierte Programmierung
6 Wichtige Klassen in .NET
7 Weitere Elemente eines Windows-Programms
8 Datenbank-Anwendungen mit ADO.NET
9 Internet-Anwendungen mit ASP.NET
10 Zeichnen mit GDI+
11 Beispielprojekte
A Installation und technische Hinweise
B Lösungen der Übungsaufgaben
Stichwort

Download:
- ZIP, ca. 7,8 MB
Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Einstieg in Visual Basic 2010 von Thomas Theis
Inkl. Visual Studio Express Editions
Buch: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
2., akt. und erw. Aufl., Klappbroschur, mit DVD
467 S., 24,90 Euro
Galileo Computing
ISBN 978-3-8362-1541-1
Pfeil 8 Datenbank-Anwendungen mit ADO.NET
Pfeil 8.1 Was sind relationale Datenbanken?
Pfeil 8.1.1 Beispiel »Lager«
Pfeil 8.1.2 Indizes
Pfeil 8.1.3 Relationen
Pfeil 8.1.4 Übungen
Pfeil 8.2 Anlegen einer Datenbank in Microsoft Access
Pfeil 8.2.1 Aufbau von Access
Pfeil 8.2.2 Datenbank-Entwurf in Access 2007
Pfeil 8.2.3 Datenbank-Entwurf in einer älteren Version von Access
Pfeil 8.2.4 Übungen
Pfeil 8.3 Datenbankzugriff mit Visual Basic
Pfeil 8.3.1 Beispiel-Datenbank
Pfeil 8.3.2 Ablauf eines Zugriffs
Pfeil 8.3.3 Verbindung
Pfeil 8.3.4 SQL-Befehl
Pfeil 8.3.5 OleDb
Pfeil 8.3.6 Auswahlabfrage
Pfeil 8.3.7 Aktionsabfrage
Pfeil 8.4 SQL-Befehle
Pfeil 8.4.1 Auswahl mit select
Pfeil 8.4.2 Ändern mit update
Pfeil 8.4.3 Löschen mit delete
Pfeil 8.4.4 Einfügen mit insert
Pfeil 8.4.5 Typische Fehler in SQL
Pfeil 8.5 Ein Verwaltungsprogramm
Pfeil 8.5.1 Initialisierung
Pfeil 8.5.2 Alle Datensätze sehen
Pfeil 8.5.3 Datensatz einfügen
Pfeil 8.5.4 Datensatz ändern
Pfeil 8.5.5 Datensatz löschen
Pfeil 8.5.6 Datensatz suchen
Pfeil 8.6 Abfragen über mehrere Tabellen
Pfeil 8.7 Verbindung zu MySQL
Pfeil 8.7.1 .NET-Treiber
Pfeil 8.8 Arbeiten mit DataSets
Pfeil 8.8.1 Eine Tabelle in Detailansicht
Pfeil 8.8.2 Schließen ohne Speichern verhindern
Pfeil 8.8.3 Eine Tabelle in DataGrid-Ansicht
Pfeil 8.8.4 Mehrere Tabellen mit Relationen


Galileo Computing - Zum Seitenanfang

8.6 Abfragen über mehrere Tabellen topZur vorigen Überschrift

Es folgt ein Beispiel mit einer Datenbank, die mehrere Tabellen beinhaltet (Projekt DBMehrereTabellen). Es werden einige Besonderheiten erläutert, die sich bei Abfragen über mehrere Tabellen ergeben. Das Beispiel basiert auf der Übung Projektverwaltung, siehe Abschnitt 8.1.4, bzw. der zugehörigen Lösung. Das Datenbankmodell sehen Sie in Abbildung 8.34.

Zur Erläuterung des Datenbankmodells:

Kunden

  • Kunden werden mit Name und Ort angegeben, Primärschlüssel: Kunden-ID.

Projekte

  • Projekte werden mit Bezeichnung angegeben. Jedes Projekt ist einem Kunden zugeordnet. Primärschlüssel ist die Projekt-ID.

Abbildung 8.34 Datenbankmodell zu »Projektverwaltung«

Personen

  • Personen werden mit Nach- und Vorname angegeben. Primärschlüssel ist die Personen-ID.

Zeiten

  • Die Arbeitszeiten der Personen an den Projekten werden mit Datum und Zeit in Stunden angegeben. Primärschlüssel ist die Kombination aus Projekt-ID, Personen-ID und Datum.

Zum besseren Verständnis der Abfrage-Ergebnisse folgen die Inhalte der Tabellen in den Abbildungen 8.35 bis 8.38.

Abbildung 8.35 Inhalt der Tabelle »kunde«

Abbildung 8.36 Inhalt der Tabelle »projekt«

Abbildung 8.37 Inhalt der Tabelle »person«

Abbildung 8.38 Inhalt der Tabelle »projekt_person«

Zunächst die Abfrage Alle Personen – das Ergebnis sehen Sie in Abbildung 8.39.

  • Es wird für jede Person ein Datensatz ausgegeben.
  • Personen werden mit Nachname und Vorname, auch danach sortiert, ausgegeben.
select * from person order by pe_nachname, pe_vorname

Abbildung 8.39 Alle Personen

Anzahl berechnen

Abfrage Anzahl der Kunden, Ergebnis siehe Abbildung 8.40.

count()

  • Es wird die Anzahl der Kunden mit Hilfe der SQL-Funktion count()ermittelt.
  • Das Ergebnisfeld, das die berechnete Anzahl beinhaltet, bekommt den (frei gewählten) Namen count_ku_id.
select count(ku_id) as count_ku_id from kunde

Abbildung 8.40 Anzahl der Kunden

Abfrage Alle Kunden mit allen Projekten, Ergebnis siehe Abbildung 8.41.

  • Es wird für jedes Projekt ein Datensatz ausgegeben.
  • In jedem Datensatz stehen die Daten des Projekts und des betreffenden Kunden.
  • Die Anzeige ist nach Name, Ort und Bezeichnung sortiert.
select * from kunde, projekt
    where ku_id = pr_ku_id
    order by ku_name, ku_ort, pr_bezeichnung

Zwei Tabellen

  • In jedem Datensatz werden Inhalte aus zwei Tabellen angezeigt. Beide Tabellennamen werden hinter from aufgeführt.
  • Es werden nur Datensätze zusammengestellt, bei denen die Feldinhalte aus der Bedingung nach where übereinstimmen.

Abbildung 8.41 Alle Kunden mit allen Projekten

Abfrage Alle Personen mit allen Projektzeiten, Ergebnis siehe Abbildung 8.42.

  • Es wird für jede eingetragene Arbeitszeit ein Datensatz ausgegeben.

Drei Tabellen

  • In jedem Datensatz stehen die Daten der Arbeitszeit, des betreffenden Projekts und des betreffenden Kunden.
  • Die Ausgabe ist nach Nachname, Bezeichnung und Datum sortiert.
select * from projekt, projekt_person, person
   where projekt.pr_id = projekt_person.pr_id
   and projekt_person.pe_id = person.pe_id
   order by pe_nachname, pr_bezeichnung, pp_datum
  • In jedem Datensatz werden Inhalte aus drei Tabellen angezeigt. Alle drei Tabellennamen werden hinter from aufgeführt.
  • Es werden nur Datensätze zusammengestellt, bei denen die Feldinhalte aus den beiden Bedingungen nach where übereinstimmen.
  • Die beiden Feldnamen pr_id und pe_id kommen jeweils in zwei Tabellen vor. Daher müssen Sie jeweils den Tabellennamen (mit nachfolgendem Punkt) zusätzlich angeben. Ansonsten wären die Feldnamen in der SQL-Anweisung nicht eindeutig.

Abbildung 8.42 Alle Personen mit allen Projektzeiten

Summe berechnen

Abfrage Alle Personen mit Zeitsumme, Ergebnis siehe Abbildung 8.43.

  • Es wird für jede Person ein Datensatz ausgegeben.
  • Es werden alle Personen, denen mindestens eine Arbeitszeit zugeordnet ist, ausgegeben.

sum()

  • Es wird die Summe der Arbeitszeiten pro Person mithilfe der SQL-Funktion sum() berechnet.
  • Die Ausgabe ist nach Nachname sortiert.
select pe_nachname, sum(pp_zeit) as sum_pp_zeit
   from person, projekt_person
   where person.pe_id = projekt_person.pe_id
   group by person.pe_id, pe_nachname
   order by pe_nachname
  • Der Anweisungsteil sum ... as bewirkt, dass die SQL-Funktion sum() angewendet wird.

group by

  • Es werden alle Einträge im Feld pp_zeit aufsummiert, nach denen gruppiert wurde. Die Gruppierung wird mithilfe von group bydurchgeführt.

Gruppieren

  • Es wird nach den Feldern pe_id und pe_nachname der Tabelle person gruppiert, es werden also alle Arbeitszeiten einer Person summiert. Streng genommen hätte es gereicht, nach pe_id zu gruppieren, da dadurch bereits alle Personen voneinander unterschieden werden. Allerdings soll das Feld pe_nachname ausgegeben werden, daher muss es ebenfalls Teil der Gruppierungsfunktion sein.
  • Das Ergebnisfeld, das die berechnete Summe beinhaltet, bekommt den (frei gewählten) Namen sum_pp_zeit.

Abbildung 8.43 Alle Personen mit Zeitsumme

Abfrage Alle Projekte mit allen Personenzeiten, Ergebnis siehe Abbildung 8.44.

  • Es handelt sich um den gleichen Zusammenhang wie in der Abfrage Alle Personen mit allen Projektzeiten.
  • Die Ausgabe ist nur anders sortiert, nach Bezeichnung, Nachname und Datum.
select * from projekt, projekt_person, person
   where projekt.pr_id = projekt_person.pr_id
   and projekt_person.pe_id = person.pe_id
   order by pr_bezeichnung, pe_nachname, pp_datum

Abbildung 8.44 Alle Projekte mit allen Personenzeiten

Abfrage Alle Projekte mit Zeitsumme, Ergebnis siehe Abbildung 8.45.

  • Es handelt sich um einen ähnlichen Zusammenhang wie in der Abfrage Alle Personen mit Zeitsumme.
  • Es wird nach Projekt statt nach Person gruppiert und entsprechend sortiert.
select pr_bezeichnung, sum(pp_zeit) as sum_pp_zeit
   from projekt, projekt_person
   where projekt.pr_id = projekt_person.pr_id
   group by projekt.pr_id, pr_bezeichnung
   order by pr_bezeichnung

Abbildung 8.45 Alle Projekte mit Zeitsumme



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






<< zurück
  Zum Katalog
Zum Katalog: Einstieg in Visual Basic 2010

Einstieg in Visual Basic 2010
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Visual Basic 2010






 Visual Basic 2010


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Silverlight 4






 Silverlight 4


Zum Katalog: Einstieg in Visual C# 2010






 Einstieg in
 Visual C# 2010


Zum Katalog: Visual C# 2010






 Visual C# 2010


Zum Katalog: Einstieg in PHP 5.3 und MySQL 5.4






 Einstieg in PHP 5.3
 und MySQL 5.4


Zum Katalog: PHP 5.3 und MySQL 5.4






 PHP 5.3 und
 MySQL 5.4


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2010
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de