Pierakstīties, izmantojot Microsoft
Pierakstīties vai izveidot kontu
Sveicināti!
Atlasīt citu kontu.
Jums ir vairāki konti
Izvēlieties kontu, ar kuru vēlaties pierakstīties.
Access SQL: pamatjēdzienas, vārdnīca un sintakse

Ja vēlaties izgūt datus no datu bāzes, pieprasiet datus, izmantojot strukturētu vaicājumu valodu vai SQL. SQL ir datora valoda, kas ir ļoti līdzīga angļu valodai, taču datu bāzu programmas saprot. Katrs palaistais vaicājums izmanto SQL ainas.

Izprotot SQL darbību, varat izveidot labākus vaicājumus un vieglāk saprast, kā izlabot vaicājumu, kas neatgriež vēlamos rezultātus.

Šis raksts ietilpst rakstu kopā par Access SQL. Šajā rakstā ir aprakstīta SQL pamatiešana datu atlasei un sniegti piemēri SQL sintakses attēlošanai.

Š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, darbam ar datiem izmanto SQL. Atšķirībā no daudzām datora valodām, SQL nav grūti lasīt un saprast pat iesācējiem. Tāpat kā daudzas datora valodas, ARĪ SQL ir starptautisks standarts, ko atpazīst standartiem, piemēram, ISOun ANSI.

Izmantojiet SQL, lai aprakstītu datu kopas, kas var palīdzēt atbildēt uz jautājumiem. Izmantojot SQL, jāizmanto pareizā sintakse. Sintakse ir kārtulu kopa, kas nodrošina pareizas valodas elementu kombinēšanu. SQL sintakses pamatā ir angļu valodas sintakse, un tā izmanto daudzus tos pašus elementus, kas visual Basic for Applications (VBA) sintaksē.

Piemēram, vienkāršs SQL priekšraksts, kas izgūst sarakstu ar uzvārdiem kontaktpersonām, kuru vārds ir Marija, varētu izskatīties šādi:

SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';

Piezīme.: SQL tiek izmantots ne tikai darbībām ar datiem, bet arī datu bāzes objektu, piemēram, tabulu, izveidošanai un maiņai. SQL daļa, kas tiek izmantota datu bāzes objektu izveidei un maiņai, tiek dēvēta par datu definēšanas valodu (DDL). Šī tēma neattiecas uz 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, ir jāraksta priekšraksts SELECT. Priekšraksts SELECT satur pilnu datu kopas aprakstu, kuru vēlaties iegūt no datu bāzes. Tas ietver:

  • Kādās tabulās ir dati.

  • Kā ir saistīti dati no dažādiem avotiem.

  • Kuri lauki vai aprēķini izveidos datus.

  • Kritēriji, kuriem datiem jāatbilst, ir jāiekļauj.

  • Vai un kā kārtot rezultātus.

SQL klauzulas

Līdzīgi teikumam SQL priekšrakstam ir klauzulas. Katra klauzula izpilda SQL priekšraksta funkciju. Priekšrakstā SELECT ir obligāti dažas klauzulas. Nākamajā tabulā ir norādītas visbiežāk lietotās SQL klauzulas.

SQL klauzula

Funkcija

Obligāts

SELECT

Saraksti laukiem, kuros ir interešu dati.

FROM

Saraksti tabulas, kurās ir klauzulā SELECT uzskaitītie lauki.

WHERE

Norāda lauku kritērijus, kas jāizpilda katram ierakstam, lai tie tiktu iekļauti rezultātos.

ORDER BY

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

GROUP BY

SQL priekšrakstā, kurā ir apkopošanas funkcijas, uzskaita laukus, kas nav summēti 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

Katru SQL klauzulu veido termini, kas ir līdzīgi runas daļām. Tālāk sniegtajā tabulā ir uzskaitīti SQL terminu tipi.

SQL termins

Līdzīga runas daļa

Definīcija

Piemērs

identifikators

lietvārds

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

Klienti. [Tālruņa numurs]

operators

darbības vārds vai adverb

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 kombinācija, kas tiek novērtēta ar vienu vērtību.

>= Produkti. [Vienības cena]

Uz lapas sākumu

Pamata SQL klauzulas: SELECT, FROM un WHERE

SQL priekšrakstam ir vispārīga forma:

SELECT field_1
FROM table_1
WHERE criterion_1
;

Piezīmes.: 

  • Programma Access SQL priekšrakstā ignorē rindiņu pārtraukumus. Tomēr apsveriet iespēju izmantot līniju katrai klauzulai, lai uzlabotu SQL priekšrakstu lasāmību gan sev, gan citiem.

  • Katrs priekšraksts SELECT beidzas ar semikolu (;). Semikols var tikt parādīts pēdējās klauzulas beigās vai rindā pašā SQL priekšraksta beigās.

Piemērs programmā Access

Tālāk ir parādīts, kā sql priekšraksts vienkāršam atlases vaicājumam var izskatīties programmā Access:

SQL objekta cilne, kurā redzams priekšraksts SELECT

1. Klauzula SELECT

2. Klauzula FROM

3. Klauzula WHERE

Šis SQL priekšraksta piemērs lasa "Atlasiet datus, kas tiek glabāti laukos ar nosaukumu E-pasta adrese un Uzņēmums no tabulas Kontaktpersonas, īpaši tie ieraksti, kuros lauka Pilsēta vērtība ir Sietla."

Apskatīsim piemēru ar vienu klauzulu, lai uzzinātu, kā SQL sintakse darbojas.

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.

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

