Ievietot, dzēst, atjaunināt ierakstus datu bāzē. Ievads SQL priekšrakstos; vienkāršāko SQL vaicājumu izveide programmā Access, izmantojot komandu SELECT, izmantojot klauzulu IN, BETWEEN, LIKE operatoriem GROUP BY

06.04.2023

Noteikumi kvadrātiekavās nozīmē [izvēles daļu] konstrukcijas. Vertikālā josla norāda izvēli starp opcijām (var1|var2). Elipse nozīmē iespējamu atkārtošanos vairākas reizes - 1 reizi, 2 reizes [, ...]

ATLASĪT paziņojumu

Instruē datu bāzes dzinēju Microsoft Access atgriezt informāciju no datu bāzes kā ierakstu kopu.

Sintakse

ATLASĪT[ predikāts] { * | tabula.* | [tabula.]lauks1

[, [tabula.]lauks2 [, ...]]}
NO tabula_izteiksme [, ...]




SELECT priekšraksts ietver šādus elementus.

Elements

Apraksts

Predikāts

Viens no šiem predikātiem: ALL, DISTINCT, DISTINCTROW vai TOP. Predikāti tiek izmantoti, lai ierobežotu atgriezto ierakstu skaitu. Ja predikāts nav norādīts, noklusējuma vērtība ir VISI.

Norāda, ka visi lauki ir atlasīti no dotās tabulas vai tabulām

Tabula

Tās tabulas nosaukums, no kuras laukiem tiek atlasīti ieraksti

lauks1, lauks2

To lauku nosaukumi, kas satur izgūtos datus. Ja ir norādīti vairāki lauki, dati tiks izgūti tādā secībā, kādā ir norādīti to nosaukumi.

aizstājvārds1, aizstājvārds2

Nosaukumi, kas tiek izmantoti kā kolonnu virsraksti oriģinālo kolonnu nosaukumu vietā tabulas

tabula_izteiksme

Viens vai vairāki tabulu nosaukumi, kas satur izgūstamos datus.

ārējā_datu bāze

Tās datu bāzes nosaukums, kurā ir komponentā norādītās tabulas tabula_izteiksme ja tie nav pašreizējā datu bāzē

Piezīmes

Lai veiktu šo darbību, Microsoft Access datu bāzes programma meklē norādīto tabulu(-as), izvelk vajadzīgās kolonnas, atlasa rindas, kas atbilst norādītajiem kritērijiem, un kārto vai sagrupē iegūtās rindas norādītajā secībā.

SELECT priekšraksti nemaina datu bāzes datus.

SELECT priekšraksts parasti ir pirmais SQL priekšraksta vārds (SQL priekšraksts (string). Izteiksme, kas definē SQL komandu, piemēram, SELECT, UPDATE vai DELETE, un ietver klauzulas, piemēram, WHERE vai ORDER BY. SQL priekšraksti/ virknes parasti izmanto vaicājumos un apkopotās funkcijās.). Lielākā daļa SQL priekšrakstu ir SELECT vai SELECT...INTO priekšraksti.

SELECT priekšraksta minimālā sintakse ir šāda:

ATLASĪT lauki NO tabula

Varat izmantot zvaigznīti (*), lai atlasītu visus tabulas laukus. Nākamajā piemērā tiek atlasīti visi tabulas Darbinieki lauki.

SELECT * FROM Darbinieki;

Ja lauka nosaukums ir iekļauts vairāk nekā vienā tabulā FROM klauzulā, pirms tā ievadiet tabulas nosaukumu un paziņojumu «.» (punkts). Nākamajā piemērā lauks Nodaļa ir redzams tabulās Darbinieki un Priekšnieki. SQL priekšraksts atlasa nodaļas no tabulas Darbinieki un priekšnieku vārdus no tabulas Priekšnieki.

IZVĒLIES Darbiniekus. Nodaļa, vadītāji. Vadītāja vārds FROM Employees IEKŠĒJS PIEVIENOJIES Vadītājiem WHERE Darbinieki. Nodaļa = vadītāji. Nodaļa;

Veidojot objektu RecordSet, Microsoft Access datu bāzes dzinējs izmanto tabulas lauka nosaukumu kā objekta "Field" nosaukumu objektā. rekorda uzstādījums. Ja lauka nosaukums ir jāmaina vai to nenodrošina izteiksme, kas ģenerē lauku, izmantojiet rezervētu vārdu (Rezervēts vārds. Vārds, kas ir valodas elements, piemēram, Visual Basic valoda. operatori un objekti.) AS. Nākamajā piemērā parādīts, kā galvene "Diena" tiek izmantota, lai nosauktu atgriezto objektu Lauks saņemtajā objektā rekorda uzstādījums.

SELECT Birthday AS Day NO Darbiniekiem;

Strādājot ar apkopotām funkcijām vai vaicājumiem, kas atgriež neskaidrus vai identiskus objektu nosaukumus Lauks, jums vajadzētu izmantot AS klauzulu, lai izveidotu citu objekta nosaukumu Lauks. Nākamajā piemērā atgrieztais objekts Lauks saņemtajā objektā rekorda uzstādījums ar nosaukumu "Tautas skaitīšana".

SELECT COUNT(EmployeeCode) AS Census FROM Employees;

Strādājot ar SELECT paziņojumu, varat izmantot papildu klauzulas, lai vēl vairāk ierobežotu un sakārtotu saņemtos datus. Papildus informācija skatiet izmantotā piedāvājuma palīdzības sadaļu.

NO klauzulas

Norāda tabulas un vaicājumus, kas satur SELECT priekšrakstā norādītos laukus.

Sintakse

ATLASĪT lauka_saraksts
NO tabula_izteiksme

SELECT priekšraksts, kas satur klauzulu FROM, ietver šādus elementus:

Elements

Apraksts

lauka_saraksts

tabula_izteiksme

Izteiksme, kas definē vienu vai vairākas tabulas – datu avotus. Izteiksme var būt tabulas nosaukums, saglabātā vaicājuma nosaukums vai rezultāta izteiksme, kas izveidota, izmantojot darbības INNER JOIN, LEFT JOIN vai RIGHT JOIN.

ārējā_datu bāze

