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.

Kapcsolódó cikkek