Postgresql, és törölje ismétlődő kulcsszó elkülönült
Eltávolítása ismétlődő és KÜLÖNÁLLÓ kulcsszó
Az opcionális KÜLÖNÁLLÓ kulcsszó kiküszöböli másolatok az eredmény meg. Ha egy kulcsszó nincs bekapcsolva, a lekérdezés eredményét a kulcsszó KÜLÖNÁLLÓ kizárt rekordok ismétlődő értékeket cél területen. Kockás Csak azokat a mezőket tartalmazza a cél listán a SELECT.
Listing 4.31. DISTINCT kulcsszó
booktown = # SELECT DISTINCT author_id
booktown- # könyvekből;
booktown = # SELECT DISTINCT ON (author_id)
booktown- # author_id. cím
booktown- # könyvekből;
16 | Little Women
115 | Az áruló szív
1212 | gyakorlati PostgreSQL
1644 | dinamikus Anatomy
1809 | A Macska a Hat
2031 | jóéjt Hold
4156 | a Shining
7805 | Programozás Python
7806 | perl Cookbook
15990 | Franklin in the Dark
25041 | A Bársony Nyúl
A második lekérdezés használni egy másik formája a DISTINCT egyértelmű lista a mezők (vagy kifejezések) ellenőrizzük ismétlődések. Ebben az esetben a kérelmet, és visszaadja a 13 feljegyzések, mivel szekciót jelzi, hogy ismétli ellenőrzött értelmesen mezőbe author_i d. Anélkül szekciót kérés helyes), és mind a 15 bejegyzés az alapértelmezett PostgreSQL ellenőrzi teljes egybeesése az összes mezőt.
Általában PostgreSQL kiválasztja bejegyzések vannak zárva az eredmény meg jelenlétében szakaszokat, saját belátása szerint. Ha a kérelem mellett a KÜLÖNÁLLÓ rész tartalmazza ORDER BY, kézzel is beállíthatja a mezők sorrendje mintavétel úgy, hogy a szükséges dokumentumok rendelkezésre az elején. Válogató bejegyzések tárgyalt a „válogató nyilvántartás”.
Ha ahelyett, hogy elkerüljük az összes duplikált elég csoport rekordok ismétlődő értékeket a lekérdezés rész GROUP BY, alpontban leírt „csoportosítása rekordokat.”
A WHERE záradék ismerteti logikai feltétele, hogy teljesülnie kell az utolsó szett rekordok. A gyakorlatban szinte mindig SELECT parancs legalább egy rész, ahol tisztázása.
Tegyük fel, hogy egy listát az összes könyvet számítógépes technológia a booktown adatbázisban. Ezek a könyvek subject_id mező 4. Ennek megfelelően a részben szerepelnek, amennyiben = operátor, aki ellenőrzi, hogy ezt a feltételt. Egy példa listán látható 4,32.
Listing 4,32. Egyszerű rész, ahol
booktown = # SELECT * FROM könyvek
booktown- # ahol subject_id = 4;
id | cím | author_id | subject_id
41472 | Gyakorlati PostgreSQL | 1212 | 4
41473 | Programozás Python | 7805 | 4
41477 | Tanulási PostgreSQ L | 7805 | 4
41478 | Perl szakácskönyve | 7806 | 4
Kérés listán 4,32 visszatérés csak azokat a rekordokat, amelyek subject_id területen egybeesik az egész konstans 4 Az utolsó szett tartalmaz minden 4 felvétel a könyveket, hanem a számítógépek 15 rekordok felsorolt lista 4.23.
Ahol a keresztmetszet tartalmazhat több feltételeket kombináljuk logikai operátorok (például AND vagy OR), és visszatér egy logikai érték. Tegyük fel, hogy az Önt érdeklő összes rekordot a könyvek a számítógépek, amelyek amellett, hogy azok a számítógépek, írta Mark Lutz. A kérelem meghatároz egy kombinációja feltételek a logikai operátort. Van egy másik lehetőség - például keresni az összes könyvet szentelt számítástechnika vagy a kultúra; ebben az esetben a két feltétel együttes egy logikai művelet OR. Ajánlás 4,33 bizonyította mindkét forgatókönyv kulcsszó ÉS és VAGY.
Listing 4.33. Ötvözi szakasz feltételeinek WHERE
booktown = # SELECT cím könyvekből
booktown- # ahol subject_id = 4
booktown- # ÉS author_id = 7805;
booktown = # SELECT cím könyvekből
booktown- # ahol subject_id = 4
booktown- # ÉS author_id = 0;
A második SELECT Listában 4.33 még mindig az első feltétel (könyv számítógépes témakörök) együtt a második feltétel: A művészeti könyvek (subject_id mező értéke 0). A térfogatot növeljük a végső, öt feljegyzések, amelyek mindegyike megfelel legalább az egyik ilyen körülmények között.
A számos feltétel, kombinált Ahol a keresztmetszet nem korlátozódik, bár a jelen két vagy több feltétel tipikusan a csoportosítás a zárójelben, világosan mutatja a logikai kapcsolat közötti körülmények között. Listing 4,34 megmutatja, hogyan egyszerű hozzáadásával zárójelben befolyásolja az eredmény a parancs.
Listing 4.34. Csoportosítása feltételek zárójeles
booktown = # SELECT * FROM könyvek
booktown- # ahol author_id = 1866
booktown- # ÉS subject_id = 15
booktown- # VAGY subject_id = 3;
id | cím | autho_id | subject_id
4513 | Dune | 1866 | 15
1234 | A Bársony Nyúl | 25041 | 3
booktown = # SELECT * FROM könyvek
booktown- # ahol author_id = 1866
booktown- # AND (subject_id = 15
booktown- # VAGY subject_id = 3);
id | cím | author_id | subject_id
4513 | Dune | 1866 | 15
Ez a példa azt mutatja, két kísérlet adatokat lekérni az adatbázis bejegyzéseivel booktown akiknek területén author_id egyenlő 1866. Ezen kívül a területen kell egyenlő subject_id 15 illetve 3. Amint az eredmények az első csapat, felsorolása során mindhárom feltétel zárójelek nélkül parancs hibásan értelmezett. Hozzátéve, zárójelben vezet az a tény, hogy a számítás a konzolok, hogy ellenőrizze a külső körülmények.