Pilns ceļš uz ārējo datu bāzi, kurā ir visas norādītās tabulas tabula_izteiksme

Piezīmes


FROM klauzulas klātbūtne pēc SELECT priekšraksta ir obligāta.

Tabulu saraksta secība tabula_izteiksme nav nozīmes.

Saistīto tabulu izmantošana (Saistītā tabula. Tabula, kas tiek glabāta failā, kas nepieder atvērtai datu bāzei, bet ir pieejama no Microsoft Access. Lietotājam ir iespēja pievienot, dzēst un modificēt ierakstus saistītajā tabulā, bet nevar mainīt tā struktūru.) teikuma IN vietā varat veikt datu ieguves procesu no ārējā bāze dati kļūst vienkāršāki un efektīvāki.

Tālāk esošajā piemērā parādīts, kā izgūt datus no tabulas Darbinieki.

IZVĒLĒTIES Uzvārds, Vārds

NO Darbiniekiem;

Norādiet SQL vaicājumiem atlasītos ierakstus (SQL (strukturētā vaicājumu valoda). Strukturēta vaicājumu un datu bāzes programmēšanas valoda, ko plaši izmanto, lai piekļūtu datiem, veiktu vaicājumus, atjauninātu un apstrādātu datus relāciju DBVS.).

Sintakse

ATLASĪT ]]
NO tabula

SELECT priekšraksts, kas satur šos predikātus, ietver šādus komponentus:

Komponents

Apraksts

Tas nozīmē, ja nav iekļauts neviens no predikātiem. Microsoft Access datu bāzes programma atlasa visus ierakstus, kas atbilst SQL priekšraksta nosacījumiem (SQL priekšraksts (virkne). Izteiksme, kas definē SQL komandu, piemēram, SELECT, UPDATE vai DELETE, un ietver klauzulas, piemēram, WHERE vai ORDER BY). SQL priekšraksti/virknes parasti izmanto vaicājumos un apkopotās funkcijās.). Šie divi identiski piemēri parāda, kā atgriezt visus ierakstus tabulā Darbinieki.

NO darbiniekiem

PASŪTĪJUMS PĒC EmployeeCode;

NO darbiniekiem

PASŪTĪJUMS PĒC EmployeeCode;

Izslēdz ierakstus, kas satur dublētus datus atlasītajos laukos. Vaicājuma rezultāti ietver tikai unikālas vērtības katrs no laukiem, kas uzskaitīti priekšrakstā SELECT. Piemēram, dažiem darbiniekiem tabulā Darbinieki var būt vienāds uzvārds. Ja divos ierakstos laukā Uzvārds ir uzvārds Ivanovs, tālāk esošais SQL priekšraksts atgriež tikai vienu ierakstu, kurā ir uzvārds Ivanovs.

ATLASĪT ATŠĶIRĪGU

Ja komponents DISTINCT tiek izlaists, vaicājums atgriež abus ierakstus ar uzvārdu Ivanovs.

Ja klauzulā SELECT ir vairāki lauki, visu lauku vērtību kombinācija tiek iekļauta vaicājuma rezultātos tikai tad, ja tā ir unikāla šim ierakstam.

Vaicājuma, kurā tiek izmantots komponents DISTINCT, rezultāti netiek atjaunināti, lai atspoguļotu turpmākās citu lietotāju veiktās izmaiņas.

Neietver ieraksta datus, kas pilnībā atkārtojas un nesatur atsevišķus laukus ar vieniem un tiem pašiem datiem. Pieņemsim, ka ir izveidots vaicājums, kas ar lauku "CustomerCode" savieno tabulas "Klienti" un "Pasūtījumi". Tabulā Klienti nav dublētu klientu ID lauku, taču tie pastāv tabulā Pasūtījumi, jo katram klientam var būt vairāki pasūtījumi. Šis SQL priekšraksts parāda, kā izmantot komponentu DISTINCTROW, lai uzskaitītu organizācijas, kas veikušas vismaz vienu pasūtījumu, neminot šo pasūtījumu informāciju.

IZVĒLĒTIES DISTINCTROW Vārds FROM Klienti INNER JOIN Pasūtījumi

ON Klienti. CustomerCode = Pasūtījumi. Klienta kods

PASŪTĪT PĒC vārda;

Ja DISTINCTROW komponents ir izlaists, vaicājums atgriež vairākas rindas katrai organizācijai, kas pasūtījusi vairāk nekā vienu reizi.

Komponents DISTINCTROW darbojas tikai tad, ja tiek atlasīti lauki no dažām vaicājumā izmantotajām tabulām. DISTINCTROW komponents tiek ignorēts, ja vaicājumā ir iekļauta tikai viena tabula vai ja lauki tiek izgūti no visām tabulām.

TOPS n

Atgriež noteiktu skaitu ierakstu, kas ir vieni no pirmajiem vai pēdējie ieraksti ORDER BY klauzulā norādītais diapazons. Pieņemsim, ka vēlaties parādīt 25 labāko skolēnu vārdus 1994. gada klasē.

Vārds Uzvārds

KUR Izlaiduma gads = 2003

PASŪTĪT PĒC GradePointAverage DESC;

Ja neiekļaujat klauzulu ORDER BY, vaicājums atgriezīs nejaušu 25 ierakstu kopu no tabulas Studenti, kas atbilst WHERE klauzulai.

TOP predikāts neprasa izvēli starp vienādām vērtībām. Ja iepriekšējā piemēra 25. un 26. ierakstam būtu vienāds GPA, vaicājums atgrieztu 26 ierakstus.

Varat arī izmantot PERCENT rezervēto vārdu, lai atgrieztu kādu procentuālo daļu no pirmajiem vai pēdējiem ierakstiem diapazonā, kas norādīts klauzulā ORDER BY. Pieņemsim, ka izlaidumā vēlaties parādīt 25 labāko skolēnu vietā zemākos 10%.

IZVĒLĒTIES TOP 10 PROCENTUS

Vārds Uzvārds

KUR Izlaiduma gads = 2003

PASŪTĪT PĒC GradePointAverage ASC;

