Skripte - Datenbanken

Werbung
Ü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.
Herunterladen