Ievads par Access SQL

Svarīgi! :  Šis raksts ir mašīntulkots, skatiet atrunu. Lūdzu, skatiet šī raksta versiju angļu valodā šeit jūsu informācijai.

Ja vēlaties, lai izgūtu datus no datu bāzes, kuru pieprasa datus, izmantojot Structured Query Language vai SQL. SQL ir datoru valoda, kas līdzinās angļu valodā, kuru saprot datu bāzes programmas. Zinot SQL ir svarīgi, jo katru vaicājumu programmā Microsoft Access izmanto SQL. Informācija par to, kā darbojas SQL var palīdzēt izveidot labāk vaicājumus, un var atvieglot labot vaicājumu, ja tas nav atgriežas vēlamos rezultātus.

Piezīme : SQL nevar rediģēt saistībā ar tīmekļa vaicājumu.

Šajā rakstā

Kas ir SQL?

Pamata SQL klauzulas: SELECT, FROM, un kur

Kārtošanas rezultātus: secībā pēc

Darbs ar apkopoti dati: GRUPĒT pēc un HAVING

Apvienojot vaicājuma rezultātus: UNION

Papildinformācija par klauzulā SELECT

Papildinformācija par klauzulas FROM

Papildinformācija par klauzula WHERE

Kas ir SQL

SQL ir datoru valoda darbam ar kopas fakti un attiecības starp tām. Relāciju datu bāzes programmās, piemēram, Access, izmantojiet SQL, lai strādātu ar datiem. Tāpat kā daudzas datora valodas SQL ir starptautisku standartu, kas atpazīst, piemēram, ISO un ANSI standartu struktūrām.

SQL izmantojiet, lai aprakstītu kopas, kas var palīdzēt rast atbildes jautājumiem. Ja izmantojat SQL, ir jāizmanto pareizā sintakse. Sintakse ir kārtulu, kas valodu elementi pareizi apvienoti kopa. SQL sintakse pamatā ir angļu sintaksi un daudzi vienādi elementi tiek izmantota kā Visual Basic for Applications (VBA) sintakses.

Piemēram, vienkāršs SQL priekšraksts, kuru izmantojot, tiek izgūts to kontaktpersonu uzvārdu saraksts, kuru vārds ir Marija, ir līdzīgs šim:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Piezīme : SQL netiek izmantota tikai darbam ar datiem, bet arī izveidi un datu bāzes objektus, piem., tabulas noformējuma mainīšana. SQL, kas tiek izmantots izveidi un mainot datu bāzes objektu daļa tiek dēvēta par datu definēšanas valodas (DDL). Šajā tēmā nav izklāstīta DDL. Lai iegūtu papildinformāciju, skatiet rakstu izveidot tabulu vai indeksu vai modificēšana, izmantojot datu definīcijas vaicājumu.

Priekšraksti SELECT

Lai, izmantojot valodu SQL, aprakstītu datu kopu, raksta priekšrakstu SELECT. Priekšrakstā SELECT iekļauj pilnu tās datu kopas aprakstu, kura jāizgūst no datu bāzes. Tajā ietilpst šāda informācija:

  • Tabulas, kurās atrodas šie dati.

  • Dažādos avotos iekļauto datu saistība.

  • Lauki vai aprēķini, kurus izmantojot, iegūst vajadzīgos datus.

  • Kritēriji, kas jāizmanto, jāatbilst datu iekļauts.

  • Kārtošanas nepieciešamība un veids.

SQL klauzulas

Valodā SQL tāpat kā cilvēku valodā ir teikumi jeb klauzulas. Katra klauzula izpilda SQL priekšraksta funkciju. Dažas klauzulas priekšrakstā SELECT ir obligātas. Nākamajā tabulā ir uzskaitītas bieži lietojamās SQL klauzulas.

SQL klauzula

Ko tā veic

Obligāta

SELECT

Uzskaita laukus, kuros atrodas vajadzīgie 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 rezultātu kārtošanas veidu.

GROUP BY

SQL priekšraksts, kurā iekļautas apkopošanas funkcijas; uzskaita laukus, kuri 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 jālieto attiecībā uz priekšrakstā SELECT apkopotajiem laukiem.