ASC predikāts norāda vērtību izvadi no diapazona apakšējās daļas. Vērtībai, kas seko TOP predikātam, ir jābūt vesela tipa vērtībai (Integer datu tips. Pamatdatu tips, ko izmanto veselu skaitļu vērtību glabāšanai. Vesela skaitļa mainīgais tiek saglabāts kā 64 bitu (8 baitu) skaitlis diapazonā -32768 uz 32767. ) neparakstīts.

TOP predikāts neietekmē spēju atjaunināt vaicājumu.

tabula

Tabulas nosaukums, no kuras tiek izgūti ieraksti.

Skatīt arī

ATLASĪT paziņojumu

NO klauzulas

KUR klauzula

Nosaka, kuri ieraksti no tabulām, kas uzskaitītas klauzulā FROM, tiek apstrādāti ar priekšrakstiem SELECT, UPDATE vai DELETE.

Sintakse

ATLASĪT lauka_saraksts
NO tabula_izteiksme
KUR atlases_nosacījumi

SELECT priekšrakstam, kas satur klauzulu WHERE, ir šādas daļas.

daļa

Apraksts

lauka_saraksts

Lauka vai lauku nosaukums, kas izgūts kopā ar jebkuriem aizstājvārdiem (Alias (SQL). Alternatīvs nosaukums tabulai vai laukam izteiksmē. Pseidonīmi parasti tiek izmantoti kā īsāki tabulu vai lauku nosaukumi, lai vēlāk programmās būtu vieglāk izmantot atsauci, lai novērstu neskaidras atsauces un aprakstošākus nosaukumus, parādot vaicājuma rezultātus.), predikātiem (ALL, DISTINCT, DISTINCTROW vai TOP) vai ar jebkuru citu priekšraksta SELECT opciju.

tabula_izteiksme

Tabulas vai tabulu nosaukums, no kuras tiek izgūti dati.

atlases_nosacījumi

Izteiksme (Izteiksme. Matemātisko un loģisko operatoru, konstantu, funkciju, lauku nosaukumu, vadīklu un īpašību kombinācija, kuras rezultātā tiek iegūta viena vērtība. Izteiksme var veikt aprēķinus, apstrādāt tekstu vai apstiprināt datus.), kam jāatbilst vaicājuma rezultātos iekļautie ieraksti.

Piezīmes

Microsoft Access datu bāzes programma atlasa ierakstus, kas atbilst WHERE klauzulā uzskaitītajiem nosacījumiem. Ja WHERE klauzula nav norādīta, vaicājums atgriež visas tabulas rindas. Ja vaicājumā ir norādītas vairākas tabulas, bet nav norādīta WHERE vai JOIN klauzula, vaicājums rada Dekarta precizitāti (Dekarta produkts. Tas ir SQL SELECT priekšraksta rezultāts, kuram ir FROM klauzula, kas atsaucas uz divām vai vairākām tabulām un nav WHERE vai JOIN. klauzula, kas nosaka savienošanas metodi.) tabulas.

WHERE klauzula nav obligāta, bet, ja tā ir, tai ir jāseko klauzulai FROM. Piemēram, varat atlasīt visus pārdošanas nodaļas darbiniekus (WHERE nodaļa = "Pārdošana") vai visus klientus vecumā no 18 līdz 30 gadiem (WHERE Vecums no 18 līdz 30).

Ja JOIN klauzula netiek izmantota vairāku tabulu SQL savienojuma darbībai, iegūtais objekts Ierakstu kopa to atjaunināt nebūs iespējams.

Klauzula WHERE ir līdzīga klauzulai HAVING un definē atlasītos ierakstus. Pēc tam, kad ieraksti ir sagrupēti ar klauzulu GROUP BY, klauzula HAVING arī nosaka, kuru ierakstu parādīt.

Klauzula WHERE tiek izmantota, lai izslēgtu ierakstus, kas nav jāgrupē, izmantojot klauzulu GROUP BY.

Izmantojiet dažādas izteiksmes, lai noteiktu, kurus ierakstus atgriež SQL priekšraksts. Piemēram, šāds SQL priekšraksts atlasa visus darbiniekus, kuru alga ir lielāka par Rs.

SELECT Uzvārds, Alga FROM Darbinieki WHERE Alga > 21000;

WHERE klauzula var saturēt līdz 40 izteiksmēm, kas savienotas ar loģiskiem operatoriem (piemēram, UN Un VAI).

Ievadot lauka nosaukumu ar atstarpēm vai pieturzīmēm, ievietojiet to kvadrātiekavās (). Piemēram, klientu informācijas tabulā var būt informācija par konkrētiem klientiem.

ATLASĪT [Klienta iecienītākais restorāns]

