Einführung in Oracle-SQL Plus

  Anmeldung/Abmeldung beim DBMS Oracle


Um die Oracle-Anwendung zu starten muß, man auf einer Unix-Maschine des Instituts eingeloggt sein.

Die Environment-Variablen muessen fuer die Arbeit mit SQL*Plus korrekt gesetzt sein. Siehe dazu die Einführung in die Arbeit mit der INTRO-DBS Instanz.

Der Aufruf von SQL Plus erfolgt mit:

     sqlplus <yourName>/<Password>@students
Wenn alles richtig gesetzt und eingetippt ist, bekommt man das SQL-Prompt.
     SQL>
Mit zwei Anweisungen:
     exit;
oder
     quit;
verlässt man die Datenbankanwendung.


  Erzeugen und Löschen der Tabellen


Man kann in SQL Plus eine beliebige SQL-Anweisung ausführen. Mit der folgenden Anweisung erzeugt man die Tabellen der Filmdatenbank:

     CREATE TABLE FR (
         Titel varchar(30),
         Regisseur varchar(30), 
         Jahr int,
         PRIMARY KEY(Titel)
     );
     CREATE TABLE FB (
         Titel varchar(30), 
         Schauspieler varchar(30),
         Gehalt int,
         PRIMARY KEY(Titel,Schauspieler)
     );
     CREATE TABLE FK (
         Titel varchar(30),
         Kritiker varchar(30),
         Punktzahl int,
         PRIMARY KEY(Titel,Kritiker)
     );
SQL-Anweisungen koennen einzeilig oder mehrzeilig angegeben werden. Dabei ist zu beachten, daß Oracle absolut caseinsensitiv ist.

Die Tabellen können mit der Anweisung drop table gelöscht werden. Z.B die Tabelle FR wird wie folgt gelöscht:

     DROP TABLE FR;


  Einfügen, Löschen und Ändern der Tabellenzeilen


Nach dem Erzeugen der Tabellen koennen sie mit Daten gefuellt werden. Der einfachste Weg die Zeilen in die Tabellen einzufügen ist die SQL-Kommando insert:

     INSERT INTO 
         VALUES( <list of values for attributes, in order> );
Die Zeile ('Henry V', 'Kenneth Branagh', 4000); wird in die Tabelle FB wie folgt eintragen
     INSERT INTO FB VALUES ('Henry V', 'Kenneth Branagh', 4000);

Wenn man eine Tabellenzeile ändern möchte, muß die SQL-Anweisung update verwendet werden. Beispiel:

    UPDATE FR
         SET gehalt=7000
         WHERE titel='Henry V' and
          Schauspieler='Kenneth Branagh';
Wenn man alle Zeilen der Tabelle FB löschen möchte, ist das Kommando
    DELETE FROM FB;
sehr hilfreich. Wenn man aber nur die Zeilen löschen möchte, die z.B.in der Spalte Schauspieler 'Leonardo DiCaprio' haben, muß folgende SQL-Anweisung angegeben werden:
    DELETE FROM FB
         WHERE Schauspieler='Leonardo DiCaprio';
Wichtig: Obwohl Oracle absolut caseinsensitiv ist, muß man die Werte der Spalten genauso angeben wie sie von SQL Plus (und von anderen Oracle-Anwendungen) angezeigt werden.


  Select-Anfragen


Man kann die Zeilen einer Tabelle mit dem Kommando:

     SELECT *
     FROM <tableName>;
sich anzeigen lassen. Allerdings, wenn es in der Tabelle viel Spalten gibt, bietet es sich an, die Namen der Spalten anzugeben.

Die Struktur einer Tabelle bekommt man mit dem Kommando:

     DESC <tableName>;
Mit dem Kommando:
     SELECT Regisseur 
     FROM owner.FR;
bekommt man die Liste aller Leute, die Regie geführt haben.

Wichtig: Obwohl Oracle absolut caseinsensitiv ist, muß man die Werte der Spalten genauso angeben wie sie von SQL Plus (und von anderen Oracle-Anwendungen) angezeigt werden.


  Abfragen der Information über ihre Datenbank


Das System bewahrt die Information über ihre Datenbank in bestimmten Systemtabellen auf. Mit der folgenden Anweisung

     SELECT TABLE_NAME
     FROM USER_TABLES;
kann man sich die Liste der vorhandenen Tabellen anzeigen lassen.


 Ausführen der SQL-Anweisungen von einem File


Manchmal ist es bequem die SQL-Anweisungen von einem File auszufüren. Dafür gibt es zwei Möglichkeiten. Die erste Möglichkeit kombiniert die Anmeldung mit dem Laden der SQL-Datei. Das sieht dann wie folgt aus:

     sqlplus <yourName>/<Password> @<fileName>.sql
Die zweite Möglichkeit ist die Anmeldung bei Oracle und das darauffolgende Laden einer SQL-Datei.
     sqlplus <yourName>/<Password>
     SQL> @<fileName>.sql


  Das Speichern einer Sitzung


Der INhalt einer Sitzung kann in einer Datei gespeichert werden. Der einfachste Weg dafür besteht im Kopieren (copy) und Einsetzen (paste) des Kopierten in die Datei. Den eleganteren Weg bietet das SQL-Kommando SPOOL. Der Aufruf:

     SQL>SPOOL foo
bewirkt, daß die Datei foo.lst in dem aktuellen Verzeichnis erscheint und alles enthät, was während der aktuellen Sitzung getippt wurde. Mit dem Kommando SPOOL OFF kann das Mitprotokollieren abgestellt werden.


 Recyclebin Funktionalität


Wenn ihr eine Tabelle löscht, wird diese seit der Version Oracle10g zunächst in eine Art Papierkorb verschoben. Dazu wird u.a. der Tabellenname geändert. Wenn ihr eine Tabelle komplett löschen wollt, so verwendet den Befehl

DROP TABLE  PURGE
Wenn ihr den Papierkorb leeren wollt, verwendet bitte den Befehl
PURGE RECYCLEBIN
Zur weiteren Verwendung des Papierkorbes schaut bitte in der Dokumentation unter Recyclebin oder Flashback Query nach.