Klauzula SELECT vienmēr tiek parādīta priekšraksta SELECT klauzulas FROM priekšā.

Klauzula FROM

FROM Contacts

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

Klauzulā FROM nav saraksts ar atlasītajiem laukiem.

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 obligāts priekšraksta SELECT elements.

Daudzas DARBĪBAS, kuras var veikt SQL, var veikt, izmantojot klauzulas SELECT, FROM un WHERE. Papildinformācija par to, kā izmantojat šīs klauzulas, ir sniegta šajos rakstos:

Uz lapas sākumu

Rezultātu kārtošana: ORDER BY

Tāpat kā Microsoft Excel, arī Access ļauj kārtot vaicājuma rezultātus datu lapā. Vaicājumā varat arī norādīt, kā vēlaties kārtot rezultātus vaicājuma izpildes laikā, izmantojot klauzulu ORDER BY. Ja izmantojat klauzulu ORDER BY, tā ir pēdējā klauzula SQL priekšrakstā.

Klauzulā ORDER BY ir to lauku saraksts, kurus vēlaties izmantot kārtošanai, tādā pašā secībā, kādā jālieto kārtošanas darbības.

Piemēram, pieņemsim, ka vēlaties, lai rezultāti vispirms tiek kārtoti pēc lauka Uzņēmums vērtības dilstošā secībā, un, ja pastāv ieraksti ar tādu pašu vērtību uzņēmumam, tie tiek sakārtoti blakus vērtībām laukā E-pasta adrese augošā secībā. Klauzulai ORDER BY ir līdzīgai šādai klauzulai:

ORDER BY Company DESC, [E-mail Address]

Piezīme.: Pēc noklusējuma programma Access kārto vērtības augošā secībā (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žkārt jūs vēlaties strādāt ar apkopotiem datiem, piemēram, kopējos pārdošanas apjomus mēnesī vai visdārgākās preces krājumos. Lai to izdarītu, klauzulā SELECT laukam apkopošanas funkcija attēlu. Piemēram, ja vēlaties, lai vaicājumā tiktu rādīts katram uzņēmumam norādīto e-pasta adrešu skaits, klauzula SELECT varētu būt līdzīgai šādai:

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

Apkopošanas funkcijas, kuras varat izmantot, ir atkarīgas no tā, kāda tipa dati atrodas laukā vai izteiksmē, kuru vēlaties izmantot. 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 neizmantojat apkopošanas funkciju. Ja lietojat apkopošanas funkcijas visiem vaicājuma laukiem, klauzula GROUP BY nav jāizveido.

Klauzula GROUP BY ir uzreiz aiz 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 uz [E-pasta adrese], bet ne uz Uzņēmums, klauzulai GROUP BY ir līdzīga šī informācija:

GROUP BY Company

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

Vērtību apkopošanas ierobežošana, izmantojot grupas 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 apkopotajiem datiem.

Piemēram, pieņemsim, ka izmantojat funkciju AVG (kas aprēķina vidējo vērtību) ar pirmo lauku klauzulā SELECT:

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

Ja vēlaties, lai vaicājums ierobežotu rezultātus, pamatojoties uz šīs funkcijas COUNT vērtību, nevarat izmantot kritēriju šim laukam klauzulā WHERE. Tā vietā ievietojiet kritērijus klauzulā HAVING. Piemēram, ja vēlaties, lai vaicājums atgrieztu rindas tikai tad, ja ir vairākas ar uzņēmumu saistītas e-pasta adreses, klauzula HAVING varētu būt līdzīgai šādai:

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

Piezīme.: Vaicājumam var būt klauzula WHERE un klauzula HAVING — kritēriji laukiem, kas netiek izmantoti apkopošanas funkcijā, atrodas klauzulā WHERE, bet kritēriji laukiem, kas tiek izmantoti ar apkopošanas funkcijām, atrodas 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 kopā pārskatīt visus datus, ko atgriež vairāki līdzīgi atlases vaicājumi, kā kombinēto kopu, izmantojiet operatoru UNION.

Operators UNION ļauj apvienot divus priekšrakstus SELECT vienā. Apvienotajiem priekšrakstiem SELECT jābūt vienādam izvades lauku skaitam vienā un tajā pašā secībā un ar tiem pašiem 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ā katram atlases priekšrakstam.

Piezīme.: Ar savienojuma vaicājumu datu tipi Skaitlis un Teksts 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ēgas vārdu ALL.

Apvienošanas vaicājuma, kas apvieno divus priekšrakstus SELECT, pamata SQL sintakse 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 cita tabula ar nosaukumu Pakalpojumi. Abās tabulās ir lauki, kuros ir produkta vai pakalpojuma nosaukums, cena, garantija vai garantijas pieejamība, kā arī informācija par produktu vai pakalpojumu tikai par produktu vai pakalpojumu. Lai gan tabulā Produkti tiek glabāta garantijas informācija, un pakalpojumu tabulā tiek glabāta garantijas informācija, pamatinformācija ir tā pati (neatkarīgi no tā, vai konkrētam produktam vai pakalpojumam ir garantēta kvalitāte). Apvienošanas vaicājumu, piemēram, tālāk norādīto, var izmantot, lai apvienotu četrus laukus no abām tabulām:

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

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?
Nospiežot Iesniegt, jūsu atsauksmes tiks izmantotas Microsoft produktu un pakalpojumu uzlabošanai. Jūsu IT administrators varēs vākt šos datus. Paziņojums par konfidencialitāti.

Paldies par jūsu atsauksmēm!

×