Sniedzot argumentu atlases_nosacījumi, datuma literāļi (Datuma literāls. Jebkura derīga formāta rakstzīmju secība, kas ietverta ciparu zīmēs (#). Derīgie formāti ir valodas un standartu iestatījumos norādītais datuma formāts un universālais datuma formāts.) ir jāattēlo ASV formātā, pat ja tiek izmantots ne-ASV formāts.Microsoft Access datu bāzes dzinēja versija. Piemēram, datums "1996. gada 10. maijs" ir rakstīts kā 10/5/96 Apvienotajā Karalistē un 05/10/1996 Krievijā. Neaizmirstiet iekļaut datuma literāļus skaitļu zīmēs (#), kā parādīts turpmākajos piemēros.

Lai Apvienotās Karalistes datubāzē atrastu ierakstus par 1996. gada 10. maiju, izmantojiet šādu SQL priekšrakstu:

SELECT * FROM Pasūtījumi WHERE ShipDate = #10.05.1996#;

Varat arī izmantot funkciju DatumsVērtība, atpazīstot starptautiskos parametrus, ko nosaka Microsoft Windows®. Piemēram, Krievijai izmantojiet šādu kodu:

SELECT * FROM Pasūtījumi WHERE Piegādes datums = DateValue("05/10/1996");

Un šāds kods ir paredzēts Apvienotajai Karalistei:

SELECT * FROM Pasūtījumi WHERE ShippingDate = DateValue("10/5/96");

Piezīme. Ja atlases kritēriju rindā norādītās kolonnas tips ir GUID (Replica ID (GUID). 16 baitu lauks Microsoft Access datu bāzē, ko izmanto unikāliem identifikatoriem replikācijā. GUID izmanto, lai identificētu replikas, kopiju kopas, tabulas, ierakstus un citus objektus.Microsoft Access datu bāzēs GUID sauc par replika ID.), filtra nosacījumos izmantotā sintakse nedaudz atšķiras.

WHERE ReplicaID=(GUID(AB-CDEF0ABCDEF))

Pārliecinieties, vai ligzdotās iekavas un defises ir ievietotas pareizi.

Avota lapa: http://office. /en-us/access/HA.aspx? pid=CH

GROUP PĒC piedāvājuma

Apvieno ierakstus ar tādu pašu vērtību, kas atrodas norādītajā lauku sarakstā, vienā ierakstā. Kopsavilkuma vērtība tiek ģenerēta katram ierakstam, ja, piemēram, SELECT priekšrakstā ir iekļauta SQL apkopošanas funkcija summa vai Skaitīt.

Sintakse

ATLASĪT lauka_saraksts
NO tabula
KUR atlases_nosacījums

SELECT priekšraksts, kas satur klauzulu GROUP BY, ietver šādus elementus:

Elements

Apraksts

lauka_saraksts

Lauku nosaukumi, kas izgūti kopā ar jebkuriem aizstājvārdiem (Alias (SQL). Alternatīvs tabulas vai lauka nosaukums izteiksmē. Pseidonīmi parasti tiek izmantoti kā īsāki tabulu vai lauku nosaukumi, lai atvieglotu vēlākas atsauces programmās, lai novērstu neskaidras atsauces, un lai iegūtu informatīvākus nosaukumus, parādot vaicājuma rezultātus.) un statistikas SQL funkcijas, predikāti (ALL, DISTINCT, DISTINCTROW vai TOP) vai citas SELECT priekšraksta opcijas

tabula

atlases_nosacījumi

atlases nosacījums. Ja paziņojumā ir ietverta klauzula WHERE, pēc tam, kad tā ir piemērota ierakstiem, vērtības tiks grupētas pēc Microsoft Access datu bāzes dzinēja.

group_field_list

group_field_list

Piezīmes

GROUP BY klauzula nav obligāta.

Ja SQL agregāti nav iekļauti priekšrakstā SELECT, kopsavilkuma vērtības netiek aprēķinātas.

GROUP BY lauka vērtības, kas ir Null (Null. Vērtība, ko var ievadīt laukā vai izmantot izteiksmēs un vaicājumos, lai norādītu trūkstošus vai nezināmus datus. Programmā Visual Basic atslēgvārds Null norāda Null vērtību. Daži lauki, piemēram, primārās atslēgas lauki, nevar saturēt Null vērtības.) ir grupēti un netiek izlaisti. Tomēr vērtības Null neviena no SQL statistikas funkcijām netiek novērtēta.

Klauzula WHERE tiek izmantota, lai izslēgtu rindas, kuras nav jāgrupē. Klauzula HAVING tiek izmantota, lai filtrētu ierakstus pēc grupēšanas.

Lauki no GROUP BY lauku saraksta, kas nesatur Memo tipa datus (Datu tips "MEMO Field". Lauka datu tips Microsoft Access datu bāzē. Laukā MEMO var būt līdz 65535 rakstzīmēm.) vai OLE objekta ( Datu tips "OLE objekta lauks". Lauka datu tips, ko izmanto, lai saglabātu objektus no citām lietojumprogrammām, kas saistītas ar Microsoft Access datu bāzi vai ir iegultas tajā.) var attiekties uz jebkuru lauku jebkurā tabulā, kas norādīta klauzulā FROM, pat ja lauks nav iekļauts paziņojumā SELECT. Lai to izdarītu, pietiek ar to, ka priekšrakstā SELECT ir vismaz viena SQL apkopošanas funkcija. Microsoft Access datu bāzes dzinējs neļauj grupēt pēc laukiem, kas satur "MEMO lauka" vai "OLE objekta" tipa datus.

Visiem laukiem SELECT lauku sarakstā ir jābūt ietvertiem klauzulā GROUP BY vai arī jābūt SQL apkopošanas funkcijas argumentiem.

Skatīt arī

ATLASĪT paziņojumu

SELECT...INTO paziņojums

Predikāti ALL, DISTINCT, DISTINCTROW, TOP

NO klauzulas

IR piedāvājums

PASŪTĪT PĒC Piedāvājuma

KUR klauzula

SQL statistikas funkcijas

Avota lapa: http://office. /en-us/access/HA.aspx? pid=CH

IR piedāvājums

Norāda grupētus ierakstus, kas jāparāda priekšrakstā SELECT ar klauzulu GROUP BY. Kad ieraksti ir sagrupēti ar klauzulu GROUP BY, klauzulā HAVING tiks parādīti ieraksti, kas atbilst tās nosacījumiem.

Sintakse

ATLASĪT lauka_saraksts
NO tabula
KUR izvēles_nosacījumi
GROUP BY group_field_list

SELECT priekšraksts, kas satur klauzulu HAVING, ietver šādus elementus:

Elements

Apraksts

lauka_saraksts

Lauku nosaukumi, kas ielādēti ar jebkuriem aizstājvārdiem (Alias (SQL). Alternatīvs nosaukums tabulai vai laukam izteiksmē. Pseidonīmi parasti tiek izmantoti kā īsāki tabulu vai lauku nosaukumi, lai atvieglotu vēlākas atsauces programmās, lai novērstu neskaidras atsauces, un lai iegūtu jēgpilnākus nosaukumus, parādot vaicājuma rezultātus.) un SQL agregātus, predikātus (ALL, DISTINCT, DISTINCTROW vai TOP) vai citas SELECT priekšraksta opcijas.

tabula

Tabulas nosaukums, no kuras tiek ielādēti ieraksti

atlases_nosacījums

atlases nosacījums. Ja priekšrakstā ir klauzula WHERE, pēc tam, kad tas ir piemērots ierakstiem, Microsoft Access datu bāzes programma grupēs vērtības.

group_field_list

Lauku nosaukumi (ne vairāk kā 10), ko izmanto ierakstu grupēšanai. Nosaukuma secība group_field_list nosaka grupēšanas līmeni - no augstākā līdz zemākajam

grupas_nosacījums

Izteiksme, kas norāda, kuri ieraksti jāparāda

Piezīmes

HAVING klauzula nav obligāta.

Klauzula HAVING ir līdzīga WHERE klauzulai, kas nosaka ierakstu atlasi. Pēc ierakstu grupēšanas ar klauzulu GROUP BY klauzula HAVING nosaka, kurus ierakstus parādīt.

SELECTTypeCode,

Summa (noliktavā)

NO produktiem

GROUP BY TypeCode

HAVING Sum (InStock) > 100 Un Like "TEL*";

Klauzulā HAVING var būt līdz 40 izteiksmēm, kas saistītas ar loģiskiem operatoriem, piemēram Un Un Or.

Avota lapa: http://office. /en-us/access/HA.aspx? pid=CH

PASŪTĪT PĒC Piedāvājuma

Sakārto vaicājuma atgrieztos ierakstus augošā vai dilstošā secībā pēc norādītā(-o) lauka(-u) vērtībām.

Sintakse

ATLASĪT lauka_saraksts
NO tabula
KUR atlases_nosacījums
[, lauks2 ][, ...]]]