SQL termi

Katra SQL klauzula tiek veidota, izmantojot termus — tos var salīdzināt ar vārdšķirām. Nākamajā tabulā ir uzskaitīti SQL termu tipi.

SQL terms

Salīdzināmā vārdšķira

Definīcija

Piemērs

Identifikators

lietvārds

Nosaukums, kuru izmanto, lai identificētu datu bāzes objektu, piemēram, lauka nosaukums.

Klienti.[tālruņu numuri]

Operators

darbības vai apstākļa vārds

Atslēgvārds, kurš apzīmē darbību vai modificē darbību.

AS

Konstante

lietvārds

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

42

Izteiksme

īpašības vārds

Identifikatoru, operatoru, konstanšu un funkciju apvienojums, kas tiek novērtēts ar vienu vērtību.

>= Produkti.[vienības cena]

Uz lapas sākumu

SQL pamatklauzulas: SELECT, FROM un WHERE

SQL priekšrakstā izmanto vispārīgu formu:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Piezīmes : 

  • Programma Access ignorē SQL priekšrakstā esošus rindiņu pārtraukumus. Tomēr, lai uzlabotu SQL priekšrakstu lasāmību gan savām, gan citu lietotāju vajadzībām, katru klauzulu ieteicams rakstīt savā rindā.

  • Katra priekšraksta SELECT beigās ir semikols (;). Semikolu SQL priekšraksta beigās var ierakstīt pēdējās klauzulas beigās vai atsevišķā rindā.

Piemērs programmā Access

Nākamajā piemērā attēlota vienkārša atlases vaicājuma SQL priekšraksta iespēja programmā Access:

SQL objekta cilne, kurā redzams priekšraksts SELECT

1. Klauzula SELECT

2. Klauzula FROM

3. Klauzula WHERE

Šajā piemērā SQL priekšraksts jālasa kā “Atlasīt (Select) datus, kas tiek glabāti laukos ar nosaukumu E-pasta adrese (E-mail Address) un Uzņēmums (Company), kuri atrodas tabulā ar nosaukumu Kontaktpersonas (Contacts), konkrēti tie ieraksti, kuru vērtība laukā Pilsēta (City) ir Sietla (Seatle).”

Izskatīsim šo piemēru pa vienai klauzulai, lai saprastu, kā darbojas SQL sintakse.

Klauzula SELECT

SELECT [E-mail Address], Company

Šī ir klauzula SELECT. Tajā ietilpst operators (SELECT), kam seko divi identifikatori ([E-mail Address] (E-pasta adrese) un Company (Uzņēmums)).

Ja identifikatorā ir atstarpes vai speciālās rakstzīmes (piemēram, “E-pasta adrese”), tas jāiekļauj kvadrātiekavās.

Klauzulā SELECT nav jānorāda tabulas, kurās atrodas lauki, un nav jānorāda nekādi nosacījumi, kuriem jāizpildās, lai tiktu iekļauti dati.

Priekšrakstā SELECT klauzula SELECT vienmēr jāraksta pirms klauzulas FROM.

Klauzula FROM

FROM Contacts

Šī ir klauzula FROM. Tajā ietilpst operators (FROM), kam seko identifkators (Contacts (Kontaktpersonas)).

Klauzulā FROM netiek norādīti atlasei paredzētie lauki.

Klauzula WHERE

WHERE City="Seattle"

Šī ir klauzula WHERE. Tajā ietilpst operators (WHERE), kam seko izteiksme (City="Seatle" (Pilsēta="Sietla")).

Piezīme : Atšķirībā no klauzulas SELECT un FROM klauzula WHERE nav obligāts priekšraksta SELECT elements.

Jūs varat paveikt daudzas darbības, kas SQL nodrošina iespēju veikt, izmantojot SELECT, FROM, un kur klauzulas. Papildinformāciju par to, kā Izmantojiet šīs klauzulas ir iekļauta šī raksta beigās šajās sadaļās:

Papildinformācija par klauzulā SELECT

Papildinformācija par klauzulas FROM

Papildinformācija par klauzula WHERE

Rezultātu kārtošana: ORDER BY

