Access SQL: pamatjēdzieni, vārdnīca un sintakse

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

Ja vēlaties izgūt datus no datu bāzes, pieprasāt datus, izmantojot strukturētu vaicājumu valodu (SQL). SQL ir datorvaloda, kas ir ļoti līdzīga angļu valodai, bet ko saprot datu bāzu programmas. Katrā vaicājumā, ko izpildāt, aizkulisēs tiek izmantots SQL.

Izpratne par to, kā darbojas SQL, var palīdzēt izveidot labākus vaicājumus un var atvieglot izpratni, kā labot vaicājumu, kas neatgriež vēlamos rezultātus.

Šis raksts ietilpst rakstu kopā par Access SQL. Šajā rakstā paskaidrota SQL valodas pamatizmantošana datu atlasē, kā arī sniegti piemēri, lai ilustrētu SQL sintaksi.

Tēmas šajā rakstā

Kas ir SQL?

SQL ir datorvaloda darbam ar faktu kopām un to relācijām. Relāciju datu bāzu programmas, piemēram, Microsoft Office Access, izmanto SQL, lai strādātu ar datiem. Atšķirībā no daudzām datorvalodām, SQL nav grūti lasīt un saprast, pat iesācējiem. Tāpat kā daudzas datorvalodas, SQL ir starptautisks standarts, ko atzīst standartizācijas iestādes, piemēram, ISO un ANSI.

SQL kods tiek izmantots, lai aprakstītu datu kopas, kas var palīdzēt atbildēt uz jautājumiem. Izmantojot SQL, ir jāizmanto pareizā sintakse. Sintakse ir kārtulu kopums, ar kuru pareizi tiek apvienoti valodas elementi. SQL sintakses pamatā ir angļu valodas sintakse, un tajā tiek izmantota liela daļa no tiem pašiem elementiem, ko izmanto Visual Basic for Applications (VBA) sintakse.

Piemēram, vienkāršs SQL priekšraksts, kas izgūst uzvārdu sarakstu kontaktpersonām, kuru vārds ir Marija, varētu būt līdzīgs šim:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Piezīme

SQL kods tiek izmantots ne tikai datu apstrādei, bet arī datu bāzes objektu, piemēram, tabulu, izveidei un noformējuma mainīšanai. SQL daļu, kas tiek izmantota datu bāzes objektu izveidei un mainīšanai, sauc par datu definēšanas valodu (DDL). Šajā tēmā nav apskatīta DDL. Papildinformāciju skatiet rakstā Tabulu vai indeksu izveide vai modificēšana, izmantojot datu definīcijas vaicājumu.

Priekšraksti SELECT

Lai aprakstītu datu kopu, izmantojot SQL, uzrakstiet priekšrakstu SELECT. Priekšraksts SELECT satur pilnīgu aprakstu par datu kopu, ko vēlaties iegūt no datu bāzes. Tas ietver tālāk minēto.

  • kuras tabulas satur datus;
  • Kā dati no dažādiem avotiem ir saistīti.
  • kuri lauki vai aprēķini radīs datus;
  • Kritēriji, kuriem datiem jāatbilst, lai tie tiktu iekļauti.
  • Vai un kā kārtot rezultātus.

SQL klauzulas

Tāpat kā teikumam, arī SQL priekšrakstam ir klauzulas. Katra klauzula izpilda SQL priekšraksta funkciju. Priekšrakstā SELECT ir obligāti jāiekļauj dažas klauzulas. Nākamajā tabulā ir norādītas visbiežāk izmantotās SQL klauzulas.

klauzula SQL Funkcija Obligāts
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.

SQL nosacījumi

Katra SQL klauzula sastāv no terminiem — tie ir salīdzināmi ar vārdšķirām. Nākamajā tabulā ir uzskaitīti SQL terminu tipi.

SQL termins Salīdzināma runas daļa Definīcija Piemērs
identifikators lietvārds Nosaukums, ko izmanto, lai identificētu datu bāzes objektu, piemēram, lauka nosaukums. Klienti. [Tālruņa numurs]
operators Darbības vārds vai apstākļa vārds Atslēgvārds, kas apzīmē darbību vai modificē darbību. AS
konstante lietvārds Vērtība, kas nemainās, piemēram, skaitlis vai NULL. 42
izteiksme īpašības vārds 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

SQL pamatklauzulas: SELECT, FROM un WHERE

SQL priekšraksts ir vispārīgā formā:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Piezīme

  • Programma Access ignorē rindiņu pārtraukumus SQL priekšrakstā. Tomēr ieteicams katram klauzulam pievienot rindiņu, lai palīdzētu jums un citiem uzlabot SQL priekšrakstu lasāmību.
  • Katrs priekšraksts SELECT beidzas ar semikolu (;). Semikols var būt redzams pēdējās teikuma beigās vai atsevišķā rindiņā SQL priekšraksta beigās.

