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

Attiecas uz
Access pakalpojumam Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Ja vaicājumi nav pietiekami intensīvi, dažu pamata SQL priekšrakstu pievienošana var palīdzēt koncentrēties uz rezultātiem. Aplūkosim dažus SQL priekšrakstu tipus un klauzulas vai daļas, ko varat rediģēt, lai iegūtu vajadzīgos rezultātus.

Tēmas šajā rakstā

Priekšraksta Select izveide

SQL priekšrakstam select ir divas vai trīs klauzulas. Klauzula SELECT norāda datu bāzei, kur meklēt datus, un lūdz tai atgriezt noteiktu rezultātu.

Piezīme

Priekšraksti SELECT vienmēr beidzas ar semikolu (;) vai nu pēdējās teikuma beigās, vai arī atsevišķā rindiņā SQL priekšraksta beigās.

Šis priekšraksts select lūdz Access iegūt informāciju no kolonnām E-pasta adrese un Uzņēmums tabulā Kontaktpersonas, konkrēti no vietas, kur kolonnā Pilsēta ir atrasts "Sietla".

SQL objekta cilne, kurā redzams priekšraksts SELECT

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

1. Klauzula SELECT uzskaita kolonnas, kurās ir vajadzīgie dati, 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"), iekļaujiet identifikatoru kvadrātiekavās.

2. Klauzula FROM identificē avota tabulu. Šajā piemērā tam ir operators (FROM), kam seko identifikators (Contacts).

3. Klauzula Where ir fakultatīva klauzula. Piemērā ir operators (WHERE), pēc kura seko izteiksme (City="Seattle").

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

Tālāk ir sniegts bieži izmantoto SQL klauzulu saraksts:

klauzula SQL Funkcija Vai nepieciešams?
SELECT Uzskaita laukus, kuros ir vajadzīgie dati.
FROM Uzskaita tabulas, kurās ir klauzulā SELECT uzskaitītie lauki.
WHERE Norāda lauka kritērijus, kuriem jāatbilst katram ierakstam, lai tas tiktu iekļauts rezultātos.
KĀRTOŠANA PĒC Norāda, kā kārtot rezultātus.
GROUP BY SQL priekšrakstā, kas satur apkopošanas funkcijas, uzskaita laukus, kas nav apkopoti klauzulā SELECT. Tikai tad, ja ir šādi lauki
HAVING SQL priekšrakstā, kurā ir apkopošanas funkcijas, norāda nosacījumus, kas attiecas uz laukiem, kuri ir apkopoti priekšrakstā SELECT.

Katra SQL klauzula sastāv no terminiem. Tālāk ir uzskaitīti daži bieži sastopami SQL termini.

SQL termins Definīcija Piemērs
identifikators Nosaukums, ko izmantojat datu bāzes objekta identificēšanai, piemēram, kolonnas nosaukums. [E-pasta adrese] un uzņēmums
operators Atslēgvārds, kas apzīmē darbību vai modificē darbību. AS
konstante Vērtība, kas nemainās, piemēram, skaitlis vai NULL. 42
izteiksme Identifikatoru, operatoru, konstanšu un funkciju apvienojums, kas tiek novērtēts kā viena vērtība. >= Produkti. [Vienības cena]

Uz lapas sākumu

Klauzulas SELECT pielāgošana

Pielāgošana Piemērs
Lai skatītu tikai atšķirīgās vērtības.
Izmantojiet atslēgvārdu DISTINCT klauzulā SELECT.
Piemēram, ja klienti ir no vairākām filiālēm un dažām ir vienādi tālruņa numuri, un vēlaties redzēt tālruņa numurus tikai vienu reizi, klauzula SELECT ir šāda:SELECT DISTINCT [txtCustomerPhone]
Mainīt, kā identifikators tiek parādīts datu lapas skatā, lai uzlabotu lasāmību.
Izmantojiet operatoru AS (atslēgvārds, kas apzīmē darbību vai modificē darbību) ar lauka aizstājvārdu klauzulā SELECT. Lauka aizstājvārds ir nosaukums, kas tiek piešķirts laukam, lai rezultāti būtu vieglāk lasāmi.
SELECT [txtCustPhone] AS [klienta tālrunis]

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š, īpaši, ja ir vairāki lauki ar vienādu nosaukumu no dažādām tabulām. Lai atlasītu datus divos laukos, kuru nosaukums ir ID, bet viens lauks atrodas tabulā tblCustomer, bet otrs — tabulā tblOrder:
SELECT [tblCustomer]. [ID],
[tblOrder]. [ID]
Izmantojiet operatoru AS, lai definētu tabulu aizstājvārdus klauzulā FROM:
FROM [tblCustomer] AS [C],
[tblOrder] AS [O]
Pēc tam šos tabulu aizstājvārdus varat izmantot klauzulā SELECT: SELECT [C]. [ID],
[O]. [ID]
Izmantojiet savienojumus, lai apvienotu ierakstu pārus no diviem datu avotiem vienā rezultātā vai arī norādītu, vai iekļaut ierakstus no jebkuras tabulas, ja saistītajā tabulā nav atbilstoša ieraksta.
Savienojiet tabulas tā, lai vaicājums apvienotu vienumus no tabulām un izslēgtu vienumus, ja otrā tabulā nav atbilstoša ieraksta
Klauzula FROM varētu izskatīties šādi:FROM [tblCustomer]
INNER JOIN [tblOrder]
ON [tblCustomer]. [CustomerID]=[tblOrder]. [Klienta ID]