Programmā Access tāpat kā programmā Microsoft Office Excel rezultātus var kārtot datu lapā. Izmantojot klauzulu ORDER BY, vaicājumā var arī norādīt, kā vaicājuma izpildes gadījumā vēlaties kārtot rezultātus; tā ir pēdējā SQL priekšraksta klauzula.

Klauzulā ORDER BY iekļauj to lauku sarakstu, kurus vēlaties izmantot kārtošanā, tos norādot secībā, kādā vēlaties veikt kārtošanas darbības.

Piemēram, pieņemsim, ka vēlaties, lai rezultāti vispirms būtu sakārtoti dilstošā secībā pēc lauka Company (Uzņēmums) vērtības, un — ja kolonnas Company ierakstiem ir vienāda vērtība — pēc tam būtu sakārtoti augošā secībā pēc lauka E-mail Address (E-pasta adrese) vērtības. Klauzula ORDER BY var būt šāda:

ORDER BY Company DESC, [E-mail Address]

Piezīme : Pēc noklusējuma programma Access vērtības kārto augošā secībā (A–Z, no mazākās uz lielāko). Lai vērtības tā vietā kārtotu dilstošā secībā, izmantojiet atslēgvārdu DESC.

Lai iegūtu papildinformāciju par klauzula ORDER BY, skatiet tēmu klauzula ORDER BY.

Uz lapas sākumu

Darbs ar apkopotiem datiem: GROUP BY un HAVING

Dažkārt vēlaties strādāt ar kopsavilkuma datiem, piemēram, kopējo pārdošanas mēnesī vai inventāra visvairāk dārgo vienumus. Lai to izdarītu, ir lietot apkopošanas funkcija lauka klauzulā SELECT. Piemēram, ja vēlaties, lai rādītu e-pasta adresēm, kas norādītas katram uzņēmumam skaitu vaicājumā, savā klauzulā SELECT var aptuveni šāda:

SELECT COUNT([E-mail Address]), Company

Apkopošanas funkcijas, kuras varat izmantot ir atkarīgas no dati, kas ir lauks vai izteiksme, kuru vēlaties izmantot. Lai iegūtu papildinformāciju par pieejamās apkopojuma funkcijas, skatiet rakstā SQL apkopošanas funkcijas.

Apkopošanas funkcijā neizmantojamo lauku norādīšana: klauzula GROUP BY

Apkopošanas funkciju izmantošanas gadījumā parasti vienmēr jāizveido arī klauzula GROUP BY. Klauzulā GROUP BY norāda visus laukus, kuros netiks lietota apkopošanas funkcija. Ja apkopošanas funkcijas vaicājumā tiks lietotas visos laukos, klauzulas GROUP BY izveide nav nepieciešama.

Klauzula GROUP BY seko uzreiz pēc klauzulas WHERE vai klauzulas FROM, ja priekšrakstā nav klauzulas WHERE. Klauzulā GROUP BY laukus norāda secībā, kādā tie iekļauti klauzulā SELECT.

Piemēram, ja, turpinot iepriekšējo piemēru, klauzulā SELECT apkopošanas funkciju ir paredzēts lietot laukā [E-mail Address] (E-pasta adrese), taču nav paredzēts lietot laukā Company (Uzņēmums), klauzula GROUP BY var būt šāda:

GROUP BY Company

Lai iegūtu papildinformāciju par Klauzula GROUP BY, skatiet tēmu Klauzula GROUP BY.

Ierobežot apkopotās vērtības, izmantojot grupas kritērijiem: Klauzula HAVING

Ja vēlaties izmantot kritērijus, lai ierobežotu rezultātus, tomēr lauks, kurā vēlaties lietot kritērijus, jau tiek izmantots apkopošanas funkcijā, nevar izmantot klauzulu WHERE. Tās vietā izmanto klauzulu HAVING. Klauzula HAVING darbojas līdzīgi klauzulai WHERE, taču to izmanto apkopotu datu apstrādē.

Piemēram, pieņemsim, ka klauzulas SELECT pirmajā laukā izmantojat funkciju COUNT (kas atgriež rindu skaitu):

SELECT COUNT([E-mail Address]), Company