Piemērs programmā Access

Tālāk ir parādīts, kā vienkārša atlases vaicājuma SQL priekšraksts varētu izskatīties programmā Access:

SQL objekta cilne, kurā redzams priekšraksts SELECT

1. klauzula SELECT

2. Klauzula FROM

3. klauzula WHERE

Šajā SQL priekšraksta piemērā ir rakstīts: "Atlasiet datus, kas tiek glabāti laukos ar nosaukumu E-pasta adrese un Uzņēmums no tabulas ar nosaukumu Kontaktpersonas, īpaši tos ierakstus, kuros lauka Pilsēta vērtība ir Rīga."

Apskatīsim piemēru pa vienai klauzulai, lai uzzinātu, kā darbojas SQL sintakse.

Klauzula SELECT

SELECT [E-mail Address], Company

Tā ir klauzula SELECT. Tas sastāv no operatora (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"), tas jāiekļauj kvadrātiekavās.

Klauzulā SELECT nav jānorāda, kurās tabulās ir lauki, un tā nevar norādīt nekādus nosacījumus, kuriem jāatbilst iekļaujamajiem datiem.

Klauzula SELECT priekšrakstā SELECT vienmēr tiek rādīta pirms klauzulas FROM.

Klauzula FROM

FROM Contacts

Tā ir klauzula FROM. Tas sastāv no operatora (FROM), kam seko identifikators (Contacts).

Klauzula FROM neuzskaita atlasāmos laukus.

Klauzula WHERE

WHERE City="Seattle"

Tā ir klauzula WHERE. Tas sastāv no operatora (WHERE), kam seko izteiksme (City="Seattle").

Piezīme

Atšķirībā no klauzulām SELECT un FROM klauzula WHERE nav priekšraksta SELECT obligāts elements.

Daudzas darbības, ko ļauj veikt SQL, var paveikt, izmantojot klauzulas SELECT, FROM un WHERE. Papildinformācija par šo klauzulu lietošanu ir sniegta šajos papildu rakstos:

Uz lapas sākumu

Rezultātu kārtošana: KĀRTOT PĒC

Līdzīgi kā Microsoft Excel, Access ļauj kārtot vaicājumu rezultātus datu lapā. Varat arī vaicājumā norādīt, kā vēlaties kārtot rezultātus, izpildot vaicājumu, izmantojot klauzulu ORDER BY. Ja izmantojat klauzulu ORDER BY, tā ir pēdējā klauzula SQL priekšrakstā.

Klauzula ORDER BY satur to lauku sarakstu, kurus vēlaties izmantot kārtošanai, tādā pašā secībā, kādā vēlaties lietot kārtošanas operācijas.

Piemēram, pieņemsim, ka rezultāti vispirms jāsakārto pēc lauka Uzņēmums vērtības dilstošā secībā un, ja ir ieraksti ar tādu pašu vērtību vērtībai Uzņēmums, pēc vērtības laukā E-pasta adrese augošā secībā. Klauzulai ORDER BY ir jāizskatās šādi:

ORDER BY Company DESC, [E-mail Address]

Piezīme

Pēc noklusējuma programma Access kārto vērtības augošā secībā (no A–Z, no mazākā līdz lielākajam). Tā vietā izmantojiet atslēgvārdu DESC, lai vērtības kārtotu dilstošā secībā.

Papildinformāciju par klauzulu ORDER BY skatiet tēmā Klauzula ORDER BY.

Uz lapas sākumu

Darbs ar apkopotiem datiem: GROUP BY un HAVING

Dažreiz ir jāstrādā ar apkopotiem datiem, piemēram, mēneša pārdošanas kopsummām vai dārgākajām krājumos. Lai to izdarītu, klauzulas SELECT laukam lietojiet apkopošanas funkciju. Piemēram, ja vēlaties, lai vaicājumā tiktu parādīts katra uzņēmuma norādīto e-pasta adrešu skaits, klauzula SELECT var izskatīties šādi:

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

Apkopošanas funkcijas, kuras varat izmantot, ir atkarīgas no izmantojamā laukā vai izteiksmē esošo datu tipa. Papildinformāciju par pieejamajām apkopošanas funkcijām skatiet rakstā SQL apkopošanas funkcijas.

To lauku norādīšana, kas netiek izmantoti apkopošanas funkcijā: Klauzula GROUP BY

Izmantojot apkopošanas funkcijas, parasti ir jāizveido arī klauzula GROUP BY. Klauzula GROUP BY uzskaita visus laukus, kuriem netiek lietota apkopošanas funkcija. Ja apkopošanas funkcijas lietojat visiem vaicājuma laukiem, klauzula GROUP BY nav jāveido.

Klauzula GROUP BY nekavējoties seko pēc klauzulas WHERE vai klauzulas FROM, ja nav klauzulas WHERE. Klauzula GROUP BY uzskaita laukus, kā tie ir redzami klauzulā SELECT.

Piemēram, turpinot iepriekšējo piemēru, ja klauzula SELECT lieto apkopošanas funkciju sadaļai [E-mail Address], bet ne Company, klauzula GROUP BY jāizskatās šādi:

GROUP BY Company

Papildinformāciju par klauzulu GROUP BY skatiet tēmā Klauzula GROUP BY.

Apkopojošo vērtību ierobežošana, izmantojot grupēšanas kritērijus: klauzula HAVING

Ja vēlaties izmantot kritērijus, lai ierobežotu rezultātus, bet lauks, kuram vēlaties lietot kritērijus, tiek izmantots apkopošanas funkcijā, nevarat izmantot klauzulu WHERE. Tā vietā ir jāizmanto klauzula HAVING. Klauzula HAVING darbojas kā klauzula WHERE, bet tiek izmantota apkopotiem datiem.

Piemēram, pieņemsim, ka klauzulas SELECT pirmajā laukā izmantojat funkciju AVG (kura aprēķina vidējo vērtību):

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

Ja vēlaties, lai vaicājums ierobežotu rezultātus, pamatojoties uz attiecīgās funkcijas COUNT vērtību, klauzulā Where attiecīgajam laukam nevar izmantot kritēriju. Tā vietā kritēriji ir jāievieto klauzulā HAVING. Piemēram, ja vēlaties, lai vaicājums atgrieztu rindas tikai tad, ja ar uzņēmumu ir saistīta vairāk nekā viena e-pasta adrese, klauzula HAVING var izskatīties šādi:

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

Piezīme

Vaicājumā var būt klauzula WHERE un HAVING — kritēriji laukiem, kas netiek izmantoti apkopošanas funkcijā, tiek iekļauti klauzulā WHERE, bet kritēriji laukiem, kuri tiek izmantoti kopā ar apkopošanas funkcijām, tiek iekļauti klauzulā HAVING.

Papildinformāciju par klauzulu HAVING skatiet tēmā Klauzula HAVING.

Uz lapas sākumu

Vaicājumu rezultātu apvienošana: UNION

Ja vēlaties pārskatīt visus datus, ko atgriezuši vairāki līdzīgi atlases vaicājumi, kopā kā apvienotu kopu, izmantojiet operatoru UNION.

Operators UNION ļauj apvienot divus priekšrakstus SELECT vienā. Kombinētajiem priekšrakstiem SELECT jābūt ar vienādu izvades lauku skaitu, vienādā secībā un ar vienādiem vai saderīgiem datu tipiem. Izpildot vaicājumu, dati no katras atbilstošo lauku kopas tiek apvienoti vienā izvades laukā, lai vaicājuma izvadē būtu tāds pats lauku skaits kā katrā no select priekšrakstiem.

Piezīme

Apvienošanas vaicājumā datu tips Number un Text ir saderīgi.

Izmantojot operatoru UNION, varat arī norādīt, vai vaicājuma rezultātos jāiekļauj rindu dublikāti, ja tādi ir, izmantojot atslēgvārdu ALL.

Apvienošanas vaicājumam, kas apvieno divus priekšrakstus SELECT, SQL pamatsintakse ir šāda:

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

Piemēram, pieņemsim, ka jums ir tabula ar nosaukumu Produkti un tabula ar nosaukumu Pakalpojumi. Abās tabulās ir lauki, kuros ir norādīts produkta vai pakalpojuma nosaukums, cena, garantija vai garantijas pieejamība un tas, vai piedāvājat produktu vai pakalpojumu ekskluzīvi. Lai gan tabulā Produkti ir ietverta garantijas informācija, savukārt tabulā Pakalpojumi tiek glabāta garantijas informācija, pamatinformācija ir tā pati (vai konkrētais produkts vai pakalpojums ietver kvalitātes solījumu). Lai apvienotu četrus laukus no abām tabulām, varat izmantot apvienošanas vaicājumu, piemēram, tālāk norādīto:

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

Papildinformāciju par priekšrakstu SELECT kombinēšanu, izmantojot operatoru UNION, skatiet rakstā Vairāku atlases vaicājumu rezultātu apvienošana, izmantojot apvienošanas vaicājumu.

Uz lapas sākumu