     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