Ja vēlaties, lai vaicājuma rezultāti tiktu ierobežoti, pamatojoties uz šīs funkcijas COUNT vērtību, klauzulā WHERE šim laukam nevar lietot kritērijus. Tā vietā šos kritērijus iekļauj klauzulā HAVING. Piemēram, ja vēlaties, lai vaicājums atgrieztu rindas tikai tad, ja ar uzņēmumu ir saistītas vairākas e-pasta adreses, klauzula HAVING var būt šāda:

HAVING COUNT([E-mail Address])>1

Piezīme : Vaicājumā var būt iekļauta klauzula WHERE un klauzula HAVING — to lauku kritērijus, kuri netiek izmantoti nevienā apkopošanas funkcijā, norāda klauzulā WHERE, bet to lauku kritērijus, kuri tiek izmantoti apkopošanas funkcijās — klauzulā HAVING.

Lai iegūtu papildinformāciju par HAVING klauzulu, skatiet tēmu HAVING klauzulu.

Uz lapas sākumu

Vaicājuma rezultātu apkopošana: UNION

Ja visus datus, kas atgriezti, izmantojot vairākus līdzīgus atlases vaicājumus, vēlaties pārskatīt kā apvienotu kopu, var izmantot operatoru UNION.

Operators UNION ļauj apvienot divus priekšrakstus SELECT. Apvienošanai paredzētajiem priekšrakstiem SELECT jābūt ar vienādu izvades lauku skaitu, vienādu secību un vienādiem vai saderīgiem lauku tipiem. Vaicājuma izpildes laikā katras atbilstošo lauku kopas dati tiek apvienoti vienā izvades laukā, tādēļ vaicājuma izvadē ir tāds pats lauku skaits kā katrā atlases vaicājumā.

Piezīme : Apvienošanas vaicājuma izmantošanas gadījumā datu tipi Number and Text ir saderīgi.

Operatora UNION lietošanas gadījumā, izmantojot atslēgvārdu ALL, var arī norādīt, vai vaicājuma rezultātos jāiekļauj rindu dublikāti, ja tādi pastāv.

Tāda apvienošanas vaicājuma SQL pamatsintakse, kurā apvienoti divi priekšraksti SELECT, ir šāda:

SELECT field_1
FROM table_1
UNION [ALL]
SELECT field_a
FROM table_a
;

Piemēram, pieņemsim, ka jums ir tabula Product (Produkti) un tabula Services (Pakalpojumi). Abās tabulās ir lauki, kuros iekļauts produkta vai pakalpojuma nosaukums, cena, ražotāja vai pakalpojuma sniedzēja garantijas pieejamība un norāde, vai produktu vai pakalpojumu piedāvājat ekskluzīvi. Lai gan tabulā Product (Produkti) tiek glabāta informācija par ražotāja garantiju un tabulā Services (Pakalpojumi) tiek glabāta informācija par pakalpojumu sniedzēja garantiju, pamatinformācija ir vienāda (informācija par to, vai konkrētajam produktam vai pakalpojumam ir pievienots solījums par kvalitāti). Apvienošanas vaicājumu, piemēram, tālāk minēto, var izmantot, lai apvienotu četrus abu tabulu laukus:

SELECT name, price, warranty_available, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee_available, exclusive_offer
FROM Services
;

Lai iegūtu papildinformāciju par SELECT priekšrakstu apvienošana, izmantojot operatoru UNION, skatiet rakstā vairāku atlases vaicājumu, izmantojot apvienošanas vaicājumu rezultātu apvienošana.

Uz lapas sākumu

Papildinformācija par klauzulu SELECT

Priekšraksts SELECT klauzulā SELECT uzskaita laukus, kuros atrodas dati ko vēlaties lietot.

Kvadrātiekavu lietošana, lai norobežotu identifikatorus

Lai klauzulā SELECT norobežotu lauka nosaukumu, var izmantot kvadrātiekavas. Ja nosaukumā nav atstarpju vai speciālo rakstzīmju (piemēram, pieturzīmju), kvadrātiekavu lietošana nav obligāta. Ja nosaukumā ir atstarpes vai speciālās rakstzīmes, jālieto iekavas.

