Überblick SQL*Plus • Login in SQL*Plus. • Beschreiben der Tabellenstrukturen. • Editieren der SQL-Anweisung Skripte schreiben • Ausführen von SQL aus SQL*Plus. • SQL-Anweisungen in Dateien speichern bzw. SQL-Anweisungen anhängen. • Ausführen gespeicherter Dateien. • Kommandos aus Dateien zum Editieren in den Puffer laden. Copyright © Oracle Corporation, 1998. All rights reserved. Einloggen in SQL*Plus SQL2 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Tabellenstrukturen anzeigen • Aus der Windowsumgebung: Verwende das SQL*Plus DESCRIBE Kommando, um die Struktur der Tabelle anzuzeigen. DESC[RIBE] tablename • Aus der Kommandozeile: sqlplus [username[/password [@database]]] SQL3 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. SQL4 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Anzeige der Tabellenstruktur SQL*Plus Datei Kommandos • SAVE filename Æ N:\ SQL> DESCRIBE dept als home-Verzeichnis benutzen Name Null? ----------------- -------DEPTNO NOT NULL DNAME LOC Type -----------NUMBER(2) VARCHAR2(14) VARCHAR2(13) • GET filename • START filename • @ filename • EDIT filename SQL5 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Zusammenfassung SELECT FROM [DISTINCT] {*,column[alias],...} table; Man kann SQL*Plus als Umgebung für: • Ausführung der SQL Anweisungen • Editieren der SQL Anweisungen verwenden SQL7 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. SQL6 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Überblick für Übungen • Selektiere alle Daten aus unterschiedlichen Tabellen • Beschreibe die Struktur der Tabellen • arithmetische Berechnungen und spezifische Spaltennamen verwenden • SQL*Plus-Editor anwenden SQL8 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. SQL und SQL*Plus Interaktion SQL Statements Formatierung mit SQL*Plus Puffer SQL Statements Server SQL*Plus SQL*Plus Kommandos Anfrage-Ergebnisse Formatierter Report SQL10 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Copyright © Oracle Corporation, 1998. All rights reserved. SQL Anweisungen Versus SQL*Plus Kommandos SQL • Sprache • ANSI Standard • Schlüsselwort kann nicht gekürzt werden • Anweisungen verändern Daten und Tabellendefinitionen in der Datenbank SQL Anweisungen SQL Puffer SQL*Plus • Umgebung • Nur bei Oracle • Schlüsselwort kann gekürzt werden • Kommandos erlauben keine Veränderung der Werte in der Datenbank SQL*Plus Kommandos SQL11 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. SQL*Plus Puffer SET Kommando Das SET-Kommando setzt Systemvariable, die den Ablauf während der Abarbeitung unter SQL*Plus steuern. Beispiele: • Anzahl der Leerzeilen zwischen Sätzen • Anzahl der Leerzeichen zwischen Spalten • Spaltenüberschriften • Werte die für NULL-Werte ausgegeben werden SQL12 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Zusätzliche SET-Kommando Variable • RECSEP Satz-Trennzeile ausg. • RECSEPCHAR Trennzeichen setzen • SPACE Anz. Leerz. Spalten • UNDERLINE Überschr unterstr. • WRAP Zeilen umbrechen • NULL Text für NULL • HEADSEP Zeichen Umbruch • NEWPAGE Anz. Zeilen zw. Seiten SQL13 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. SET-Kommando-Variable SET SPACE und SET UNDERLINE SET SPACE 2 SET UNDERLINE = SELECT empno, ename, sal, mgr FROM emp / EMPNO ENAME ========= ========== 7839 KING 7698 BLAKE 7782 CLARK 7566 JONES 7654 MARTIN … 14 rows selected. SAL ========= 5000 2850 2450 2975 1250 SET-Kommando-Variable SET RECSEP und SET RECSEPCHAR SET RECSEP EACH SET RECSEPCHAR _ SELECT empno, ename, job, mgr, sal FROM emp WHERE ename='BLAKE' / EMPNO ENAME JOB MGR SAL --------- ---------- --------- --------- --------7839 KING PRESIDENT 5000 __________________________________________________ 7782 CLARK MANAGER 7839 2450 __________________________________________________ 7934 MILLER CLERK 7782 1300 __________________________________________________ SQL14 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. SET-Kommando-Variable SET NULL SET NULL Null SELECT empno, ename, sal, mgr, comm FROM emp / MGR ========= 7839 7839 7839 7698 SQL15 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. EMPNO ENAME SAL MGR COMM --------- ---------- --------- --------- --------7839 KING 5000 Null Null 7698 BLAKE 2850 7839 Null 7782 CLARK 2450 7839 Null 7566 JONES 2975 7839 Null 7654 MARTIN 1250 7698 1400 7499 ALLEN 1600 7698 300 … 14 rows selected. SQL16 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. SET-Kommando-Variable TTITLE und BTITLE Kommando Gibt Seitenkopf und Seitenfuss aus SET NEWPAGE TTI[TLE] [printspec [text|variable]] [OFF|ON] SET NEWPAGE 3 SELECT empno, ename, mgr FROM emp / Print spezifikation: EMPNO ENAME SAL MGR --------- ---------- --------- --------7839 KING 5000 7698 BLAKE 2850 7839 7782 CLARK 2450 7839 ... 14 rows selected. SQL17 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. TTITLE und BTITLE Kommando • COL n spezifizierte Spaltenposition • S[KIP] [n] n Zeilenumbrüche • TAB n n Zeichenspalten überspringen • LE[FT], CE[NTER], R[IGHT] • BOLD Ausrichtung Fettdruck • FORMAT formatspec SQL18 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Beispiel für das TTITLE Kommando SQL> TTITLE 'Salary|Report' SQL> SELECT empno, ename, sal, mgr 2 FROM emp; Systemvariable: • SQL.LNO aktuelle Seitenzahl • SQL.PNO aktuelle Seitennummer • SQL.USER Nutzername • SQL.CODE Fehlercode der letzten Mon Feb 16 SQL - Anfrage • SQL.RELEASE aktuelles Oracle-Release SQL19 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. page Salary Report EMPNO ENAME SAL MGR --------- ---------- --------- --------7839 KING 5000 Null 7698 BLAKE 2850 7839 7782 CLARK 2450 7839 … 14 rows selected. SQL20 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. 1 Beispiel für das BTITLE Kommando SQL> BTITLE 'Vertraulich' SQL> SELECT empno, ename, sal, mgr 2 FROM emp; EMPNO --------7839 ... 7876 7934 Zusätzliche Spalten-Optionen Steuerung der Ausgabe von Spalten und Spaltenköpfen COL[UMN] [{column|alias} [option]] ENAME SAL MGR ---------- --------- --------KING 5000 Null • NEW_VALUE Gibt Daten im Titel aus • NOPRINT Spalte nicht ausgeben ADAMS MILLER • CLEAR löscht Formate 1100 1300 7788 7782 Vertraulich 14 rows selected. SQL21 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Beispiel für das NEW_VALUE Kommando COLUMN deptno new_value deptnum FORMAT 99 TTITLE SKIP 1 CENTER 'Report for Dept:' deptnum SKIP 2 CENTER BREAK on deptno SKIP PAGE ON deptno SELECT ename, mgr, deptno, sal FROM emp ORDER BY deptno / Report for Dept: SQL22 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Beispiel für das NOPRINT Kommando COLUMN deptno NOPRINT new_value deptnum FORMAT 99 TTITLE SKIP 1 CENTER 'Report for Dept:' deptnum SKIP 2 CENTER BREAK ON deptno SKIP PAGE ON deptno SELECT ename, mgr, deptno, sal FROM emp ORDER BY deptno / 10 Report for Dept: ENAME ---------- MGR DEPTNO ---------- ------ KING CLARK 10 7839 SAL ---------5000 7782 MGR SAL ---------- ---------5000 7839 2450 7782 1300 2450 SQL23 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. MILLER ENAME ---------KING CLARK MILLER 10 1300 SQL24 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Beispiel für das CLEARKommando Das CLEAR-Kommando dient zum Zurücksetzen von Ausgabewerten für Spalten und Überschriften auf die Standardwerte Das COMPUTE - Kommando • Berechnung und Ausgabe zusammengefasster Tupel COMP[UTE] [function [LABEL labelname] … OF {expr|column|alias} … ON {expr|column|alias|REPORT|FORM}] • Unterschiedliche Standardfunktionen, • z. B. – AVG SQL> COLUMN deptno CLEAR SQL> COLUMN dname CLEAR SQL> CLEAR BREAK – COUNT – MAXIMUM – MINIMUM SQL25 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Beispiel für das COMPUTE BREAK ON JOB SKIPKommando 1 COMPUTE SUM OF sal ON job SELECT job, ename, sal FROM emp WHERE job IN ('CLERK', 'ANALYST', 'SALESMAN') ORDER BY job, sal / JOB ENAME SAL --------- ---------- --------ANALYST FORD 3000 SCOTT 3000 ********* --------sum 6000 CLERK SMITH … 10 rows selected. 800 SQL27 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. SQL26 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Beispiel für COMPUTE mit BREAK BREAK ON deptno SKIP 2 COMPUTE MAX OF sal ON deptno SELECT deptno, ename, sal FROM emp WHERE job IN ('CLERK', 'ANALYST', 'SALESMAN') ORDER BY deptno, sal / DEPTNO ENAME SAL --------- ---------- --------10 MILLER 1300 ********* --------maximum 1300 20 SMITH ADAMS 800 1100 … 10 rows selected. SQL28 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Beispiel für LABEL mit COMPUTE BREAK ON deptno SKIP 2 COMPUTE MAX LABEL Max_Sal OF sal ON deptno SELECT deptno, ename, sal FROM emp WHERE job IN ('CLERK', 'ANALYST', 'SALESMAN') ORDER BY deptno, sal / DEPTNO --------10 ********* Max_Sal ENAME ---------MILLER 20 SMITH … 10 rows selected. SAL --------1300 --------1300 SQL30 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Ausgabe des Report-Skiptes 6 5 1 COLUMN job NOPRINT NEW_VALUE jobname FORMAT A9 2 TTITLE SKIP 1 CENTER 'Salaries for' SKIP 1 CENTER jobname SKIP 2 3 BREAK on job SKIP PAGE COMPUTE AVG LABEL '' OF sal ON job 4 5 BTITLE 'Top Secret' SELECT job, ename, hiredate, sal 6 FROM emp ORDER BY job, sal / 800 SQL29 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. 1 Beispiel zum Erzeugen eines Report Skriptes Salaries for ANALYST ENAME ---------FORD SCOTT HIREDATE SAL --------- --------03-DEC-81 3000 09-DEC-82 3000 --------3000 2 • Das SET-Kommando wird zur Formatierung der Ausgabe gebraucht 4 Top Secret 3 Salaries for CLERK ENAME HIREDATE SAL ---------- --------- --------SMITH 17-DEC-80 800 … 14 rows selected. SQL31 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved. Zusammenfassung • Die Kommandos TTITLE und BTITLE dienen der Formatierung von Seitenkopf und –fuß. • Zur Berechnung und Zusammenfassung von Tupeln verwenden Sie das COMPUTE-Kommando. SQL32 basierend auf OAI-Kurs Copyright © Oracle Corporation, 1998. All rights reserved.