P8000/WEGA/contrib/ingres/dbs/sys/man/retrieve

81 lines
3.2 KiB
Plaintext

RETRIEVE(QL) DABA16 RETRIEVE(QL)
NAME
retrieve - Wiederfinden (Suchen) von Tupel aus einer Rela-
tion
UEBERSICHT
retrieve [into relname ] (target_list) [where qual ]
retrieve unique (target_list) [where qual ]
BESCHREIBUNG
Retrieve stellt alle Tupel bereit, die die Qualifikation er-
fuellen und zeigt sie entweder am Terminal (Standardausgabe)
an oder speichert sie in eine neue Relation. Wurde into mit
relname nicht spezifiziert, werden doppelte Tupel nicht aus-
geblendet. Wenn relname spezifiziert wurde, wird das Ergeb-
nis der Anfrage mit diesem Namen in eine neue Relation ge-
speichert.
Eine Relation mit diesem Namen und dem Anwender als
Relations-Eigentuemer darf nicht bereits existieren. Der
retrieve Anwender wird zum Eigentuemer der neuen Relation.
Die Relation wird die Domaenen-Namen besitzen, die in der
target_list als result_attnames spezifiziert wurden. Die
neue Relation wird vom System fuer sieben Tage geschuetzt,
falls der Nutzer nicht explizit durch eine save Anweisung
das Schutzdatum der Relation verlaengert.
Wenn das Schluesselwort unique spezifiziert wird, werden die
Tupel nach der Reihenfolge der angegebenenen Domaenen sor-
tiert und doppelte Tupel vor der Anzeige entfernt.
Das Schluesselwort all kann benutzt werden, um alle Domaenen
wiederzufinden.
Wenn kein Ergebnis-Relations-Name relname spezifiziert wur-
de, wird das Ergebnis der Anfrage am Terminal angezeigt und
nicht gespeichert. Doppelte Tupel werden bei einer Anzeige
am Terminal nicht entfernt.
Das Format, in dem die Domaenen angezeigt werden, kann zum
Zeitpunkt des iql-Aufrufes definiert werden (iql(mutos)).
Wenn eine Ergebnis-Relation spezifiziert wurde, erfolgt
standardmaessig eine Modifikation der Ergebnis-Relation in
die Speicherungsstruktur "cheapsort", wobei doppelte Tupel
entfernt werden.
Wenn die Standardstruktur "cheapsort" nicht gewuenscht wird,
kann der Nutzer zum Zeitpunkt des iql-Aufrufes diese Stan-
dardannahme mit dem -r Flag ueberschreiben (iql(mutos)).
Nur der Relations-Eigentuemer und Anwender mit retrieve Be-
fugnis koennen die Anweisung nutzen.
BEISPIEL[E]
/* Finde alle Beschaeftigten, die mehr als ihr
Leiter verdienen */
range of p is personal
range of l is personal
retrieve (p.name) where p.leiter = l.name
and p.gehalt > l.gehalt
/* Finde alle Domaenen fuer Personen,
die mehr als das Durchschnittsgehalt verdienen */
retrieve into temp (p.all) where p.gehalt > avg(p.gehalt)
/* Wiederfinden der Beschaeftigtennamen, sortiert */
retrieve unique (p.name)
SIEHE AUCH
iql(mutos), modify(ql), permit(ql), ql(iql), range(ql),
save(ql)
FEHLERQUELLEN