Padoms : Nosaukums, kurā ir atstarpes, ir vieglāk lasāmas, un varat ietaupīt laiku, kad dizaina formās un atskaitēs, bet var beigties padarīt rakstot vairāk SQL priekšrakstus. Jums vajadzētu ņemt vērā šo faktu, kad jūs nosaukums objektus datu bāzē.

Ja SQL priekšrakstā ir vismaz divi vienāda nosaukuma lauki, klauzulā SELECT katra lauka nosaukumam jāpievieno lauka datu avota nosaukums. Jālieto tas pats datu avota nosaukums kā klauzulā FROM.

Visu lauku atlase

Ja vēlaties iekļaut visus kādā datu avotā esošos laukus, klauzulā SELECT katru lauku varat norādīt atsevišķi vai izmantot zvaigznīti (*) kā aizstājējzīmi. Kad izmantojat zvaigznīti, programma Access nosaka, kad jāizpilda vaicājums, kā arī kādi lauki ir iekļauti datu avotā, un vaicājumā iekļauj visus šos laukus. Šādi var nodrošināt, lai vaicājums vienmēr atbilstu jaunākajam stāvoklim, ja datu avotam tiek pievienoti jauni lauki.

SQL priekšrakstā zvaigznīti var izmantot saistībā gan ar vienu, gan vairākiem datu avotiem. Ja izmantojat zvaigznīti un pastāv vairāki datu avoti, kopā ar zvaigznīti jāiekļauj datu avota nosaukums, lai programma Access varētu noteikt, kura datu avota lauki jāiekļauj vaicājumā.

Piemēram, pieņemsim, ka vēlaties atlasīt visus tabulā Orders (Pasūtījumi) esošos laukus, izņemot e-pasta adresi tabulā Contacts (kontaktpersonas). Klauzula SELECT var būt šāda:

SELECT Orders.*, Contacts.[E-mail Address]

Piezīme : Ja izmantojat zvaigznīti, sekojiet līdzi darbībām. Ja datu avotam vēlāk tiek pievienoti jauni lauki un neesat to plānojis, vaicājuma rezultāti, iespējams, nebūs tādi, kā paredzēts.

Noteiktu vērtību atlase

Ja zināt, ka, izmantojot priekšrakstu, tiks atlasīti lieki dati, un vēlaties skatīt tikai noteiktus datus, klauzulā SELECT varat izmantot atslēgvārdu DISTINCT. Piemēram, pieņemsim, ka katram jūsu klientam ir vairākas atšķirīgas intereses, daži no tiem lieto vienu tālruņa numuru. Ja vēlaties nodrošināt, lai katrs tālruņa numurs būtu parādīts tikai vienu reizi, klauzula SELECT var būt šāda:

SELECT DISTINCT [txtCustomerPhone]

Lauku vai izteiksmju aizstājvārdu izmantošana: atslēgvārds AS

Jebkura lauka etiķetes tekstu, kas redzams datu lapas skatā, var mainīt, klauzulā SELECT izmantojot atslēgvārdu AS un lauka aizstājvārdu. Lauka aizstājvārds ir nosaukums, kas tiek piešķirts vaicājumā, lai uzlabotu vaicājuma rezultātu lasāmību. Piemēram, ja vēlaties atlasīt datus, kas atrodas laukā ar nosaukumu txtCustPhone (teksts_Klienta_tālrunis), un šajā laukā ir iekļauti klientu tālruņu numuri, rezultātu lasāmību var uzlabot, klauzulā SELECT izmantojot lauka aizstājvārdu, ko veic šādi:

SELECT [txtCustPhone] AS [Customer Phone]

Piezīme : Ja klauzulā SELECT tiek izmantota izteiksme, jālieto lauka aizstājvārds.

Atlase, izmantojot izteiksmi

Dažkārt vēlaties aplūkot aprēķinus, ņemot vērā datu vai izgūt tikai daļu no lauka datu. Piemēram, pieņemsim, ka vēlaties ieņēmumi gadā, kas tika dzimusi klientiem, pamatojoties uz datiem laukā BirthDate datu bāzē. Iespējams, jūsu klauzulā SELECT aptuveni šāda:

SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]

Šī izteiksme, kas sastāv no funkcija DatePart un divi argumenti — "yyyy" (konstantes), un [BirthDate] (identifikatoru).