Par savienojumu izmantošanu

Pastāv divi savienojumu tipi, iekšējie un ārējie. Iekšējie savienojumi biežāk sastopami vaicājumos. Izpildot vaicājumu ar iekšējo savienojumu, rezultātā tiek parādīti tikai tie vienumi, kuriem pastāv kopīga vērtība abās savienotajās tabulās.

Ārējie savienojumi norāda, vai ietvert datus, ja nepastāv kopīga vērtība. Ārējie savienojumi ir virziena, kas nozīmē, ka varat norādīt, vai ietvert visus ierakstus no pirmās savienojumā norādītās tabulas (dēvēts par kreiso savienojumu) vai ietvert visus ierakstus no savienojumā norādītās otrās tabulas (dēvēts par labo savienojumu). Ārējā savienojuma SQL sintakse ir šāda:

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

Papildinformāciju par savienojumu izmantošanu vaicājumā skatiet sadaļā Tabulu un vaicājumu savienošana.

Uz lapas sākumu

Klauzulas WHERE pielāgošana

Klauzulā Where ir iekļauti kritēriji, kas palīdz ierobežot vaicājumā atgriezto vienumu skaitu. Skatiet vaicājuma kritēriju piemērus 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 varat atcerēties tikai viņa uzvārdu kā Bagel. Šajā piemērā uzvārdi tiek glabāti laukā LastName, tāpēc SQL sintakse ir šāda:

WHERE [LastName]='Bagel'

Izmantojiet klauzulu WHERE arī, lai apvienotu datu avotus kolonnām, kurās ir atbilstīgi dati, bet atšķirīgi datu tipi. Tas ir noderīgi, jo nevar izveidot savienojumu starp laukiem, kuriem ir atšķirīgi datu tipi. Izmantojiet vienu lauku kā kritēriju otram laukam ar atslēgvārdu LIKE . Piemēram, ja vēlaties izmantot datus no tabulas Līdzekļi un tabulas Darbinieki tikai tad, ja objekta tipam tabulas Līdzekļi laukā Līdzekļu tips ir skaitlis 3 tabulas Darbinieki laukā Daudzums, šādi izskatās klauzula Where:

WHERE field1 LIKE field2

Svarīgi!

Klauzulā Where nevar norādīt kritēriju laukam, kas tiek izmantots kopā ar apkopošanas funkciju. Tā vietā ir jāizmanto klauzula HAVING, lai norādītu kritērijus apkopotiem laukiem.

Uz lapas sākumu

Pielāgošana, izmantojot operatoru UNION

Izmantojiet operatoru UNION, ja vēlaties skatīt apvienotu rezultātu skatu no vairākiem līdzīgiem atlases vaicājumiem. Piemēram, ja datu bāzē ir tabulas Produkti un Pakalpojumi un abi lauki ir šādi: ekskluzīvs piedāvājums vai produkts vai pakalpojums, cena, garantija vai garantija. Lai gan tabulā Produkti ir saglabāta garantijas informācija, savukārt tabulā Pakalpojumi tiek glabāta garantijas informācija, pamatinformācija ir tā pati. Apvienošanas vaicājumu var izmantot, lai apvienotu trīs laukus no abām tabulām šādi:

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

Vaicājuma izpildes laikā katras atbilstošo lauku kopas dati tiek apvienoti vienā izvades laukā. Lai rezultātos iekļautu rindu dublikātus, izmantojiet operatoru ALL.

Piezīme

Priekšrakstā Select jābūt vienādam izvades lauku skaitam, vienādā secībā un ar vienādiem vai saderīgiem datu tipiem. Apvienošanas vaicājumā datu tips Number un Text ir saderīgi.

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

Uz lapas sākumu