Oracle PL/SQL Grundkurs

Die Datenbanktabellen einrichten

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
In diesem Video werden zwei Datenbanktabellen erzeugt, die im Fortlauf des Trainings für das durchgehende Programmierbeispiel eingesetzt werden.

Transkript

PL/SQL-Programme werden hauptsächlich für Datenbanktabellenzugriffe eingesetzt. Deshalb werden wir auch in diesem Training Datenbanktabellen erzeugen und per PL/SQL auf sie zugreifen. In diesem Video werden wir zwei Datenbanktabellen erstellen. Diese werden wir für das durchgehende Beispielprogramm des Trainings benötigen, das den Body-Mass-Index ermitteln soll. Ich werde jetzt eine neue Datei erzeugen. Und zwar logge ich mich wieder in SQL Plus ein. Und nenne die Datei kap05 bmi_db für Datenbank. Die anderen Dateien werde ich jetzt mal schließen. Jetzt können wir hier los legen. Ich schreibe erstmal ein Kommentar, damit Sie noch später wissen, worum es hier ging. Dieses Skript erstellt die Datenbanktabellen für die Anwendung bmi. Dann werde ich die Sprache wieder auf SQL einstellen. Ich werde die Schlüsselwörter nun zu Verdeutlichung im Großbuchstaben schreiben. Und zwar beginne ich mit einer DROP-Anweisung. Ich werde zunächst mal eine DROP TABLE-Anweisung setzen. Der Grund hierfür ist, dass ich die PL/SQL-Programme gegebenenfalls wiederholt aufrufen muss und deshalb die zu überschreibenden Tabellen jedes Mal ebenso entfernen muss. Bei den Datenbanktabellen, die wir für das BMI-Programm benötigen, handelt es sich lediglich um zwei Tabellen. Eine Datenbanktabelle nenne ich messung, DROP TABLE messung, schreibe ich deswegen hin. Semikolon und dann noch DROP TABLE benutzer, so nenne ich die zweite Tabelle. Die beiden Datenbanktabellen werde ich über Primärschlüssel und Fremdschlüssel miteinander verbinden. Bei der Tabelle benutzer handelt es sich um die parent Tabelle und die Tabelle messung ist dann die child Tabelle. Deshalb ist es wichtig, dass ich zunächst die child Tabelle messung entferne und erst dann die Tabelle benutzer. Kommen wir nun zum Aufbau der Tabelle benutzer. Über CREATE TABLE erzeuge ich die Tabelle benutzer, dann öffne ich die Klammer für die Spaltenfelder und setze zunächst mal einen Primärschlüssel ein. Ich nenne ihn mal id. Und der soll vom Datentyp NUMBER sein. Über PRIMARY KEY sage ich hier aus, dass das ein Primärschlüssel ist. Dann brauche ich ein weiteres Spaltenfeld für den Namen des Benutzers. Der Name des Benutzers soll nicht länger als 40 Zeichen betragen. Ich werde jetzt mal den Namen hinschreiben. Der Name für das Spaltenfeld des Benutzernamens ist name. Dann kommt VARCHAR2, weil es eine Zeichenkette ist und dann brauche ich 40 Zeichen. Über NOT NULL sorge ich dafür, dass dieses Feld immer einen Wert enthält. Außerdem werde ich das Schlüsselwort UNIQUE einsetzen. Hiermit verhindere ich, dass der Name eines Benutzers doppelt vergeben wird. Nun brauchen wir ein Spaltenfeld für die Körpergröße. Das Spaltenfeld nenne ich groesse. Und der Datentyp soll sein NUMBER 3,2. Also eine Vorkommastelle und zwei Nachkommastellen. Und dann wäre ich hiermit fertig. Als nächstes erstelle ich die Tabelle messung. Hier werde ich die gemessenen Gewichte unterbringen und auch einen Zeitpunkt der Messung. Also, brauche ich dort drei Spalten Felder, ich brauche einen Primärschlüssel und auch noch einen Fremdschlüssel, also werden es vier. Ich beginne mal, CREATE TABLE messung und jetzt folgen die Spaltenfelder id, ist mein Primärschlüssel, NUMBER PRIMARY KEY und den Fremdschlüssel nenne ich benutzer_id denn er referenziert ja auf die Tabelle benutzer. Für das Spaltenfeld gewicht werde ich den Datentyp NUMBER 5,2 setzen. gewicht NUMBER 5,2 Das sind drei Vorkommastellen und zwei Nachkommastellen. Und es soll dringend oder zwingend ein Gewicht angegeben werden, also NOT NULL. Jetzt kommen wir zum letzten Spaltenfeld, das ist der Zeitpunkt der Messung. Den Zeitpunkt setze ich mit dem Datentypen TIMESTAMP. Also, zeitpunkt TIMESTAMP und die Genauigkeit setze ich dann auf 3, also ein tausendstel Sekunde. Obwohl Oracle auch mit genaueren Zeitpunkten umgehen kann, ist es so, dass ein handelsüblicher PC nicht genauer als ein tausendstel Sekunde fixieren kann, deshalb reicht das vollkommen aus. Der Fremdschlüssel benutzer_id, der hier, der sollte das Spaltenfeld id der Klasse Benutzer nun referenzieren. Dieses zwingen wir mit einem CONSTRAINT. Also, setze ich dort ein Komma hin und schreibe darunter CONSTRAINT Und mein CONSTRAINT soll auch einen Namen haben. Ich nenne ihn fk, für foreing key und dann benutzer und dann muss folgen FOREING KEY benutzer_id PREFERENCES benutzer_id Die Tabelle messung haben wir jetzt auch fertig. Ich werde jetzt etwas hinzufügen und zwar ist es so, dass wir beim Primärschlüssel das sogenannte Autoinkrementieren nutzen werden. Wenn Sie sich mit der Oracle Database noch nicht so gut auskennen, aber mit anderen relationalen Datenbank- Verwaltungssystemen gearbeitet haben, dann kennen Sie diese Technik womöglich über das Schlüsselwort autoincrement. Dabei wird der jeweils nächste Wert durch das Datenbank-Verwaltungssystem automatisch ermittelt, indem die nächsthöhere Ganzzahl berechnet wird. Bei Oracle ist das Autoinkrementieren etwas anders gelöst, denn bei Oracle erzeugt man zunächst eine sogenannte Sequence. Über diesen Umweg lässt sich der nächste Wert bei der Oracle DB ziemlich fein granulär einstellen. Beispielsweise kann man festlegen, wie groß der Inkrementierungsschritt sein soll, ab welcher Ziffer er beginnen soll oder auch ob die Inkrementierung negativ, also herunterzählen soll. Man kann durchaus behaupten, dass die Oracle Database dieses Thema umständlicher als andere Anbieter löst. Aber für den professionellen Gebrauch ist Oracles Lösung durchaus überzeugend. Zunächst werde ich wieder über eine DROP-Anweisung dafür sorgen, dass die Sequence, die unter dem gleichen Namen bereits vorhanden ist, vorher entfernt wird. Also schreibe ich wieder eine DROP-Anweisung, DROP SEQUENCE und ich nenne die erste Sequence seq_benutzer und jetzt erzeuge ich die Sequence benutzer über CREATE SEQUENCE seq_benutzer Semikolon. Das war es schon. So schnell habe ich die Sequence erstellt. Da ich die default Werte genutzt habe, musste ich gar nicht viel kodieren. Ich werde auch nicht weiter auf die Sequence eingehen, da die default Werte für unseren Zweck optimal sind. Auch für die Tabelle messung, werde ich zunächst eine Sequence droppen. Also, DROP SEQUENCE und dann seq_messung und CREATE SEQUENCE seq_messung So, unser Skript ist fertiggestellt. Wir können nun unser Initialisierungsprogramm ausführen. Ich schließe Notepad++ und starte unser Skript. Diesmal nicht über START, sondern über das gleichbedeutende @-Zeichen kap05_bmi_dbNone Und jetzt sehen Sie hier eine Reihe von Fehlermeldungen, die aber in Ordnung sind, nur diese hier ist nicht in Ordnung. Deswegen muss ich nochmal rein. Hier habe ich ein O vergessen. Dann speicher ich wieder alles und starte mein Skript erneut. Jetzt sehen Sie, dass es sauber durchgelaufen ist. Die erzeugten Tabellen, kann ich mir über Describe jetzt mal anschauen. describe_benutzer und describe_messung Soweit ist alles in Ordnung. In diesem Video haben wir zwei Datenbanktabellen erzeugt, die wir im Laufe der folgenden Videos für das durchgehende Beispielprogramm benötigen werden. Hierbei haben wir Oracles hauseigene Datentypen und auch Oracles eigene Technik zum Autoinkrementieren der Primärschlüssel verwendet.

Oracle PL/SQL Grundkurs

Entdecken Sie grundlegende Programmstrukuren, Stored Procedures und Functions in PL/SQL und sehen Sie, wie Sie auf Daten zugreifen können.

3 Std. 58 min (32 Videos)
Derzeit sind keine Feedbacks vorhanden...

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!