SQL sakinių redagavimas, siekiant patikslinti užklausos rezultatus

SQL sakinių redagavimas, siekiant patikslinti užklausos rezultatus

Svarbu :  Šis straipsnis išverstas naudojant mašininį vertimą, žr. atsakomybės atsisakymą. Su šio straipsnio versija anglų kalba galite susipažinti čia .

Jeigu jūsų užklausos nėra pakankamai efektyvios, pridėję kelis pagrindinius SQL sakinius sukonkretinsite rezultatus. Apžvelkime kelių tipų SQL sakinius ir dalis, kurias galėtumėte redaguoti, kad gautumėte norimus rezultatus.

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

Šiame straipsnyje:

Select sukūrimas

Sąlygos Select tinkinimas

Sąlygos from tinkinimas

Sąlygos WHERE tinkinimas

Operatoriaus UNION tinkinimas

Sakinio SELECT sukūrimas

SQL sakinys SELECT turi dvi arba tris sąlygas. Sąlyga SELECT pasako duomenų bazei, kur ieškoti duomenų ir prašo pateikti konkretų rezultatą.

Pastaba : Visi SELECT sakiniai baigiasi kabliataškiu (;). Kabliataškis gali būti paskutinės sąlygos pabaigoje arba vienas eilutėje, SQL sakinio pabaigoje.

Toliau nurodytas SELECT sakinys prašo programos „Access“ gauti informacijos iš lentelės Kontaktai stulpelių El. pašto adresas ir Įmonė, kai stulpelyje Miestas randa „Sietlas“.

SQL objekto skirtukas su SELECT sakiniu

Anksčiau nurodytoje užklausoje yra trys sąlygos: SELECT, FROM ir WHERE.

1. Sąlyga SELECT pateikia stulpelius, kuriuose yra norimi naudoti duomenys ir operatorius (SELECT), po kurio seka du identifikatoriai (el. pašto adresas ir įmonė). Jei identifikatoriuje yra tarpų arba specialių simbolių (pvz., „El. pašto adresas“), jį reikia rašyti laužtiniuose skliaustuose.

2. Sąlyga FROM identifikuoja šaltinio lentelę. Šiame pavyzdyje joje yra operatorius (FROM), po kurio seka identifikatorius (Kontaktai).

3. Sąlyga WHERE yra nebūtina sąlyga. Pavyzdyje yra operatorius (WHERE), po kurio seka išraiška (Miestas="Sietlas").

Daugiau informacijos apie išrinkimo užklausų naudojimą rasite sukurti paprastą išrinkimo užklausą.

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

SQL sąlyga

Kaip ji veikia

Būtina ?

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 terminai. Toliau pateikiamas įprastų SQL terminų 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

Tinkinti

Pavyzdys

Norint matyti tik skirtingas reikšmes.

Sąlygoje SELECT naudokite raktažodį DISTINCT.

Pavyzdžiui, jeigu jūsų klientai yra iš kelių skirtingų filialų ir kai kurie iš jų naudoja tą patį telefono numerį, o jūs norite, kad telefono numeris būtų pateiktas tik vieną kartą, jūsų sąlyga SELECT atrodytų taip:

SELECT DISTINCT [txtCustomerPhone] 

Norint pakeisti identifikatoriaus išvaizdą duomenų lapo rodinyje ir taip pagerinti skaitomumą.

Sąlygoje SELECT su lauko pseudonimu naudokite operatorių AS (raktažodį, kuris atspindi arba modifikuoja veiksmą). Lauko pseudonimas – tai pavadinimas, kurį priskiriate laukui, kad būtų lengviau skaityti rezultatus.

SELECT [txtCustPhone] AS [Customer Phone]

Sąlygos FROM tinkinimas

Tinkinti

Pavyzdys

Galite naudoti lentelės pseudonimą arba kitokį sakinyje SELECT lentelei priskiriamą pavadinimą. Lentelės pseudonimas naudingas, kai lentelės pavadinimas yra ilgas, ypač jei yra keli taip pat pavadinti laukai iš skirtingų lentelių.

Norint rinktis duomenis iš dviejų laukų, kurie abu pavadinti „ID“ ir kurių vienas yra gautas iš lentelės „tblCustomer“, o kitas – iš lentelės „tblOrder“:

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

Norėdami apibrėžti sąlygos FROM lentelių pseudonimus, naudokite operatorių AS:

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

Tada savo sąlygoje SELECT galėsite naudoti šiuos lentelių pseudonimus:

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

Jei reikia sujungti įrašų iš dviejų duomenų šaltinių poras į vieną rezultatą arba nurodyti, ar įtraukti įrašus iš kurios nors lentelės, jei susijusioje lentelėje nėra atitinkamo įrašo, naudokite sujungimus.

