SQL priekšrakstu rediģēšana, lai uzlabotu vaicājuma rezultātus

Ja jūsu vaicājumi nestrādā pietiekami, pievienojot dažus pamata SQL priekšrakstus, var palīdzēt koncentrēties uz rezultātiem. Aplūkosim dažus SQL priekšrakstu veidus un klauzulas vai daļas, kuras var rediģēt, lai iegūtu vēlamos rezultātus.

Piezīme.:  Šis raksts neattiecas uz Access tīmekļa lietojumprogrammām — tāda veida datu bāzi, kas tiek izstrādāta programmā Access un publicēta tiešsaistē.

Šajā rakstā

Priekšraksta SELECT izveide

Priekšrakstam SQL SELECT ir divas līdz trīs klauzulas. Klauzula SELECT norāda datu bāzi, kur meklēt datus, un lūdz to atgriezt konkrētu rezultātu.

Piezīme.:  Priekšraksti SELECT vienmēr beidzas ar semikolu (;) pēdējā klauzulas vai rindas beigās, kas atrodas SQL priekšraksta beigās.

Šis priekšraksts SELECT pieprasa programmai Access saņemt informāciju no kolonnām e-pasta adrese un uzņēmums, no kontaktpersonu tabulas, jo īpaši tad, ja tā kolonnā pilsēta atrod "Sietla".

SQL objekta cilne, kurā redzams priekšraksts SELECT

Iepriekšminētajam vaicājumam ir trīs klauzulas SELECT, FROM un WHERE.

1. klauzulā SELECT ir uzskaitītas kolonnas, kurās ir dati, ko vēlaties izmantot, un tai ir operators (SELECT), kam seko divi identifikatori (e-pasta adrese un uzņēmums). Ja identifikatorā ir atstarpes vai speciālās rakstzīmes (piemēram, e-pasta adrese), identifikators ir jāiekļauj kvadrātiekavās.

2. klauzula FROM Identificē avota tabulu. Šajā piemērā tam ir operators (no), kam seko identifikators (kontaktpersonas).

3. klauzula WHERE ir neobligātā klauzula. Piemērā ir operators (WHERE), kam seko izteiksme (pilsēta = "Sietla").

Papildinformāciju par atlases vaicājumiem skatiet rakstā Vienkārša atlases vaicājuma izveide.

Šeit ir vispārīgu SQL klauzulu saraksts:

SQL klauzula

Funkcija

Vai nepieciešams?

SELECT

Uzskaita laukus, kuros ietverti interesējošie dati.

FROM

Uzskaita tabulas, kurās atrodas klauzulā SELECT uzskaitītie lauki.

WHERE

Norāda lauku kritērijus, kuriem jāatbilst katram ierakstam, lai tas tiktu iekļauts rezultātos.

ORDER BY

Norāda, kā kārtot rezultātus.

GROUP BY

SQL priekšrakstā, kurā iekļautas apkopošanas funkcijas, uzskaitīti lauki, kas nav apkopoti klauzulā SELECT.

Tikai tad, ja ir šādi lauki

HAVING

SQL priekšrakstā, kurā iekļautas apkopošanas funkcijas, norāda nosacījumus, kas attiecas uz priekšrakstā SELECT apkopotajiem laukiem.

Katra SQL klauzula sastāv no terminiem. Šeit ir saraksts ar dažiem vispārējiem SQL terminiem.

SQL termins

Definīcija

Piemērs

identifikators

Nosaukums, kas tiek izmantots, lai identificētu datu bāzes objektu, piemēram, kolonnas nosaukums.

[E-pasta adrese] un uzņēmums

operators

Atslēgvārds, kas attēlo darbību vai modificē darbību.

AS

konstante

Nemainīga vērtība, piemēram, skaitlis vai NULL.

42

izteiksme

Identifikatoru, operatoru, konstanšu un funkciju apvienojums, kas tiek novērtēts kā atsevišķa vērtība.

>= Products. [Vienības cena]

Uz lapas sākumu

Klauzulas SELECT pielāgošana

Pielāgošana

Piemērs

Lai skatītu tikai atsevišķas vērtības.

Izmantojiet atslēgvārdu DISTINCT savā klauzulā SELECT.

Piemēram, ja jūsu klienti ir no vairākiem dažādiem filiāļu birojiem un dažiem ir viens un tas pats tālruņa numurs un vēlaties redzēt tikai vienu tālruņa numuru, jūsu klauzula SELECT izskatīsies šādi:

SELECT DISTINCT [txtCustomerPhone] 

Lai mainītu veidu, kā identifikators tiek parādīts datu lapas skatā, lai uzlabotu lasāmību.

Izmantojiet operatoru AS (atslēgvārdu, kas attēlo darbību vai modificē darbību) ar lauka aizstājvārdu klauzulā SELECT. Lauka aizstājvārds ir nosaukums, ko piešķir laukam, lai atvieglotu to lasīšanu.

SELECT [txtCustPhone] AS [Customer Phone]

Klauzulas FROM pielāgošana

Pielāgošana

Piemērs

Varat izmantot tabulas aizstājvārdu vai citu nosaukumu, ko piešķirat tabulai priekšrakstā SELECT. Tabulas aizstājvārds ir noderīgs, ja tabulas nosaukuma nosaukums ir garš, it īpaši, ja jums ir vairāki lauki ar vienu un to pašu nosaukumu dažādās tabulās.