SELECT priekšraksts, kas satur klauzulu ORDER BY, ietver šādus elementus.

Elements

Apraksts

lauka_saraksts

Lauku nosaukumi, kas izgūti kopā ar jebkuriem aizstājvārdiem (Alias (SQL). Alternatīvs tabulas vai lauka nosaukums izteiksmē. Pseidonīmi parasti tiek izmantoti kā īsāki tabulu vai lauku nosaukumi, lai atvieglotu vēlākas atsauces programmās, lai novērstu neskaidras atsauces, un lai iegūtu jēgpilnākus nosaukumus, parādot vaicājuma rezultātus.) un SQL agregātus, predikātus (ALL, DISTINCT, DISTINCTROW vai TOP) vai citas SELECT priekšraksta opcijas.

tabula

Tabulas nosaukums, no kuras tiek izgūti ieraksti

atlases_nosacījumi

atlases nosacījumi. Ja paziņojumā ir WHERE klauzula, tad pēc tā piemērošanas ierakstiem Microsoft Access datu bāzes programma sakārtos ierakstu vērtības.

lauks1, lauks2

To lauku nosaukumi, pēc kuriem tiek kārtoti ieraksti.

Piezīmes

Klauzula ORDER BY nav obligāta. To vajadzētu izmantot, ja nepieciešams parādīt datus sakārtotā veidā.