Sujunkite lenteles, kad užklausa derintų įrašus iš lentelių ir išskirtų įrašus, jei 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]

Apie sujungimų naudojimą

Sujungimai būna dviejų tipų: vidiniai ir išoriniai. Užklausose labiau įprasti vidiniai sujungimai. Vykdant užklausą su vidiniu sujungimu, rezultatuose rodomi tik tie įrašai, kurie turi bendrą reikšmę abiejose sujungtose lentelėse.

Išoriniai sujungimai nurodo, ar įtraukti duomenis, kai nėra bendros reikšmės. Išoriniai sujungimai yra kryptiniai. Tai reiškia, kad galite nurodyti, ar reikia įtraukti visus įrašus iš pirmosios sujungime nurodytos lentelės (tai vadinama kairiuoju sujungimu) arba ar įtraukti visus įrašus iš antrosios lentelės sujungime (tai vadinama dešiniuoju sujungimu). Išorinio sujungimo SQL sintaksė yra tokia:

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

Daugiau informacijos apie sujungimų "" lentelių ir užklausų sujungimasužklausoje naudojimą.

Puslapio viršus

Sąlygos WHERE tinkinimas

Sąlygos WHERE kriterijai padeda apriboti užklausos grąžintų elementų skaičių. Ieškokite užklausos kriterijų pavyzdžiai ir kaip jie veikia.

Jeigu norite tinkinti pagrindinę sąlygą WHERE, apribokite užklausos rezultatus. Pavyzdžiui, norite sužinoti kliento telefono numerį, bet prisimenate tik, kad kliento pavardė yra Bagel. Šiame pavyzdyje pavardės laikomos lauke, pavadintame „Pavardė“, todėl SQL sintaksė atrodys taip:

WHERE [LastName]='Bagel'

Naudokite sąlygą WHERE, taip pat jungti duomenų šaltinius, kuriuose yra duomenų, bet skirtingų tipų duomenys, atitinkantys stulpelių. Tai patogu, nes negalite kurti sujungimą tarp laukus, kuriuose yra skirtingų tipų duomenys. Naudokite vieną lauką kaip kriterijų lauko, pvz., žodį. Pavyzdžiui, jei norite naudoti duomenis su turto ir darbuotojų lentelė, tik tada, kai turto turto tipas įveskite išteklių lentelės lauke yra lentelė darbuotojai, Štai kaip atrodytų WHERE, jei jūsų skaičius 3 lauke kiekis :

WHERE field1 LIKE field2

Svarbu :  Negalite nurodyti lauko kriterijų, sąlygoje WHERE naudojamų su sudėtine funkcija. Vietoj to sudėtinių laukų kriterijus nurodykite naudodami sąlygą HAVING.

Puslapio viršus

Operatoriaus UNION tinkinimas

Naudokite operatorių UNION, kai norite peržiūrėti kelių panašių išrinkimo užklausų rezultatus jungtiniame rodinyje. Pavyzdžiui, jeigu jūsų duomenų bazėje yra lentelė „Produktai“ ir lentelė „Paslaugos“ ir abiejose yra trys laukai: išskirtinis pasiūlymas arba produktas ar paslauga, kaina ir garantija arba paslaugos garantija. Nors lentelėje „Produktai“ saugoma garantijos, o lentelėje „Paslaugos“ – paslaugos garantijos informacija, pagrindinė informacija yra tokia pati. Naudodami užklausą „union“ galite sujungti tris laukus iš dviejų lentelių, kaip parodyta toliau:

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

Kai vykdote užklausą, kiekvieno atitinkančių laukų rinkinio duomenys sujungiami į vieną išvesties lauką. Norėdami į rezultatus įtraukti pasikartojančių eilučių, naudokite operatorių ALL.

Pastaba :  Sakinyje SELECT turi būti vienodas išvesties laukų skaičius, turi sutapti jų tvarka, o jų duomenys turi būti vienodi arba suderinami. „Union“ užklausose skaičių ir teksto duomenų tipai yra suderinami.

Daugiau informacijos apie "Union" užklausas, rasite naudojant "union" užklausos rezultatui iš kelių užklausų Peržiūrėti.

Puslapio viršus

Pastaba : Mašininio vertimo atsakomybės atsisakymas: Šis straipsnis išverstas naudojant kompiuterinę sistemą be žmogaus įsikišimo. „Microsoft“ pateikia šiuos mašininius vertimus norėdama padėti anglų kalbos nesuprantantiems vartotojams perskaityti turinį apie „Microsoft“ produktus, paslaugas ir technologijas. Šis straipsnis išverstas mašininio vertimo būdu, todėl jame gali būti žodyno, sintaksės ar gramatikos klaidų.

Tobulinkite savo įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×