Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

PostgreSQL Grundkurs

Datensätze auswählen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Durchführung einer Selektion dient dazu, ausschließlich bestimmte Datensätze aus einer Tabelle entsprechend zuvor definierter Bedingungen anzuzeigen.

Transkript

Häufig werden die theoretischen Grundlagen der Datenbank Algebra auch nur theoretisch besprochen. Vielleicht liegt es daran, dass das Thema auch schon ja, irgendwie mathematisch klingt und damit abschreckt. Allerdings benötigen Sie genau diese Grundlagen für die Datenausgaben sehr häufig und insbesondere bei einem sehr gut geplanten Datenmodell, also nach dem ER-Modell oder mithilfe der theoretischen Schreibweise. Wo Sie dann auch letztendlich hinterher nur mit Schlüsselwerten arbeiten. Also gemeint sind Primärschlüssel und Nachschlageschlüssel oder Primary Key und Foreign Key. In diesem speziellen Fall, wenn Sie dort eine Ausgabe erzeugen müssen, die für uns Menschen auch wieder einen Informationsgehalt hat, ist sicherlich eine Tabelle nur mit Kundennummern und nur mit Projektnummern beispielsweise nicht so aussagekräftig wie mit dem Vor- und Zunamen eines Mitarbeiters versehen oder auch einer konkreten Projektbezeichnung. Das heißt, wir haben also die Aufgaben, aus den Tabellen wirklich wieder Information zu generieren, die für uns wichtig ist. Und bevor wir diese Schritte in diesem Kapitel durchführen, würde ich empfehlen, dass Sie sich, wenn nicht schon geschehen, einmal des Backup der Datenbank firma_abc einspielen. Ich mache das jetzt folgendermaßen, da ich diese Datenbank bereits schon habe und sicherstellen möchte, dass wir jetzt wirklich auch alle die gleichen Datenbestände haben, gehe ich erst mal hin und lösche die Datenbank, erzeuge eine neue und spiele dann das Backup ein. Dieses Backup, das unterscheidet sich von einem Struktur Backup. Das heißt, ich habe hier also auch den Hinweis auf den Datenbestand immer in dem Dateinamen drin. Das heißt, alle Tabellen, alle Datenbanken, die einen Datenbestand haben, die haben die Bezeichnung Data mit im Dateinamen. Wenn Sie die Datenbank firma_abc bereits haben, angelegt haben, und Sie möchten mit den gleichen Werten arbeiten, dann können Sie in der Eingabeaufforderung in der Kommandozeile, dem Terminal, den Befehl dropdb eingegeben und dann einfach firma_abc. So, und das geht ziemlich ohne Nachfrage. Ruckzuck sind die Daten weg. Und um jetzt wieder eine neue anzulegen, dann brauchen Sie den nächsten Befehl theoretisch gesehen auch nicht mitmachen. Also, createdb firma_abc jetzt damit lege ich die neue Datenbank wieder an. Jetzt hole ich mir mit psql in die Datenbank firma_abc die Daten von firma_abc-data.sql. Also das ist damit gemeint. Wenn da Data steht, sind Datenbestände drin, steht da Structure, dann ist es nur die leere Datenbankstruktur ohne Datenbestände. Das ist relativ schnell passiert und wenn das erledigt ist, dann logge ich mich ein psql und zwar in die Datenbank firma_abc und das wäre die richtige Ausgangssituation, um weitere durchzuspielen. Die sogenannte Selektion, die wir in Form eines SELECT Befehls ja bereits schon kennengelernt haben, ist der Startpunkt und auch die Basis aller weiteren Befehle, die es in diesem Bereich gibt und die man sich, zumindestens in bestimmten Grundlagen, aneignen sollte. Schauen wir uns erst mal überhaupt an, was wir hier für Tabellen drin haben. Dafür betätige ich eine Tastenkombination, um an den Backslash zu kommen und folge dann mit zwei Buchstaben, D und T für Data Tables, und gebe mir dann einfach mal alle Tabellen aus, die sich nun hier in der Datenbank befinden. Das ist eine Tabelle Kunden, Personal und Projekt. Und wenn ich jetzt mal schauen möchte, was in der Tabelle Kunden sich befindet, dann, und das dürften Sie bereits schon kennen, hat man mit dem SELECT Befehl, einem Asterikus, dem Sternchen und dem Verweis auf die Tabelle, die einen interessiert, natürlich die Möglichkeit, sich nun alle Datensätze, die sich dort drin befinden, ausgeben zu lassen. Soweit so gut. Genau genommen ist das allerdings noch keine Selektion in gewisser Weise. Wir selektieren einfach alle Datensätze. Aber wie schon auch erwähnt, es ist ein Problem, wenn Sie da 500.000 Datensätze drin haben, will man die sich garantiert nicht alle auf dem Bildschirm ausgeben lassen. Eine Selektion hat hier im Wesentlichen ja auch noch nicht stattgefunden. Die Selektion selber beginnt dann zu greifen, wenn man eine Auswahlbedingung definiert. Ich gebe das jetzt mal wieder ein bis an die Stelle, wo wir gerade waren. SELECT * FROM kunden und diese Auswahlbedingung oder eine Bedingung, die zutreffen muss, damit die Ausgabe generiert werden kann, auch als WHERE Klausel bezeichnet, und das ist genau das Schlüsselwörtchen, was wir brauchen, muss nun aus einem bestimmten Attribut, also aus einem Spaltenbezeichner, einen Wert herausnehmen, den man vergleichen kann. Und hier bieten sich natürlich ganz häufig Schlüsselfelder an, also wie jetzt in dem Falle tatsächlich die Kundennummer. Und die wird über den Attributbezeichner Kunden ID definiert. Und wenn ich mir jetzt zum Beispiel meinen allerersten Kunden ausgeben lassen möchte, dann würde ich das genauso schreiben und hätte damit eben eine Selektion. Bitte gib mir alle Spalten aus der Tabelle Kunden aus, wo die Auswahlbedingung der Kunden ID gleich eins zutreffend ist. So, und wenn ich das abschicke, dann habe ich genau diesen ersten Kunden, die Schneider Marianne, die mir jetzt ausgegeben wird. Und das ist das Prinzip einer Selektion. Selektionen, die Auswahlbedingungen, können mit sogenannten Booleschen Verknüpfungen funktionieren. Das würde jetzt zu weit führen, aber der Verweis sei schon mal auf Dokumentationen im Web gegeben. Also UND- und ODER-Verknüpfungen kann man verwenden und bei numerischen Werten, wir wir das jetzt hier zum Beispiel bei einer Kundennummer haben, auch natürlich mit größer, kleiner und ungleich. Also all das funktioniert. Ich betätige mal die Pfeil nach oben Taste auf meiner Tastatur, dann kann ich nämlich den letzten Befehl abrufen und ändere den jetzt noch mal gerade zum Beispiel in größer 2. Jetzt gebe ich mir alle Kunden aus, dessen Kundennummer größer 2 ist. und wie man sieht, ich habe ja nur drei Kunden da drin, ist das die Kunden ID drei. Und dieses Spiel, größer 1 zum Beispiel, das kann man unendlich weiterspielen. Sie merken also, das funktioniert. Und man muss dann halt nur auch überlegen, wenn man UND- und ODER-Verknüpfungen hat, dass die sinnvoll miteinander verbunden werden. Nicht damit man eine leere Ausgabemenge bekommt, weil einfach die logische Bedingung nicht erfüllt werden kann zum Beispiel. Das kommt häufig vor, gerade bei so Kombinationen von UND, die man umgangssprachlich häufig verwendet und dem für die Ausgabe vom logischen Operator, vom Booleschen Operator vorgegebenen ODER-Verknüpfungen. Vielleicht ein letztes dazu noch, weil man das auch gerne und häufig braucht. Möchten Sie jetzt zum Beispiel nicht einen Wert ausgeben, der gleich ist oder größer und kleiner und es handelt sich um einen numerischen Wert, wie wir das gerade im Beispiel hatten, sondern Sie möchten jetzt einen Kunden suchen oder alle Kunden suchen, die jetzt beispielsweise mit dem Vornamen J beginnen. Da gebe ich mir dann zum Beispiel das Ganze auch so aus. SELECT * FROM kunden, jetzt wieder die WHERE Klausel, das bleibt schon so. Wir wissen, es geht um den Vornamen. Undjetzt würden Sie vielleicht auf die Idee kommen, sowas zu schreiben wie Vorname gleich und dann fangen wir mal mit einem J an und einem Sternchen usw. Wenn Sie so etwas eingeben, kriegen Sie leere Ausgabe, noch nicht mal eine Fehlermeldung. Der Grund ist einfach. Die Ausgabe sucht nämlich jetzt oder bzw. durch diese WHERE Klausel wird nun ein Datensatz gesucht, dessen Inhalt des Attributes vname tatsächlich J * ist. Und da es das nicht gibt, ist die Ausgabemenge leer. Also das kann's nicht sein. Und wenn man das so weiter kombiniert und verknüpft, werden Sie immer feststellen, dass Sie kein Ergebnis bekommen. Der Trick ist, das ist kein Gleich, sondern da wir hier quasi eine Zeichenkette durchsuchen müssen und da einen bestimmten Wert herauspicken wollen, müssen wir ein Schlüsselwörtchen LIKE einsetzen. Und jetzt können wir dann zum Beispiel sagen, bitte gib mir die aus, die mit J beginnen und das ist in dem Falle kein Sternchen, sondern ein Prozentzeichen. Und wie man dann sieht, bekomme ich jetzt einen einzigen Datensatz, der dann auch entsprechend mit dem Vornamen und meinem Auswahlkriterium übereinstimmt. Ich denke mal, das soll zunächst mal ausreichen. Mit diesen beiden Varianten dürften Sie in der Lage sein, ganz, ganz viele Dinge in Ihren Tabellen bereits zu suchen und dann auch passend auszugeben. Und Sie kennen nun die Bedeutung der Selektion aus den Grundlagen der Datenbank Algebra.

PostgreSQL Grundkurs

Lernen Sie, wie Sie PostgreSQL in Ihr System integrieren und Datenbanken, Tabellen und Datensätze anlegen und verwalten können.

2 Std. 53 min (28 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:26.01.2017
Aktualisiert am:15.05.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!