Ja, norādot vienu ievades vērtību, izteiksme atgriež vienu vērtību, jebkuru derīgu izteiksmi var izmantot kā lauku.

Uz lapas sākumu

Papildinformācija par klauzulu FROM

Priekšraksta SELECT klauzulā FROM norāda tabulas vai vaicājumus, kuros iekļautie dati tiks izmantoti klauzulā SELECT.

Pieņemsim, ka vēlaties noskaidrot kāda konkrēta klienta tālruņa numuru. Pieņemot, ka tabulu, kurā atrodas lauks ar šiem datiem, sauc tblCustomer, klauzula FROM var būt šāda:

FROM tblCustomer

Kvadrātiekavu lietošana, lai norobežotu identifikatorus

Lai norobežotu lauka nosaukumu, var izmantot kvadrātiekavas. Ja nosaukumā nav atstarpju vai speciālo rakstzīmju (piemēram, pieturzīmju), kvadrātiekavu lietošana nav obligāta. Ja nosaukumā ir atstarpes vai speciālās rakstzīmes, jālieto iekavas.

Padoms : Nosaukums, kurā ir atstarpes, ir vieglāk lasāmas, un varat ietaupīt laiku, kad dizaina formās un atskaitēs, bet var beigties padarīt rakstot vairāk SQL priekšrakstus. Jums vajadzētu ņemt vērā šo faktu, kad jūs nosaukums objektus datu bāzē.

Datu avotu aizstājvārdu izmantošana

Lai priekšrakstā SELECT izveidotu atsauci uz datu avotu, klauzulā FROM iekļaujot tabulas aizstājvārdu, var izmantot no datu avota atšķirīgu nosaukumu. Tabulas aizstājvārds ir nosaukums, ko vaicājumā piešķir datu avotam, ja kā datu avotu izmanto izteiksmi vai jāvienkāršo SQL priekšraksta izveide vai lasāmība. Tas var būt noderīgi, ja datu avota nosaukums ir garš vai to ir grūti uzrakstīt un īpaši gadījumos, ja dažādās tabulās ir vairāki lauki ar vienādu nosaukumu.

Piemēram, ja vēlaties atlasīt datus divos laukos, kuru nosaukums ir ID, bet viens lauks atrodas tabulā tblCustomer (tabula_Klienti), bet otrs — tabulā tblOrder (tabula_Pasūtījumi), klauzula SELECT var būt šāda:

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

Klauzulā FROM izmantojot tabulu aizstājvārdus, var vienkāršot vaicājuma uzrakstīšanu. Klauzula FROM, kurā izmantoti tabulu aizstājvārdi, var būt šāda:

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

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

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

Piezīme : Lietojot tabulu aizstājvārdus, atsauci uz datu avotu SQL priekšrakstā var izveidot, izmantojot šo aizstājvārdu vai pilnu datu avota nosaukumu.

Saistīto datu savienošana

Ja divu datu avotu ierakstu pāri vaicājuma rezultātos jāapvieno vienā ierakstā, var veikt savienošanu. Savienošana ir SQL darbība, kas norāda divu datu avotu saistīšanas veidu un rīcību, kas nepieciešama, ja kādā avotā nav otram datu avotam atbilstošu datu.

Lai apvienotu divos datu avotos esošo informāciju, šo avotu kopīgajā laukā veic savienošanas darbību. Ja šajā laukā esošās vērtības ir atbilstošas, šo ierakstu dati tiek apvienoti rezultātos.

Papildus datu apvienošanai savienošanu var arī izmantot, lai norādītu, vai jāiekļauj tādi tabulas dati, kuriem saistītajā tabulā nav atbilstošu ierakstu.

Piemēram, pieņemsim, ka vēlaties izmantot datus no divām tabulām vaicājumā: bet un (tabula_pas ūtījumi). Divu tabulu gan ir lauks, klienta ID, kas identificē klientu. Katram ierakstam, bet tabulā var būt viens vai vairāki atbilstošie ieraksti tabulā (tabula_pas ūtījumi) un attiecīgās vērtības var noteikt, CustomerID lauka vērtību.