Lai atlasītu datus no diviem laukiem ar nosaukumu ID, no kuriem viens ir no tabulas bet viens lauks un otrs no tabulas tblOrder:

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

Izmantojiet operatoru AS, lai klauzulā FROM definētu tabulu aizstājvārdus:

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

Pēc tam šos tabulu aizstājvārdus klauzulā SELECT varat izmantot šādi:

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

Izmantojiet savienojumus, lai apvienotu ierakstu pārus no diviem datu avotiem vienā rezultātā vai norādītu, vai iekļaut ierakstus no tabulas, ja saistītajā tabulā nav atbilstoša ieraksta.

Savienojiet tabulas tā, lai vaicājumā būtu apvienoti tabulu vienumi un izslēgti vienumi, ja citā tabulā nav atbilstoša ieraksta.

Tālāk ir norādīts, kā izskatās klauzula FROM.

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

Par savienojumu izmantošanu

Ir divu veidu savienojumi, iekšējie un ārējie savienojumi. Iekšējie savienojumi ir vairāk izplatītākie vaicājumos. Kad izpildāt vaicājumu ar iekšēju savienojumu, rezultāts rāda tikai tos vienumus, kuros ir kopēja vērtība abās saistītajās tabulās.

Ārējie savienojumi norāda, vai iekļaut datus, kuros nav kopējas vērtības. Ārējie savienojumi ir virziena, un tas nozīmē, ka varat norādīt, vai jāiekļauj visi ieraksti no pirmās tabulas, kas norādīta savienojumā (tiek dēvēts par kreiso savienojumu), vai jāiekļauj visi ieraksti no otrās tabulas savienojumā (tiek dēvēti par RIGHT JOIN). Ārējam savienojumam ir šāda SQL sintakse:

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

Papildinformāciju par savienojumu izmantošanu vaicājumos skatiet rakstā tabulu un vaicājumu savienošana.

Uz lapas sākumu

Klauzulas WHERE pielāgošana

Klauzulā WHERE ir kritēriji, kas palīdz ierobežot vaicājuma atgriezto vienumu skaitu. Skatiet piemērus par vaicājumu kritērijiem un to darbību.

Piemērs, kā varat pielāgot pamata klauzulu WHERE, ir ierobežot vaicājuma rezultātus; Pieņemsim, ka vēlaties atrast klienta tālruņa numuru un tikai atcerēties pēdējo vārdu kā maizīti. Šajā piemērā uzvārds tiek glabāts laukā LastName, tāpēc SQL sintakse būtu:

WHERE [LastName]='Bagel'

Izmantojiet klauzulu WHERE, lai apvienotu datu avotus kolonnām, kas atbilst datiem, bet dažādus datu tipus. Tas ir noderīgi, jo nevar izveidot savienojumu starp laukiem, kuros ir atšķirīgi datu tipi. Izmantojiet vienu lauku kā kritēriju otrajam laukam ar atslēgvārdu Like . Piemēram, ja vēlaties izmantot datus no pamatlīdzekļu tabulas un tabulas Employees, tikai tad, ja pamatlīdzekļa tipa laukā pamatlīdzekļu tips ir numurs 3 tabulas Employees laukā daudzums, tālāk ir norādīts, kā ir jāizskatās šeit.

WHERE field1 LIKE field2

Svarīgi!:  Jūs nevarat norādīt kritērijus laukam, kas tiek izmantots ar kopuma funkciju klauzulā WHERE. Tā vietā ir jāizmanto klauzula HAVING, lai norādītu kritērijus apkopotiem laukiem.

Uz lapas sākumu

Pielāgošana ar operatoru UNION

Izmantojiet operatoru UNION, ja vēlaties skatīt vairāku līdzīgu atlases vaicājumu rezultātu apvienotu skatu. Piemēram, ja jūsu datu bāzē ir tabula Products un pakalpojumu tabula, kurā ir trīs lauki: Ekskluzīvs piedāvājums vai produkts vai pakalpojums, cena, garantija vai garantija. Lai gan tabulā Products tiek glabāta informācija par garantijām un pakalpojumu tabula saglabā garantijas informāciju, pamatinformācija ir tāda pati. Apvienošanas vaicājumu varat izmantot, lai apvienotu trīs laukus no divām tabulām, piemēram, šādi:

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

Palaižot vaicājumu, katras atbilstošo lauku kopas dati tiek apvienoti vienā izvades laukā. Lai rezultātos iekļautu rindas dublikātus, izmantojiet operatoru visi.

Piezīme.:  Priekšrakstam SELECT ir jābūt vienādam izvades lauku skaitam tādā pašā secībā un ar tiem pašiem vai saderīgiem datu tipiem. Apvienošanas vaicājuma nolūkos datu tipi Number un Text ir saderīgi.

Papildinformāciju par apvienošanas vaicājumiem skatiet rakstā apvienošanas vaicājuma lietošana, lai skatītu vienotu rezultātu no vairākiem vaicājumiem.

Uz lapas sākumu

Vai nepieciešama papildu palīdzība?

Paplašiniet savas prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Microsoft Insider

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar tulkojuma kvalitāti?
Kas ietekmēja jūsu pieredzi?

Paldies par jūsu atsauksmēm!

×