SQL sakinių redagavimas siekiant paryškinti užklausos rezultatus

Jei jūsų užklausos nepakankamai veikia nepakankamai, įtraukdami kai kuriuos pagrindinius SQL teiginius, galite padėti sutelkti rezultatus. Pažvelkime į kelių tipų SQL sakinių ir sąlygų ar dalių, kurias galite redaguoti, kad gautumėte norimus rezultatus.

Pastaba:  Šis straipsnis netaikomas „Access“ žiniatinklio programoms – duomenų bazei, kurią sukuriate naudodami „Access“ ir paskelbiate internete.

Šiame straipsnyje:

Sakinio Select kūrimas

SQL sakinys select turi nuo dviejų iki trijų sąlygų. Sąlyga SELECT nurodo duomenų bazę, kur ieškoti duomenų ir prašo pateikti konkretų rezultatą.

Pastaba:  PAŽYMĖTI išrašus visada baigiasi kabliataškiu (;) arba paskutinę sąlygą, arba eilutėje, esančioje SQL sakinio pabaigoje.

Toliau pateiktas sakinys select prašo prieigos, kad gautų informaciją iš el. pašto adreso ir įmonės stulpelių, iš kontaktų lentelės, konkrečiai, kur stulpelyje miestas ji randa "Seattle".

SQL objekto skirtukas su SELECT sakiniu

Aukščiau pateiktoje užklausoje yra trys sakiniai, nuo ir iš kur.

1. sąlygoje SELECT išvardijami stulpeliai, kuriuose yra norimi naudoti duomenys, ir operatoriaus (SELECT) ir du identifikatoriai (el. pašto adresas ir įmonė). Jei identifikatorius turi tarpų arba specialiųjų simbolių (pvz., "e. pašto adresas"), įveskite identifikatorių laužtiniuose skliaustuose.

2. sąlygoje nurodo šaltinio lentelę. Šiame pavyzdyje jis turi operatorių (nuo) ir identifikatorių (kontaktus).

3. sąlyga WHERE yra papildoma sąlyga. Pavyzdyje yra operatorius (kur), o po jo išraiška (miestas = "Sietlo").

Daugiau informacijos apie pasirinkimo užklausas rasite paprasto pasirinkimo užklausos kūrimas.

Čia pateikiamas įprastų SQL sąlygų sąrašas:

SQL sąlyga

Kaip ji veikia

Reikia ?

SELECT

Išvardija laukus, kuriuose yra dominančių duomenų.

Taip

FROM

Išvardija lenteles, kuriose yra laukai, nurodyti sąlygoje SELECT.

Taip

WHERE

Nurodo lauko kriterijus, kuriuos kiekvienas įrašas turi atitikti, kad būtų įtrauktas į rezultatus.

Ne

ORDER BY

Nurodo, kaip rūšiuoti rezultatus.

Ne

GROUP BY

SQL sakinyje, kuriame yra sudėtinių funkcijų, išvardija laukus, kurie nėra apibendrinti sąlygoje SELECT.

Tik jei yra tokių laukų

HAVING

SQL sakinyje, kuriame yra sudėtinių funkcijų, nurodo sąlygas, taikomas laukams, apibendrintiems sakinyje SELECT.

Ne

Kiekvieną SQL sąlygą sudaro sąlygos. Čia pateikiamas kelių dažniausių SQL sąlygų sąrašas.

SQL terminas

Apibrėžimas

Pavyzdys

identifikatorius

Pavadinimas, kurį naudojate duomenų bazės objektui identifikuoti, pvz., stulpelio pavadinimas.

[El. pašto adresas] ir įmonė

operatorius

Raktinis žodis, vaizduojantis veiksmą arba keičiantis veiksmą.

KAIP

konstanta

Nekintanti vertė, pvz., skaičius arba NULL.

42

išraiška

Identifikatorių, operatorių, konstantų ir funkcijų derinys, kuris apskaičiuoja vieną vertę.

>= Produktai.[Vieneto kaina]

Puslapio viršus

Sąlygos SELECT tinkinimas

Tinkinimas

Pavyzdys

Norėdami matyti tik atskiras reikšmes.

Naudokite atskirą raktažodį pasirinkite sąlygą.

Pavyzdžiui, jei jūsų klientai yra iš kelių skirtingų filialų ir kai kurie jų turi tą patį telefono numerį, o jūs norite matyti tik telefono numerį, nurodytą iškart, jūsų SELECT sąlyga būtų panaši į šią:

SELECT DISTINCT [txtCustomerPhone] 

Norėdami pakeisti duomenų lapo rodinyje rodomo identifikatoriaus būdą, kad būtų lengviau skaityti.

Naudokite kaip operatorių (raktažodį, kuris pateikia veiksmą arba modifikuoja veiksmą) su lauko pseudonimu jūsų SELECT sąlygoje. Lauko pseudonimas yra pavadinimas, kurį priskiriate laukui, kad rezultatus būtų lengviau skaityti.

SELECT [txtCustPhone] AS [Customer Phone]

Sąlygos FROM tinkinimas

Tinkinimas

Pavyzdys

Galite naudoti lentelės pseudonimą arba kitą pavadinimą, kurį priskiriate sakinyje SELECT. Lentelės pseudonimas naudingas, jei lentelės pavadinimo pavadinimas ilgas, ypač, kai turite kelis laukus, turinčius tą patį pavadinimą skirtingose lentelėse.