Ja tabulas vēlaties savienot tā, lai vaicājumā būtu apvienoti šo tabulu ieraksti, izņemot gadījumus, kad kādā tabulā nav otrai tabulai atbilstoša ieraksta, klauzula FROM var būt šāda (rindiņas pārtraukums pievienots lasāmības uzlabošanas nolūkā):

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

Programmā Microsoft Office Access savienošana tiek veikta, izmantojot priekšraksta SELECT klauzulu FROM. Ir divu veidu savienojumi: iekšējie savienojumi un ārējie savienojumi. Nākamajās sadaļās sniegts šo abu savienojumu tipu skaidrojums.

Iekšējie savienojumi

Iekšējie savienojumi ir izplatītākais savienojuma tips. Kad tiek izpildīts vaicājums ar iekšējo savienojumu, vaicājuma rezultātos tiek iekļauti tikai tie ieraksti, kuru vispārējā vērtība pastāv abās savienotajās tabulās.

Iekšējam savienojumam ir šāda sintakse (rindiņas pārtraukums pievienots lasāmības uzlabošanas nolūkā):

FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2

Nākamajā tabulā sniegts dažādu darbības INNER JOIN daļu apraksts.

Daļa

Apraksts

Tabula1, Tabula2

To tabulu nosaukumi, kuru ieraksti tiek kombinēti.

Lauks1, Lauks2

Apvienoto lauku nosaukumi. Ja tie nav skaitliski, laukiem jābūt ar vienādu datu tips un jāsatur viena veida datus, bet nav jābūt ar vienu nosaukumu.

salīdzināšanas_operators

Jebkurš relāciju salīdzināšanas operators: “=,” “<,” “>,” “<=,” “>=” vai “<>”.

Ārējie savienojumi

Ārējie savienojumi ir līdzīgi iekšējiem savienojumiem, jo vaicājumā norāda, kā jāapvieno divos avotos esošā informācija. Tie atšķiras no iekšējiem savienojumiem, jo papildus norāda, vai dati jāiekļauj gadījumos, kad nav vispārējas vērtības. Ārējiem savienojumiem ir virziens: var norādīt, vai savienojumā jāiekļauj visi pirmā datu avota ieraksti (to sauc par kreiso savienojumu) vai visi otrā datu avota ieraksti (to sauc par labo savienojumu).

Ārējam savienojumam ir šāda sintakse:

FROM table1 [pa kreisi | Pa labi] JOIN Tabula2
par Table1. field1comopr table2. Field2

Nākamajā tabulā sniegts darbību LEFT JOIN un RIGHT JOIN dažādu daļu apraksts.

Daļa

Apraksts

Tabula1, Tabula2

To tabulu nosaukumi, kuru ieraksti tiek kombinēti.

Lauks1, Lauks2

Lauku nosaukumiem, kurus esat pievienojies. Jābūt vienā datu tips un ir viena veida datu laukus, bet tie nav ir tāds pats nosaukums.

salīdzināšanas_operators

Jebkuš no relāciju salīdzināšanas operatoriem: “=,” “<,” “>,” “<=,” “>=” vai “<>”.

Lai iegūtu papildinformāciju par savienojumu, skatiet rakstā tabulu un vaicājumu savienojumi.

Uz lapas sākumu

Papildinformācija par klauzulu WHERE

Ja vēlaties izmantot datus, lai ierobežotu to ierakstu skaitu, kas tiek atgriezti vaicājumā, izmantojiet vaicājuma kritēriji priekšraksta SELECT klauzulu WHERE. Vaicājuma kritērijs ir līdzīga formulai — tas ir virkne, kas var būt lauku atsauces, operatori un konstantes. Vaicājumu kritēriju ir izteiksmetips.

Nākamajā tabulā ir minēti daži kritēriju piemēri un sniegts paskaidrojums par to darbību.

Kritēriji

Apraksts

>25 and <50

Šis kritērijs attiecas uz Number tipa lauku, piemēram, lauku Price (Cena) vai UnitsInStock (Preču_skaits_noliktavā). Tas ļauj iekļaut rezultātos tikai tos ierakstus, kur laukā esošā vērtība ir lielāka nekā 25 un mazāka nekā 50.

