Platforma PostgreSQL suportă o implementare simplă a instrucțiunii SELECT. JOIN și subcheile sunt suportate. În PostgreSQL, puteți crea, de asemenea, noi tabele temporare sau persistente utilizând sintaxa SELECT INTO.
[ALL DISTINCT [ON] (selectable_element [, ...])]]
Sunt acceptate toate cuvintele cheie ALL și DISTINCT ale standardului ANSI SQL, unde ALL (implicit) returnează toate rândurile (inclusiv duplicatele), iar DISTINCT elimină liniile duplicate. În plus, clauza DISTINCT ON elimină duplicatele numai în unul dintre elementele selectate și nu în toate elementele selectate ale interogării.
Include toate elementele standard ale listei elementelor selectate, adoptate de standardul ANSI SQL. În plus față de caracterul generic * (asterisc), puteți utiliza designul table_name * pentru a obține toate rândurile dintr-un tabel separat.
[AS alias [(lista de alias)]
Se creează un alias sau o listă de pseudo-nume pentru una sau mai multe coloane (sau tabele în clauza FROM). Clauza AS este necesară pentru a crea aliasuri pentru elementele selectate, dar nu pentru pseudonime din clauza FROM. (Unele alte platforme consideră că propunerile AS sunt opționale.)
ÎN [[TEMP] ORARY] [TABLE] new_table_table_name
Se creează un nou tabel din setul de rezultate al interogării. Pentru a crea tabele temporare șterse automat la sfârșitul unei sesiuni, sintaxa este TEMP sau TEMPORARY. În caz contrar, comanda creează un tabel persistent. Tabelele constante create folosind această instrucțiune trebuie să aibă nume noi, unice, iar tabelele temporare pot avea aceleași nume ca și tabelele existente. Dacă creați un tabel temporar al cărui nume coincide cu numele unei constante de tabelă existentă, atunci tabelul temporar este utilizat pentru toate operațiile asociate cu acest nume care sunt păstrate în această sesiune. Alte sesiuni vor vedea încă tabela persistentă existentă.
Specificați una sau mai multe tabele sursă în care sunt localizate datele. (Asigurați-vă că specificați condiția de conectare sau clauza WHERE pentru join theta pentru a nu obține produsul complet de coordonate pentru toate înregistrările din toate tabelele.) PostgreSQL vă permite să moșteniți din tabelele părinte în tabelele copil. Cuvântul NUMAI este folosit pentru a se asigura că datele nu sunt extrase din tabelele descendente ale tabelei sursă. (Puteți dezactiva această moștenire la nivel global prin utilizarea comenzii SET SQL Inheritance TO OFF). Platforma PostgreSQL suportă, de asemenea, subtraveriile de tabelă imbricate. Clauza FROM nu este necesară atunci când se utilizează calcule.
Platforma PostgreSQL poate include clase implicite FROM într-o instrucțiune SELECT când se utilizează coloane care specifică o schemă. De exemplu, următoarea coloană este validă (deși acest lucru nu este recomandat).
Vă permite să specificați o expresie pentru grupare, care poate fi numele coloanei sau al numărului secvențial (indicând poziția acesteia în lista elementelor selectate). Un exemplu care ilustrează acest concept este prezentat mai jos, în secțiunea dedicată clauzei ORDER BY.
ORDER BY expression_for_sorting
Vă permite să specificați o expresie pentru sortare, care poate fi numele coloanei, aliasul sau numărul de serie al coloanei (indicând poziția acesteia în lista elementelor selectate). De exemplu, următoarele două cereri sunt identice din punct de vedere funcțional.
În instrucțiunile SELECT care accesează o singură masă, puteți sorta după coloane care nu sunt în lista elementelor selectabile. De exemplu:
Ofertele ASC și DESC respectă standardul ANSI. Valoarea implicită este ASC. Platforma PostgreSQL consideră că valorile goale sunt mai mari decât toate celelalte, deci sunt localizate la sfârșitul ordonării în ordine crescătoare (ASC) și la început - când sortează în ordine descrescătoare (DESC). PENTRU UPDATE din coloana [, ...] LIMIT
PostgreSQL acceptă o variantă convenabilă de DISTINCT - DISTINCT ON (selectable_leme /// I [, ...]). Această opțiune vă permite să alegeți coloanele care vor fi utilizate pentru a elimina duplicatele. Platforma PostgreSQL selectează setul de rezultate în același mod ca și pentru clauza ORDER BY. Ar trebui să specificați clauza ORDER BY astfel încât să nu existe o imprevizibilitate la selectarea înregistrărilor. De exemplu:
Interogarea de mai sus preia cel mai recent raport de vânzări pentru fiecare magazin (storid) pe baza datei celei mai recente comenzi (ord_date). Cu toate acestea, fără clauza ORDER BY nu va fi posibil să se prevadă care înregistrare va fi extrasă.
Platforma PostgreSQL acceptă numai următoarele tipuri de sintaxă JOIN (pentru mai multe informații, consultați secțiunea "Clauza JOIN").
Informații suplimentare despre acest subiect
Unele reguli și metode pentru utilizarea instrucțiunii SELECT în bazele de date de pe platforma SQL Server