Norėdami pasirinkti duomenis iš dviejų laukų, tiek pavadintas ID, iš kurių vienas yra iš lentelės "Cblcustomer", o kitas – iš lentelės "Cblorder":

SELECT [tblCustomer].[ID], 
[tblOrder].[ID]

Naudokite funkciją kaip operatorius, kad apibrėžtumėte lentelės pseudonimus lauke nuo FROM:

FROM [tblCustomer] AS [C], 
[tblOrder] AS [O]

Tada galite naudoti šiuos lentelių pseudonimus savo sakinyje SELECT, kaip nurodyta toliau:

SELECT [C].[ID], 
[O].[ID]

Naudokite sujungimus Norėdami sujungti įrašų poras iš dviejų duomenų šaltinių į vieną rezultatą arba nurodyti, ar įtraukti įrašus iš bet kurios lentelės, jei susijusioje lentelėje nėra atitinkamo įrašo.

Prisijungimas prie lentelių, kad užklausa sujungia elementus iš lentelių ir neapima elementų, kai nėra atitinkamo įrašo kitoje lentelėje

Štai kaip gali atrodyti sąlyga FROM:

FROM [tblCustomer] 
INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]

Kaip naudoti sujungimus

Yra dviejų tipų sujungimų, vidinių ir išorinių sujungimų tipai. Vidiniai sujungimai dažniau būna užklausose. Kai vykdote užklausą su vidiniu sujungimu, rezultatas rodo tik tuos elementus, kurių bendroje lentelėje yra bendroji reikšmė.

Išoriniai sujungimai nurodo, ar įtraukti duomenis, kuriuose nėra bendrosios reikšmės. Išoriniai sujungimai yra kryptingi, tai reiškia, kad galite nurodyti, ar įtraukti visus duomenis iš pirmos lentelės, nurodytos sujungimui (vadinamam kairį sujungimą), ar įtraukti visus duomenis iš antrosios lentelės sujungimo (vadinamą dešiniuoju prisijungimu). Išorinį sujungimą turi ši SQL sintaksė:

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2

Daugiau informacijos apie sujungimų naudojimą užklausoje sujungimo lentelėse ir užklausose.

Puslapio viršus

Sąlygos WHERE tinkinimas

Sąlygoje WHERE yra kriterijų, kurie padeda riboti užklausos grąžintų elementų skaičių. Peržiūrėkite užklausos kriterijų pavyzdžius ir kaip jie veikia.

Pavyzdys, kaip galite tinkinti pagrindinio sąlygą WHERE, kad apribotumėte užklausos rezultatus; Tarkime, kad norite rasti kliento telefono numerį, ir galite tik prisiminti jo pavardę kaip bajoras. Šiame pavyzdyje paskutiniai vardai saugomi lauke LastName, todėl SQL sintaksė turėtų būti:

WHERE [LastName]='Bagel'

Naudokite sąlygą WHERE taip pat, jei norite sujungti duomenų šaltinius, skirtus stulpeliams, kurie turi sutampančių duomenų, bet skirtingus duomenų tipus. Tai naudinga, nes negalite sukurti laukų, kurie turi skirtingus duomenų tipus, sujungimo. Naudokite vieną lauką kaip kito lauko kriterijus su raktažodžiu like . Pvz., jei norite naudoti duomenis iš lentelės išteklių lentelė ir darbuotojai, tik tada, kai lauko turtas lauke turto tipas yra skaičius 3, esantis lentelės darbuotojai lauke kiekis, Štai, kaip atrodys sąlyga WHERE.

WHERE field1 LIKE field2

Svarbu:  Negalite nenurodyti lauko, kuriame yra Sąlygoje WHERE, kriterijų. Vietoj to agreguotų laukų kriterijams nurodyti galite naudoti sąlygą HAVING.

Puslapio viršus

"UNION" operatoriaus tinkinimas

Naudokite UNION operatorių, kai norite matyti bendrą rezultatų rodinį iš kelių panašių pasirinkimo užklausų. Pavyzdžiui, jei jūsų duomenų bazėje yra produktų lentelė ir paslaugų lentelė ir jos turi tris laukus: išskirtinis pasiūlymas arba produktas arba paslauga, kaina, garantija arba garantija. Nors produktų lentelėje saugoma garantijos informacija ir tarnybų lentelė saugo informaciją apie garantiją, pagrindinė informacija yra tokia pati. Naudodami "Union" užklausą galite sujungti tris laukus iš dviejų lentelių, pvz.:

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer
FROM Services;

Vykdant užklausą, kiekvieno atitinkamų laukų rinkinio duomenys sujungiami į vieną išvesties lauką. Norėdami į rezultatus įtraukti visas pasikartojančias eilutes, naudokite operatorių ALL.

Pastaba:  Sakinyje SELECT turi būti toks pat išvesties laukų skaičius ta pačia tvarka ir su tais pačiais arba suderinamais duomenų tipais. „Union“ užklausose skaičių ir teksto duomenų tipai yra suderinami.

Daugiau informacijos apie "Union" užklausas rasite " Union" užklausos naudojimas norint peržiūrėti vieningą rezultatą iš kelių užklausų.

Puslapio viršus

Reikia daugiau pagalbos?

Tobulinkite savo įgūdžius
Ieškoti mokymo

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?

Dėkojame už jūsų atsiliepimus!

×