DateDiff ("yyyy", [BirthDate], Date()) > 30

Šis kritērijs tiek lietots tikai Date/Time tipa laukā, piemēram, BirthDate (Dzimšanas_datums). Vaicājuma rezultātos tiek iekļauti tikai tie ieraksti, kur starpība gados starp personas dzimšanas datumu un šodienas datumu ir lielāka nekā 30.

Is Null

Šo kritēriju var lietot jebkura tipa laukā, lai parādītu ierakstus, kur lauka vērtība ir Null.

Kā redzams iepriekšējā tabulā, kritēriji var būt ļoti dažādi, un tas ir atkarīgs no tā lauka datu tipa, kurā šie kritēriji tiek lietoti, un specifiskām lietotāja vajadzībām. Daži kritēriji ir vienkārši, un tajos tiek izmantoti pamatoperatori un konstantes. Citi ir sarežģīti, un tajos tiek izmantotas funkcijas un īpaši operatori, kā arī iekļautas lauku atsauces.

Svarīgi! : Ja lauks tiek izmantots ar apkopošanas funkciju, nevar norādīt kritērijus šim laukam teikumā WHERE. Tā vietā izmantot klauzulu HAVING var norādīt kritērijus apkopotajiem laukiem. Lai iegūtu papildinformāciju, skatiet sadaļu darbs ar apkopoti dati: GRUPĒT pēc un HAVING.

Klauzulas WHERE sintakse

Klauzulas WHERE pamatsintakse ir šāda:

WHERE field = criterion

Piemēram, pieņemsim, ka vēlaties noskaidrot klienta tālruņa numuru, taču atceraties tikai to, ka klienta uzvārds ir Bagel. Tā vietā, lai pārskatītu visus datu bāzē esošos tālruņu numurus, var izmantot klauzulu WHERE, lai ierobežotu rezultātus un vienkāršotu vajadzīgā tālruņa numura atrašanu. Pieņemot, ka uzvārdi tiek glabāti laukā ar nosaukumu LastName (Uzvārds), klauzula WHERE būt šāda:

WHERE [LastName]='Bagel'

Piezīme : Jums nav jūsu klauzulu WHERE kritēriji pamatā vērtības atbilstību. Varat izmantot citu salīdzināšanas operatorus, piemēram, lielāks par (>) vai mazāk nekā (<). Piemēram, kur [cena] > 100.

Klauzulas WHERE izmantošana, lai apvienotu datu avotus

Dažreiz datu avoti jāapvieno pamatojoties uz laukiem, kuros ir atbilstoši dati, bet datu tipi atšķiras. Piemēram, kādas tabulas lauka datu tips Number un šo lauku vēlaties salīdzināt ar citas tabulas lauku, kura datu tips ir Text.

Starp dažādu datu tipu laukiem nevar izveidot savienojumu. Lai divos datu avotos esošos datus apvienotu, pamatojoties uz atšķirīgu datu tipu lauku vērtībām, izveido klauzulu WHERE, kurā, izmantojot atslēgvārdu LIKE, viens lauks tiek lietots kā otra lauka kritērijs.

Piemēram, pieņemsim, ka vēlaties izmantot tabulu table1 (1. tabula) un table2 (2. tabula) datus, bet tikai tad, ja field1 (1. lauks) dati (tabulas table1 teksta lauks) atbilst field2 (2. lauks) datiem (tabulas table2 skaitliskais lauks). Klauzula WHERE var būt šāda:

WHERE field1 LIKE field2

Lai iegūtu papildinformāciju par to, kā izveidot kritēriju, lai izmantotu klauzula WHERE, skatiet rakstu vaicājumu kritēriju piemēri.

Uz lapas sākumu

Piezīme : Mašīntulkošanas atruna. Šo rakstu ir tulkojusi datorsistēma bez cilvēka iejaukšanās. Microsoft piedāvā šos mašīntulkojumus, lai palīdzētu angliski nerunājošajiem lietotājiem izmanot saturu par Microsoft produktiem, pakalpojumiem un tehnoloģijām. Tā kā šis raksts ir mašīntulkots, tajā var būt leksikas, sintakses un gramatikas kļūdas.

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

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta aģentiem.

×