Noklusējuma kārtošanas secība ir (Kārtošanas secība. Veids, kā sakārtot datus, pamatojoties uz to vērtībām un veidu. Datus var kārtot alfabētiskā secībā, pēc skaitliskās vērtības vai pēc datuma. Kārtošanas secība var būt augošā (no 0 līdz 100, no A līdz Z) vai dilstošā (no 100 līdz 0, no Z līdz A.) augošā (no A līdz Z, no 0 līdz 9). Tālāk esošie piemēri parāda darbinieku vārdu kārtošanu pēc uzvārda.

IZVĒLĒTIES Uzvārds, Vārds

NO darbiniekiem

PASŪTĪT PĒC Uzvārda;

IZVĒLĒTIES Uzvārds, Vārds

NO darbiniekiem

PASŪTĪT PĒC Uzvārda ASC;

Lai kārtotu laukus dilstošā secībā (no Z līdz A, no 9 līdz 0), katra lauka nosaukumam pievienojiet rezervēto vārdu DESC. Šis piemērs ir sakārtots dilstošā secībā, pamatojoties uz darbinieku algām.

IZVĒLĒTIES Uzvārds, Alga

NO darbiniekiem

PASŪTĪJUMS PĒC Algas DESC, Uzvārds;

Ja klauzulā ORDER BY norādāt laukus, kas satur datus, kuru tips ir MEMO lauks (Datu tips "MEMO Field". Lauka datu tips Microsoft Access datu bāzē. Laukā MEMO var būt līdz 65535 rakstzīmēm.) vai OLE Object. Lauks (Datu tips "OLE Object Field ". Lauka datu tips, ko izmanto, lai saglabātu objektus no citām lietojumprogrammām, kas ir saistītas ar Microsoft Access datu bāzi vai ir iegultas tajā.), radīsies kļūda. Microsoft Access datu bāzes programma nevar kārtot šāda veida laukus.

Klauzula ORDER BY parasti ir pēdējā klauzula SQL priekšrakstā (SQL priekšraksts (string). Izteiksme, kas definē SQL komandu, piemēram, SELECT, UPDATE vai DELETE, un ietver klauzulas, piemēram, WHERE vai ORDER BY. SQL priekšraksti /rindas parasti izmanto vaicājumos un statistikas funkcijās.).

Klauzulā ORDER BY var iekļaut papildu laukus. Ieraksti vispirms tiek sakārtoti pēc lauka, kas norādīts pirmais klauzulā ORDER BY. Pēc tam ieraksti ar vienādu vērtību pirmajā laukā tiek sakārtoti pēc otrajā laukā norādītā lauka utt.
Skatīt arī

ATLASĪT paziņojumu

SELECT...INTO paziņojums

Predikāti ALL, DISTINCT, DISTINCTROW, TOP

NO klauzulas

GROUP PĒC piedāvājuma

IR piedāvājums

KUR klauzula

SQL statistikas funkcijas

Avota lapa: http://office. /en-us/access/HA.aspx? pid=CH

INNER JOIN darbība

Savieno ierakstus no divām tabulām, ja šo tabulu savienojošajos laukos ir vienādas vērtības.

Sintakse

NO 1. tabula IEKŠĒJĀ PIEVIENOŠANĀS 2. tabula IESLĒGTS 1. tabula.lauks1 salīdzināšanas_operatoru tabula2.lauks2

INNER JOIN darbība sastāv no šādiem elementiem:

Elements

Apraksts

1. tabula, 2. tabula

To tabulu nosaukumi, kurās ir apvienoti ieraksti

lauks1, lauks2

Saistītie lauku nosaukumi. Laukiem, kas nav skaitļi, ir jābūt tāda paša datu tipam (Datu tips. Lauka raksturlielums, kas nosaka datu veidu, ko šis lauks var saturēt. Ir pieejami šādi datu tipi: Būla, Integer, Long, Currency, Single, Double, Datums, Virkne un Variants (noklusējums).) un satur tāda paša veida datus. Tomēr šo lauku nosaukumi var atšķirties.

salīdzināšanas_operators

Jebkurš salīdzināšanas operators: (=,<, >, <=, >= vai<>)

SELECT priekšraksts uzdod Microsoft Access datu bāzes dzinējam atgriezt informāciju no datu bāzes kā ierakstu kopu.

Sintakse

ATLASĪT[ predikāts] { * | tabula.* | [tabula.]lauks1 [, [tabula.]lauks2 [, ...]]}
NO tabula_izteiksme [, ...]




SELECT priekšraksts ietver šādus elementus.

Elements

Apraksts

predikāts

Viens no šiem predikātiem: ALL, DISTINCT, DISTINCTROW vai TOP. Predikāti tiek izmantoti, lai ierobežotu atgriezto ierakstu skaitu. Ja predikāts nav norādīts, noklusējuma vērtība ir VISI.

Norāda, ka visi lauki ir atlasīti no norādītās tabulas vai tabulām.

tabula

Tabulas nosaukums, kurā ir lauki ar atlasītajiem ierakstiem.

lauks1, lauks2

To lauku nosaukumi, kas satur izgūtos datus. Ja ir norādīti vairāki lauki, dati tiks izgūti tādā secībā, kādā ir norādīti to nosaukumi.

aizstājvārds1, aizstājvārds2

Nosaukumi, kas tiek izmantoti kā kolonnu virsraksti, nevis sākotnējie kolonnu nosaukumi tabula.

tabula_izteiksme

Viens vai vairāki tabulu nosaukumi, kas satur izgūstamos datus.

ārējā_datu bāze

Tās datu bāzes nosaukums, kurā ir komponentā norādītās tabulas tabula_izteiksme ja tie nav pašreizējā datu bāzē.

Piezīmes.

Lai veiktu šo darbību, Microsoft Access datu bāzes programma meklē norādīto tabulu vai tabulas, izvelk norādītās kolonnas, atlasa rindas, kas atbilst nosacījumam, un sakārto iegūtās rindas norādītajā secībā.

SELECT priekšraksti nemaina datus datubāzē.

SELECT parasti ir pirmais vārds SQL priekšrakstā. SELECT un SELECT...INTO ir visizplatītākie SQL priekšraksti.

SELECT priekšraksta minimālā sintakse ir šāda:

ATLASĪT lauki NO tabula

Varat izmantot zvaigznīti (*), lai atlasītu visus tabulas laukus. Šis piemērs parāda, ka tabulā Darbinieki ir atlasīti visi lauki.

SELECT * FROM Darbinieki;

Ja lauka nosaukums ir iekļauts vairāk nekā vienā tabulā FROM klauzulā, pirms tā ievadiet tabulas nosaukumu un paziņojumu . (punkts). Nākamajā piemērā lauks "Nodaļa" atrodas divās tabulās vienlaikus: "Darbinieki" un "Vadītāji". Izmantojot SQL priekšrakstu, varat atlasīt nodaļas tabulā Darbinieki un vadītāju vārdus tabulā Vadītāji.

SELECT Employees.Department, Supervisors.SupvName FROM Employees INNER JOIN Supervisors WHERE Employees.Department = Supervisors.Department;

Veidojot objektu RecordSet, Microsoft Access DBMS dzinējs izmanto tabulas lauka nosaukumu kā objekta "Field" nosaukumu objektā. Ierakstu kopa. Ja lauka nosaukums ir jāmaina vai to nenodrošina izteiksme, kas ģenerē lauku, izmantojiet AS rezervēto vārdu. Nākamajā piemērā parādīts, kā galvene "Dzimšanas datums" tiek izmantota, lai nosauktu atgriezto objektu Lauks saņemtajā objektā Ierakstu kopa.

SELECT BirthDate AS Birth NO Darbiniekiem;

Izmantojot apkopotās funkcijas vai vaicājumus, kas atgriež neskaidrus vai dublētus objektu nosaukumus Lauks, jums ir jāizmanto AS klauzula, lai piešķirtu objektu Lauks cits vārds. Tālāk esošajā piemērā atgrieztais objekts Lauks saņemtajā objektā Ierakstu kopa tiek piešķirts nosaukums "Darbinieku_skaits".

SELECT COUNT(EmployeeID) AS darbinieku skaits no darbiniekiem;

Strādājot ar SELECT paziņojumu, varat izmantot papildu klauzulas, lai vēl vairāk ierobežotu un sakārtotu saņemtos datus. Lai iegūtu papildinformāciju, skatiet izmantotā piedāvājuma palīdzības tēmu.

1. laboratorija

SQL: RETRIEVE DATA - komandaATLASĪT

Darba mērķis:

  • Iepazīstieties ar SQL priekšrakstiem
  • iemācīties izveidot vienkāršus SQL vaicājumus programmā Access, izmantojot komandu SELECT;

· operatoru IN, BETWEEN, LIKE izmantošana IS NULL.

Vingrinājums№1. Izveidojiet vaicājumu, lai SQL režīmā atlasītu visas lauku VĀRDS un UZVĀRDS vērtības no tabulas STUDENTI.

IZVĒLĒTIES VĀRDS, UZVĀRDS

NO STUDENTIEM;

Vingrinājums№2 . Izveidojiet atlases vaicājumu SQL režīmā visām tabulas STUDENTI kolonnām.

ATLASĪT*

NO STUDENTIEM;


Uzdevums numurs 3. Izveidojiet vaicājumu, lai SQL režīmā atlasītu studentu dzīvesvietu pilsētu nosaukumus, par kurām informācija ir tabulā PERSONAS DATI.

IZVĒLIES ATŠĶIRĪGU PILSĒTU

NO [PERSONAS DATIEM];

Uzdevums numurs 4. Izveidojiet atlases vaicājumu SQL režīmā, kurā tiek atlasīti visu skolēnu vārdi ar uzvārdu Ivanovs, kuru informācija atrodas tabulā SKOLĒNI.

IZVĒLĒTIES UZVĀRDS, VĀRDS

NO STUDENTIEM

KUR UZVĀRDS="Ivanovs";

Uzdevums numurs 5. Izveidojiet vaicājumu atlasei SQL režīmā, lai iegūtu to studentu vārdus un uzvārdus, kuri mācās UIT-22 grupā budžeta apmaksātā izglītības formā.

IZVĒLĒTIES UZVĀRDS, VĀRDS

NO STUDENTIEM

KUR GRUPA = "HIT-22" UN BUDŽETS = patiess;

Uzdevums numurs 6. Izveidojiet vaicājumu SQL režīmā. paraugam no tabulas EKSĀMENU NOKOŠANA, informācija par skolēniem, kuru atzīmes ir tikai 4 un 5.

ATLASĪT*

NO[MAINĪTEKSĀMENI]

KURGRĀDEIN (4.5);

Uzdevums numurs 7. Izveidojiet zanpoc un SQL režīmu informācijas paraugam par skolēniem, kuriem eksāmena atzīme IOSU priekšmetā ir 3.

ATLASĪT*

NO[MAINĪTEKSĀMENI]

KURLIETA=" ISSU" UnGRĀDENav iekšā (4.5);

Uzdevums numurs 8. Izveidojiet vaicājumu SQL režīmā, lai atlasītu ierakstus vienumiem, kuru stundas ir no 100 līdz 130.

ATLASĪT*

NOPRECES

KURSKATĪTIESNO 100 LĪDZ 130;


Uzdevums numurs 9. Izveidojiet vaicājumu SQL režīmā, lai no tabulas STUDENTI atlasītu informāciju par skolēniem, kuru uzvārdi sākas, piemēram, ar burtu "C".

ATLASĪT*

NOSTUDENTI

KURUZVĀRDSPATĪK"AR*";

Secinājums: Laikā laboratorijas darbi iepazinās ar SQL priekšrakstiem, iemācījās izveidot vienkāršus SQL vaicājumus programmā Access, izmantojot komandu SELECT, izmantojot operatorus IN, BETWEEN, LIKE.

SQL vaicājumu piemērus var izmantot, lai mācītos un praktizētu SQL vaicājumu rakstīšanu programmā MS Access.

Vienu SQL vaicājumu var ligzdot citā. Apakšvaicājums nav nekas cits kā vaicājums vaicājumā. Parasti apakšvaicājums tiek izmantots WHERE klauzulā. Bet ir arī citi veidi, kā izmantot apakšvaicājumus.

Pieprasīt Q011. Parāda informāciju par produktiem no tabulas m_product, kuru kodi ir arī tabulā m_income:

ATLASĪT*
NO m_product
WHERE id IN (SELECT product_id FROM m_income);

Pieprasīt Q012. Tiek parādīts to produktu saraksts no tabulas m_product, kuru kodi nav tabulā m_outcome:

ATLASĪT*
NO m_product
WHERE id NOT IN (SELECT product_id FROM m_outcome);

Pieprasīt Q013.Šis SQL vaicājums atgriež unikālu kodu un produktu nosaukumu sarakstu, kuriem ir kodi tabulā m_income, bet nav m_outcome tabulā:

ATLASĪT ATŠĶIRĪGU produkta_id, nosaukumu
NO m_income IEKŠĒJS JOIN m_product
ON m_income.product_id=m_product.id
WHERE product_id NOT IN (SELECT product_id FROM m_outcome);

Pieprasīt Q014. No tabulas m_category tiek parādīts unikāls kategoriju saraksts, kuru nosaukumi sākas ar burtu M:

ATLASĪT ATŠĶIRĪGU nosaukumu
NO m_product
KUR nosaukums LIKE "M*";

Pieprasīt Q015. Piemērs aritmētisko darbību veikšanai vaicājuma laukiem un vaicājuma lauku pārdēvēšanai (alias). Šajā piemērā tiek aprēķināti izdevumi = daudzums*cena un peļņa katram preces patēriņa ierakstam, pieņemot, ka peļņa ir 7 procenti no pārdošanas apjoma:


summa*cena/100*7 AS peļņa
NO m_outcome;

Pieprasīt Q016. Analizējot un vienkāršojot aritmētiskās darbības, varat palielināt vaicājuma izpildes ātrumu:

SELECT dt, product_id, summa, price, summa*price AS result_sum,
iznākuma_summa*0,07 AS peļņa
NO m_outcome;

Pieprasīt Q017. Izmantojot priekšrakstu INNER JOIN, varat apvienot datus no vairākām tabulām. Nākamajā piemērā atkarībā no ctgry_id vērtības katrs ieraksts tabulā m_ienākums tiek saskaņots ar tās kategorijas nosaukumu no tabulas m_category, kurai pieder produkts:

ATLASĪT c.title, b.title, dt, summa, cena, summa*price AS ienākumu_summa
FROM (m_ienākums KĀ IEKŠĒJS PIEVIENOJUMS m_produkts AS b ON a.product_id=b.id)
IEKŠĒJĀ JOIN m_category AS c ON b.ctgry_id=c.id
KĀRTĪJUMS PĒC c.title, b.title;

Pieprasīt Q018. Tādas funkcijas kā SUM — summa, COUNT — daudzums, AVG — vidējais aritmētiskais, MAX — maksimālā vērtība, MIN — minimālā vērtība tiek sauktas par apkopotajām funkcijām. Tie ņem vairākas vērtības un apstrādājot atgriež vienu vērtību. Lauku summas un cenas reizinājuma summas aprēķināšanas piemērs, izmantojot SUM apkopošanas funkciju.

Šī nodarbība ir par SQL vaicājums am uz datu bāzi VBA piekļuve. Apskatīsim, kā datu bāzē tiek veikti VBA vaicājumi INSERT, UPDATE, DELETE, kā arī uzzināsim, kā iegūt konkrētu vērtību no SELECT vaicājuma.

Tie, kas programmē VBA piekļuve un, strādājot ar SQL servera datu bāzi, viņi bieži saskaras ar tik vienkāršu un nepieciešamu uzdevumu kā SQL vaicājuma nosūtīšana uz datu bāzi, vai tas būtu INSERT, UPDATE vai vienkāršs SQL SELECT vaicājums. Un, tā kā mēs esam iesācēji programmētāji, mums vajadzētu arī to izdarīt, tāpēc šodien mēs darīsim tieši to.

Mēs jau esam pieskārušies tēmai par datu iegūšanu no SQL servera, kur rakstījām kodu VBA, lai iegūtu šos datus, piemēram, rakstā par datu augšupielādi teksta failā no MSSql 2008 vai arī nedaudz pieskārāmies materiālā. Datu augšupielāde no Access uz Word un Excel veidni, taču tā vai citādi mēs to izskatījām virspusēji, un šodien es ierosinu par to runāt nedaudz sīkāk.

Piezīme! Visi tālāk minētie piemēri ir apskatīti, izmantojot Access 2003 ADP projektu un MSSql 2008 datubāzi.

Sākotnējie dati piemēriem

Pieņemsim, ka mums ir tabula test_table, kurā būs gada mēnešu skaitļi un nosaukumi (vaicājumi tiek veikti, izmantojot menedžmenta studija)

IZVEIDOT TABULU .( NOT NULL, (50) NULL) TĀLĀK

Kā jau teicu, mēs izmantosim ADP projektu, kas konfigurēts darbam ar MS SQL 2008, kurā es izveidoju testa veidlapu un pievienoju sākuma pogu ar parakstu "Skriet", kas mums būs nepieciešams, lai pārbaudītu mūsu kodu, t.i. mēs ierakstīsim visu kodu notikumu apdarinātājā " Pogas nospiešana».

Datu bāzes vaicājumi INSERT, UPDATE, DELETE VBA

Lai to nevilktu uz ilgu laiku, sāksim, pieņemsim, ka mums ir jāpievieno rinda mūsu testa tabulai ( kods ir komentēts)/

Private Sub start_Click() "Deklarējiet mainīgo, lai saglabātu vaicājuma virkni Dim sql_query As String "Ierakstiet tajā vajadzīgo vaicājumu sql_query = "INSERT INTO test_table (id, name_mon) VALUES ("6", "June")" "Izpildīt to ar DoCmd. RunSQL sql_query beigu apakš

Šajā gadījumā vaicājums tiek izpildīts, izmantojot pašreizējos datu bāzes savienojuma iestatījumus. Mēs varam pārbaudīt, vai dati ir pievienoti vai nav.

Kā redzat, dati ir ievietoti.

Lai dzēstu vienu rindiņu, mēs ierakstām šādu kodu.

Private Sub start_Click() "Deklarējiet mainīgo, lai turētu vaicājuma virkni Dim sql_query As String "Ierakstiet tajā dzēšanas vaicājumu sql_query = "DELETE test_table WHERE id = 6" "Izpildiet to DoCmd.RunSQL sql_query Beigas Sub

Ja pārbaudīsim, redzēsim, ka vēlamā rinda ir dzēsta.

Lai atjauninātu datus, ierakstiet mainīgo sql_query atjaunināšanas pieprasījums Ceru, ka nozīme ir skaidra.

ATLASĪT vaicājumu datu bāzei VBA

Šeit lietas ir nedaudz interesantākas nekā ar citām SQL konstrukcijām.

Pirmkārt, pieņemsim, ka mums ir jāiegūst visi dati no tabulas, un, piemēram, mēs tos apstrādāsim un parādīsim ziņojumā, un jūs, protams, varat tos izmantot citiem mērķiem, šim nolūkam mēs rakstām: kodu

Private Sub start_Click() "Mainīgo deklarēšana "Par ierakstu kopu no datu bāzes Dim RS As ADODB.Recordset "Vaicājuma virkne Dim sql_query As String "String kopējo datu attēlošanai ziņojumā Dim str As String "Jauna objekta izveide ierakstu kopai RS = Jauns ADODB .Recordset "Query string sql_query = "SELECT id, name_mon FROM test_table" "Izpildīt vaicājumu, izmantojot pašreizējos projekta savienojuma iestatījumus, lai parādītu ziņojumu str = str & RS.Fields("id") & "-" & RS. Fields("name_mon") & vbnewline "iet uz nākamo ierakstu RS.MoveNext Wend "Izvades ziņojums msgbox str End Sub

Šeit mēs jau izmantojam VBA piekļuves cilpas, lai pārskatītu visas mūsu ierakstu kopas vērtības.

Bet diezgan bieži no ierakstu kopas ir jāiegūst nevis visas vērtības, bet tikai viena, piemēram, mēneša nosaukums pēc tā koda. Un šim nolūkam cilpas izmantošana ir kaut kā dārga, tāpēc mēs varam vienkārši uzrakstīt vaicājumu, kas atgriezīs tikai vienu vērtību un atsauksies uz to, piemēram, mēs saņemsim mēneša nosaukumu ar kodu 5

Privāts Sub start_Click() "Mainīgo deklarēšana "Par ierakstu kopu no datu bāzes Dim RS As ADODB.Recordset "Vaicājuma virkne Dim sql_query As String "String gala vērtības parādīšanai Dim str As String "Jauna objekta izveide ierakstu kopai RS = Jauns ADODB.Recordset "Vaicājuma virkne sql_query = "SELECT name_mon FROM test_table WHERE id = 5" "Izpildīt vaicājumu, izmantojot pašreizējos projekta savienojuma iestatījumus RS.open sql_query, CurrentProject.Connection, adOpenDynamic, adLockOptimistic = "RS0.Fields" ) msgbox str end sub

Par universālumu šeit mēs jau esam pievērsušies nevis šūnas nosaukumam, bet gan tās indeksam, t.i. 0, kas ir pati pirmā vērtība Ierakstu kopa, beigās mēs ieguvām vērtību "maijs".

Kā redzat, viss ir pavisam vienkārši. Ja jums bieži ir jāiegūst noteikta vērtība no datu bāzes ( kā pēdējā piemērā), tad iesaku visu kodu izvadīt atsevišķā funkcijā (Kā uzrakstīt funkciju VBA Access 2003) ar vienu ievades parametru, piemēram, mēneša kodu ( ņemot vērā mūsu piemēru) un vienkārši, kur nepieciešams parādīt šo vērtību, izsauciet mums vajadzīgo funkciju ar nepieciešamo parametru, un tas arī viss, mēs ievērojami samazināsim VBA kodu un uzlabosim mūsu programmas uztveri.

Tas šodienai viss. Veiksmi!