Cerere grupată în acces. Numărarea datelor folosind o interogare. Referința funcțiilor agregate

Cerere grupată în acces. Numărarea datelor folosind o interogare. Referința funcțiilor agregate

04.10.2021

Atribuirea operațiunilor de grup

Operațiile de grup vă permit să selectați grupuri de înregistrări cu aceleași valori în câmpurile specificate și să utilizați una dintre funcțiile agregate pentru aceste grupuri.

Accesul oferă nouă funcții statistice:

  • sum - suma valorilor unui anumit câmp pentru grup;
  • Media - media tuturor valorilor câmpului din grup;
  • max, Min - valoarea maximă, minimă a câmpului din grup;
  • numărare - numărul de valori de câmp din grup, cu excepția valorilor goale;
  • StDev - abaterea standard de la valoarea medie a câmpului din grup;
  • var - varianța valorilor câmpului din grup;
  • Prima și ultima - valoarea câmpului din prima sau ultima înregistrare din grup.

Rezultatul unei interogări folosind operații de grup conține o înregistrare pentru fiecare grup.

Cum se creează o interogare folosind operații de grup

Pentru a crea o interogare utilizând operații de grup, este generată o interogare selectată. Formularul de solicitare include câmpuri pentru care | efectuați gruparea și câmpurile pe care să efectuați calcule statistice.

Comanda este executată Vizualizare | Operațiuni de grup(Vizualizare | Totaluri) sau faceți clic pe butonul de pe bara de instrumente Query Designer Operațiuni de grup(Totale). De asemenea, puteți face clic dreapta și selecta din meniul contextual Funcționarea în grup(Total) (cursorul mouse-ului trebuie setat în formularul de solicitare). Linia apare în formularul de solicitare Operațiune în grup (total),în care gruparea este înregistrată pentru toate câmpurile (Group By).

Pentru a efectua calcule într-un grup pe un anumit câmp, trebuie să înlocuiți gruparea cuvintelor (grupare By) din acesta cu o funcție statistică. Puteți selecta funcția necesară prin lista derulantă din câmp.

Să luăm în considerare construirea unei interogări cu o operație de grup folosind tabelul DELIVERY_PLAN ca exemplu.

Interogare sumă

Stabiliți care este suma totală a fiecărei bunuri care trebuie furnizată cumpărătorilor în baza contractelor. Toate datele privind cantitatea de bunuri planificate pentru livrare sunt indicate în tabelul DELIVERY_PLAN.

Să creăm o interogare selectată pentru tabelul DELIVERY_PLAN. Din lista tabelului, trageți câmpul item_code - cod produs în formularul de solicitare. Vom crea acest câmp pentru gruparea ulterioară după acesta. Trageți câmpul qty_post în formularul de solicitare, prin care funcția sumă va fi calculată pentru a calcula cantitatea totală a unui anumit articol comandat în toate contractele.

apasa butonul Operațiuni de grup(Totale). Înlocuiți gruparea cuvintelor

(croup By) în coloană count_post per funcție Sum. Pentru a face acest lucru, să apelăm lista și să selectăm această funcție. Formularul de solicitare va lua forma prezentată în Fig. 4.13.

Câmpul item_code nu afișează codul produsului stocat în tabelul DELIVERY_PLAN, ci numele acestuia. Acest lucru este determinat de faptul că o listă este construită în tabel pentru codurile_câmp pe baza tabelului de produse. Dacă baza de date nu convertește câmpul tod_code într-o casetă combinată așa cum se arată în capitolul 3, codul produsului va fi afișat în tabelul de interogare.


Semnătura câmpului Sumă- COL_POST poate fi înlocuit cu Bunuri comandate... Pentru a introduce această semnătură, vom trece la modul de proiectare, în formularul de solicitare, vom plasa cursorul mouse-ului pe câmpul count_post și vom apăsa butonul din dreapta. În meniul contextual, selectați Proprietăți(Proprietăți). La fereastră Proprietăți de câmp(Proprietăți câmp) introduceți linia Semnătură(Legenda) - bunuri comandate.

Tabelul de rezultate după rafinarea interogării este prezentat în Fig. 4A5.

Orez. 4.15. Tabel de rezultate cu semnătura de câmp modificată

Să salvăm interogarea de selecție sub numele „Bunuri comandate”.

Cerere cu funcție Numara

Să stabilim de câte ori au fost expediate bunurile pentru fiecare dintre contracte. Faptul de expediere este înregistrat cu documentul „Factură”.

Să creăm o interogare selectată pe baza tabelului cu facturi. Din lista tabelului cu facturi, trageți câmpul no_dog - numărul contractului în formularul de solicitare. Acest câmp trebuie utilizat pentru grupare. De fapt, semnificația problemei se reduce la numărarea numărului de rânduri din tabel cu același număr de contract, deci nu contează pe ce câmp va fi calculată funcția de numărare. Să tragem orice câmp în formularul de solicitare, de exemplu, no_dog.

apasa butonul Operațiuni de grup(Totale). Înlocuiți gruparea cuvintelor (Group By) într-una dintre coloanele numite num_dog cu numărul funcției. Formularul de solicitare va lua forma prezentată în Fig. 4.20.

Să salvăm interogarea sub numele „Numărul de expedieri sub contracte”. Rezultatul executării interogării este prezentat în Fig. 4.21.

Interogările vă permit să selectați nu numai înregistrările din tabelele Access, ci și să calculați diferiți parametri statistici. De exemplu, puteți număra numărul total de contacte și afișa datele primului și ultimului contact cu fiecare dintre persoanele incluse în tabelul Contacte. Pentru a crea o astfel de interogare în modul de proiectare, urmați acești pași.

1. În fereastra bazei de date, faceți clic pe butonul Întrebări.

2. Faceți dublu clic pe pictogramă Creați o interogare în modul de proiectare.

3. În caseta de dialog care se deschide (Fig. 17.6), selectați linia Contacte.

4. Faceți clic pe buton Adăuga adăugați tabelul selectat la panoul superior al designului interogării.

5. Evidențiați elementul Listăși faceți din nou clic pe buton Adăuga.

6. Făcând clic pe buton Închideînchideți caseta de dialog. Listele de câmpuri ale celor două tabele, conectate printr-o linie de legătură, vor apărea în fereastra de proiectare.

7. Faceți clic pe buton Operațiuni de grup bare de instrumente. În formularul de solicitare va apărea o linie suplimentară Funcționarea în grup care vă permite să efectuați operațiuni statistice asupra valorilor câmpurilor specifice.

Orez. 17.6. Adăugarea unui tabel

8. Trageți câmpul Nume în celulă Camp prima coloană a constructorului.

9. Trageți câmpul în aceeași celulă din a doua coloană Nume tabele Contacte.

10. În a treia, a patra și a cincea coloană ale designului interogării, trageți câmpul Data Listează tabele (fig. 17.7).

11. În lista derulantă de celule Funcționarea în grupîn a treia coloană a formularului de solicitare, selectați elementul Min.

12. În aceeași celulă din a patra coloană, selectați Mach.

13. În a cincea coloană, setați Numărul operațiunilor în bloc. Operațiile de grup ale interogării construite vor procesa toate înregistrările din tabelul Listă corespunzătoare unei persoane specifice din tabelul Contacte și, în loc de datele din tabelul Listă, vor afișa doar valoarea valorii calculate printr-o anumită formulă în câmpul corespunzător al rezultatului interogării. Operațiunile de grup disponibile sunt listate în tabel. 17.1.

TABELUL 17.1. Operațiuni de grup

Nume Funcţie
CondițieModul de setare a unei condiții de selecție pentru un câmp, dar care nu este grupat. Accesul ascunde automat un astfel de câmp.
ExpresieUn câmp calculat a cărui valoare este calculată utilizând o formulă complexă
A se grupa cuUn câmp care definește un grup de înregistrări prin care sunt calculați parametrii statistici. Un grup include toate înregistrările pentru care valorile câmpului Grupare după sunt aceleași.
UltimulUltima valoare din grup
PrimulPrima valoare din grup
VarVariația valorilor câmpului
StDevAbaterea standard a valorilor zero de la medie
NumaraNumărul de înregistrări corespunzătoare unui zero dintre care nu conține o valoare nulă
MachValoare maximă
MinValoare minimă
MediaValoarea medie a câmpului
SumăSuma valorilor câmpului în toate înregistrările

Notă Deoarece al cincilea câmp al interogării calculează numărul de înregistrări, orice câmp din tabelul Listă poate fi plasat în celula Câmp din această coloană.

14. Faceți clic pe buton Vedere pentru a completa solicitarea. Apare un tabel cu cinci coloane. Primele două coloane conțin numele și prenumele persoanelor. Prin ele, se efectuează gruparea, adică calculul valorilor restului câmpurilor de interogare se efectuează pentru înregistrările din tabelul Listă, care sunt potrivite cu o singură persoană. După cum sa menționat mai sus, corespondența dintre un contact din tabelul Listă și o persoană din tabelul Contacte este determinată de câmpurile Contact_code, care sunt utilizate pentru a lega aceste două tabele. Cea de-a treia și a patra coloană a interogării afișează, respectiv, data primului contact (funcția Min) și ultimul (funcția Max) cu această persoană. Cea de-a cincea coloană conține numărul de înregistrări din tabelul Listă (funcția Count) care se potrivesc. această persoană, adică numărul de contacte cu el. Singurul dezavantaj al interogării construite sunt numele de coloană de neînțeles. Să le ajustăm.

15. Faceți clic pe buton Vedere reveniți la constructorul interogării.

16. În câmpul din a treia coloană, înlocuiți numele Data cu textul Data primului contact: Data. Partea dreaptă a acestei expresii, situată în dreapta colonului, încă specifică numele câmpului, iar partea stângă specifică numele coloanei rezultatului interogării. Astfel, oricărei coloane din interogare i se poate atribui un nume arbitrar.

17. În câmpul din a patra coloană, introduceți Ultima dată de contact: Data.

18. În primul rând al celei de-a cincea coloane a proiectului interogării, introduceți Număr de contacte: Data.

Notă Din păcate, această tehnică nu este potrivită pentru schimbarea numelui unui câmp, a cărui valoare nu este calculată, ci transmisă din tabel. Adică, nu va fi posibil să redenumiți câmpul Nume în acest fel.

19. Faceți clic din nou pe buton. Vedere.

20. Închideți cererea.

21. Pentru a salva modificările aduse structurii, faceți clic pe buton da.

22. În caseta de dialog Conservare introduceți numele Final Query și faceți clic pe buton Bine.

Microsoft® Office Access 2007. Cum se utilizează baza de date. Care este baza structurii benzii. Familiarizarea cu șabloanele. Scopul acestui curs. Încărcarea bazei de date. Comanda SAVE AS poate fi utilizată pentru a crea o copie. Care dintre următoarele este adevărat pentru formatul de fișier Access 200. Butonul Microsoft Office. Trei opțiuni de aspect al raportului cu file. Creați o bază de date. Stăpânirea rapidă a programului.

„Acces” - Tipuri de interogări. Crearea cererilor. Crearea tabelelor. Crearea rapoartelor. Creați o nouă bază de date Access. Editarea interogărilor. Structurarea datelor. Un exemplu de diagramă logică informațională. Întreținerea și protecția bazei de date. Etapele construirii unei baze de date. Crearea și editarea formularelor. Stație de lucru automatizată (AWP) în Microsoft Access. Crearea schemei de date. Baze de date: concept, elemente de bază.

„Formulare în acces” - Câmpul din formular, care ar trebui filtrat. Cum se fac formulare în ACCESS. Tranziții prin înregistrări. Selectarea înregistrărilor în formular. Mergeți la intrarea specificată. Câini care aparțin proprietarului. Executarea macro-urilor. Scrieți macrocomanda mcFilter. Vizualizare rapidă a raportului. Sortarea înregistrărilor. Scrieți o macro. Tranziția prin forme subordonate. Selectați o macrocomandă. Alegeți o macro. Vizualizați datele detaliate.

„Access 2007 Database” - Moduri de vizualizare a raportului. Proprietățile elementului. Prin grupare. Crearea de tabele (șabloane). Tipuri de cereri. Masa. Formulare. Constructor macro. Grupuri de macrocomenzi. O macro este o colecție de macro-uri. Mod SQL. Setarea / eliminarea unei parole. Lucrul cu mese. Proiectarea meselor. Rapoarte. Creați o interogare care include toate datele. Macrocomenzi. Adăugarea de câmpuri noi. Filtrare complexă. Proprietățile formei și ale elementelor sale.

„Baza de date MS Access” - Notă de grup. Cerere de mostra. Secțiunile raportului. Macrocomenzi încorporate. Etape ale creării unei interfețe. Interogări pe mai multe tabele. Reprezentare. Scopul și tipurile de cereri. Construcție macro. Câmpuri calculate. Expert de interogare. MS Access. Scopul fiecărei secțiuni. Operațiuni de grup în interogări. Aspect. Rapoarte. Tipuri de prelucrare a datelor. Constructor de interogări. Integritate coerentă. Forma. Actualizați solicitările.

Access 2010 - Adăugați un câmp de căutare într-un tabel. Adăugarea și salvarea datelor. Obiectivele cursului. Crearea tabelelor pentru o nouă bază de date. Creați un tabel în modul tabel. Metode de creare a tabelelor. Economisiți timp cu câmpurile de pornire rapidă. Alegeți lista de valori corectă din punct de vedere sintactic dintre cele sugerate mai jos. Crearea tabelelor pentru baza de date. Proces în modul tabel. Informații generale.

Astăzi vom analiza mai atent întrebările din Access.


Interogările, după cum știți deja, sunt necesare pentru a lucra cu datele din tabele.
Pentru a crea o cerere ...
1) ... în fereastra bazei de date, deschideți Cereri
2) ... și creați o interogare folosind constructorul.



Vă rugăm să NU utilizați pentru a face întrebări De către stăpân, deoarece vă permite să faceți doar cele mai simple interogări, iar apoi refacerea lor în altele mai avansate este chiar mai dificilă decât crearea unei interogări în constructor de la zero.

Filtrarea liniilor goale

Când sunt legate mai multe tabele, pot apărea rânduri goale.



De ce se întâmplă asta?
Faptul este că în tabelul nostru tbPerson, împreună cu proprietarii câinilor, sunt înregistrați și judecătorii (Petrovskaya, Yelets, Tereshchuk). Judecătorii nu au dreptul să-și aducă câinii la spectacol, prin urmare în rândurile cu numele lor sunt celule goale cu numele câinilor.
Există două moduri de a elimina liniile goale.
1. Setați o condiție privind semnificația numelui câinelui Nu este nul, adică NU GOLIȚI.



2. Sau modificați tipul de conexiune între tabele din zona tabelului: pe o linie de comunicație care dă un rezultat inexact, apelați meniul contextual și modificați Combinați opțiuni.



Întrebarea este: ce setări trebuie să modificați în caseta de dialog a opțiunilor de îmbinare?

Interogări calculate

Până acum, am selectat numai înregistrări pentru diferite condiții. Accesul vă permite însă nu numai să vizualizați datele înregistrate în tabele, ci și să faceți CALCULE: până la data nașterii pentru a determina vârsta; de la nume, prenume și patronimic pentru a face un prenume cu inițiale; determinați prețul total de cumpărare pe baza prețului unitar al unui produs și a cantității acestuia; până la data emiterii cărții în bibliotecă pentru a stabili cuantumul amenzii pentru datorii și multe altele. Pentru calcule, se utilizează funcții încorporate (similare cu cele din Excel).


Cea mai simplă operație este adaos de linii... Să scriem într-o celulă o expresie pentru afișarea unei astfel de fraze: proprietar din oras oraș .
Pentru a face acest lucru, scrieți în linia de sus a noii coloane a zonei de condiții: + „din oraș” +.



Numele câmpurilor sunt scrise între paranteze pătrate, fragmentele de linie sunt între ghilimele și există semne de adăugare între ele.


Expresiile pentru calcule sunt scrise chiar în linia superioară ( Camp) zona de condiții. Până în prezent, am scris condiții în rândurile inferioare ( Condiții de selecție).


Pentru a nu ne confunda: pe linia de sus scriem CE să afișăm pe ecran și apoi (în partea de jos) - sub CE CONDIȚII.


Exercițiu: Scrieți o expresie pentru a afișa între paranteze numele proprietarului într-o celulă și orașul în care locuiește. Asa: Ivanov (Moscova)... Orașul și prenumele trebuie înlocuite din tabel.

Expression Builder

Pentru a facilita editarea expresiilor, există un editor special - „Expression Builder”. Arată așa:



Și se numește folosind meniul contextual: trebuie să puneți cursorul pe celula unde veți scrie expresia:



În generatorul de expresii, puteți selecta funcții din bibliotecă:



și date din tabele (puteți utiliza DOAR acele tabele care sunt utilizate în această interogare și afișate în zona de date):



Când faceți dublu clic pe un nume sau funcție de câmp din listă, Access inserează adesea cuvântul „expresie” pentru a indica faptul că puteți insera alte funcții și nume de câmpuri ÎN ACEST LOC. Nu uitați să eliminați cuvintele suplimentare „expresie”!


Vom face cunoștință cu textul și funcțiile temporare, precum și cu operatorul condițional Iif (condiție; dacă-adevărat; dacă-fals).


Text funcțiile permit conversia variabilelor șir:
Stânga ("Ivanov"; 2) = "Yves" lasă n caractere stânga
LCase ("Ivanov") = Ivanov face ca toate literele să fie minuscule
InStr (1; "Ivanov"; "dar") = 4 găsește un șir (al treilea argument) într-un șir (al doilea argument) și este egal cu poziția (de la început) a unui șir într-un șir
Len („Ivanov”) = 6 afișează numărul de caractere dintr-o linie
StrComp ("Ivanov"; "Petrov") = -1 compară două șiruri: dacă sunt egale, returnează 0
alte…


Temporar vă permite să lucrați cu variabile temporare:
Lună (# 12.04.2007 #) = 4
Anul (# 12.04.2007 #) = 2007
Ziua (# 12.04.2007 #) = 12.
Acum () = 28/04/2008 14:15:42 (data și ora curente)
Data () = 28.04.2008 (data de azi)
DateDiff ("d"; # 12.04.2007 #; # 28.04.2007 #) = 16 găsește diferența dintre două date ("d" - în zile, "ww" - în săptămâni, "m" - în luni, "aaaa) "- în ani etc.)
alte…


joc de inteligență procesează expresii condiționale:
Dacă (<=1; «щенок»; «взрослый») аналог функции ЕСЛИ из Ecxel.
alte…


Exercițiu: scrieți o expresie care face un nume de familie cu inițiale de la prenume, prenume și patronimic. Ivanov Ivan Ivanovici -> Ivanov I.I.
Exercițiu
Exercițiu
Plus: Există două moduri de a calcula vârsta unui câine, una mai precisă, cealaltă mai puțin:
1) scade anul nașterii câinelui din anul în curs;
2) folosind funcția DateDiff, calculați câte zile au trecut de la naștere până astăzi. Aplicați o metodă într-una dintre sarcini, iar cealaltă în cealaltă.

Interogări de parametri

Când alergi cerere cu parametru, acesta, spre deosebire de o interogare obișnuită pentru o selecție, nu este executat imediat, dar mai întâi, într-o casetă de dialog, vă cere să clarificați unele condiții de selecție. De exemplu, dorim să primim informații complete despre un câine cu un anumit număr de turneu.



Această cerere este aranjată astfel:



În locul în care stă de obicei condiția de selecție, există acum o întrebare (între paranteze drepte) care va fi adresată utilizatorului. Și răspunsul utilizatorului, l-ați ghicit, va fi înlocuit în această celulă ca criteriu de selecție.


Exercițiu: Creați o interogare care va lista toți câinii după numele proprietarului, care este un parametru gratuit.

Interogări grupate

Cu ajutorul constructorilor de expresii, putem efectua operațiuni pe un singur rând: adăugăm valori în celule, transformăm date.
Dar dacă trebuie să procesăm mai multe linii simultan: calculați suma punctelor, găsiți numărul de linii cu aceeași valoare a unui câmp dat?
Pentru aceasta se folosește gruparea (este foarte asemănătoare cu rezumarea în Excel).


Să numărăm câți câini din fiecare rasă au venit la spectacol. Pentru a face acest lucru, transferăm doar două câmpuri în zona de condiții: poreclă și rasă - și apelăm o linie suplimentară operațiuni de grup(prin meniul contextual din zona de condiții):



Acum, să grupăm câinii după rasă și să numărăm numărul de porecle diferite din fiecare grup:



Să rezumăm rezultatele expoziției și să calculăm scorul mediu pentru exterior, scorul mediu pentru antrenament și suma acestora.


Adăugați un tabel cu estimări (tbMarks) în zona tabelului. Grupăm scorurile după numărul turneului câinelui și, dintre operațiunile de grup, alegem valoarea medie Avg (din engleză. in medie- media).


Rulați interogarea și în modul vizualizare, observați că coloanele cu operații de grup au un nume dublu (operație + numele câmpului). Acest lucru este util pentru noi atunci când calculăm cantitatea de puncte.





De asemenea, puteți rotunji valorile la o zecimală: Rotund (+; 1)


Exercițiu: Aflați care câine a cauzat cele mai controversate opinii ale judecătorilor. Pentru a face acest lucru, scade minimul din scorul maxim.

Solicitări de modificare, ștergeri, adăugiri

În prima lecție, am vorbit deja despre faptul că interogările permit nu doar vizualizarea datelor din tabele, ci și editarea înregistrărilor: adăugarea de noi, ștergerea, schimbarea. Tipul de solicitare poate fi modificat utilizând lista de solicitări de pe bara de instrumente.



Operatorul bazei de date a primit noi informații în ajunul expoziției:
1) câinele lui Desi este bolnav și nu va putea participa la expoziție;
2) din greșeală, Guardian, care este de fapt un setter englez, a fost listat ca setter irlandez;
3) proprietarul Migunova a solicitat participarea la expoziția unui alt câine de-al ei (poreclă: Harry, rasă: Gordon Setter, sex: m, data nașterii: 15.09.07).


Să începem editarea bazei de date.
1) Ștergeți înregistrarea din Desi.
Creați o cerere quDelDog. Tipul cererii este pentru ștergere. Odată cu modificarea tipului de cerere, sfera condițiilor se schimbă oarecum. A apărut o nouă celulă Se șterge... Sub aceasta, indicați condiția în care doriți să selectați înregistrările care trebuie șterse. Chiar dacă specificați o condiție de selecție pentru un câmp, înregistrarea ALL va fi ștearsă.



După ce ați făcut clic pe „semnul exclamării”, pe ecran va apărea un mesaj care să ateste că intrarea a fost ștearsă. Acum deschis tb Masă pentru câiniși asigurați-vă că Desi nu este în ea.


2) Pentru Guardian, schimbați setterul irlandez cu setatorul englez.
Creați o cerere quUpdateDog. Tipul de solicitare - pentru actualizare. Îl găsim pe Guardien și îi actualizăm rasa.



Deschide tb Masă pentru câiniși asigurați-vă că rasa Guardien este un setter englez.


3) Adăugați o intrare cu Harry.
Creați o cerere quAddDog. Tipul cererii - adăugați. Adăugarea interogărilor are o particularitate: zona tabelului afișează NU tabelele UNDE adăugați înregistrarea, ci UNDE obțineți datele (dacă este necesar). Specificați tabelul țintă (la care se adaugă înregistrări) în caseta de dialog care apare imediat ce setați tipul de interogare (de adăugat):



Deoarece nu luăm date din alte tabele, ci creăm o nouă înregistrare, zona tabelului trebuie să fie GOLĂ! (nu ar trebui să existe tabele). În zona de stare din linie Camp scrieți CE să adăugați (valoare nouă pentru fiecare câmp) și pe linie Se adaugă UNDE (nume de câmp):



Deschide tb Masă pentru câiniși asigurați-vă că Harry apare în ea!

Limbaj de interogare SQL

Când faceți clic pe semnul exclamării, cererea este executată. Așa pare un începător.
Profesioniștii știu că, de fapt, în acest moment, o declarație este executată într-un limbaj special de interogare SQL. Faptul este că Access nu este singurul sistem de gestionare a bazelor de date (SGBD). Poate ați auzit despre astfel de SGBD pe Internet precum MySQL, FreeBSD ??? Access oferă pur și simplu o interfață foarte ușor de utilizat pentru lucrul cu baza de date, iar în alte SU nu există buton cu semn de exclamare. Dar există neapărat o fereastră specială în care puteți scrie instrucțiuni SQL.
Accesul vă permite, de asemenea, să editați interogări în modul de instrucțiuni SQL:



Regulile limbajului SQL nu sunt atât de complicate. Poți vedea singur! Faceți o interogare simplă (de exemplu, afișați numele, rasa și data nașterii unui câine pe nume Harry). Acum deschideți interogarea de căutare pentru Harry în modul SQL!
Instrucțiunile sunt foarte simple:
SELECT câmp 1, câmp 2, ...
FROM table1, table2, ...
UNDE condiție1, condiție2, ...


Acum deschideți actualizarea, modificați, ștergeți interogările (quDelDog, quUpdateDog, quAddDog) în modul SQL și scrieți șabloanele instrucțiunilor SQL pe o bucată de hârtie (așa cum tocmai a fost făcut pentru interogarea selectată).


Interogările cu un parametru, interogările pentru grupare, interogările cu calcule sunt aceleași interogări SQL, dar cu condiții de selecție ușor mai complexe. Limbajul SQL este un instrument indispensabil pentru cei care lucrează cu baze de date!

Sarcini

Iată subiectele pe care le-am tratat:
- condiții de selecție simple și compuse
- Operator LIKE
- selecție din mai multe tabele
- constructor de expresii
- solicitări cu un parametru
- solicitări de grupare
- solicitări de actualizare, adăugare, ștergere
- Limbaj de interogare SQL.


Sunt multe! Dar, după ce le-ați stăpânit, puteți găsi orice informație în baza de date.


Testează-ți cunoștințele! Rulați următoarele interogări în baza de date (sau redenumiți cele deja executate, astfel încât numele lor să se potrivească cu numele sarcinilor):

1. proba

quSelectDog: Găsiți toți Shar Pei și Gordon Setters din regiuni (NU din Moscova); folosiți operatorul nu egal.

2. Ca operator

cum ar fi: Găsiți toți abonații MTS (cei cu un număr de telefon mobil începând cu 8 (916) ...).

3.expresii

quEvalText: Scrieți o expresie care face un nume de familie cu inițiale din prenumele, prenumele și patronimicul. Ivanov Ivan Ivanovici -> Ivanov I.I.
quEvalDate: Scrieți o expresie care calculează câți ani are un câine până la data nașterii.
quEvalIif: scrie o expresie care determină după vârstă, în ce categorie de vârstă este câinele: „cățeluș” - până la un an; „Junior” - de la unu la doi ani; „Senior” - peste doi ani.
Plus: Aplicați într-o singură sarcină un mod pentru a calcula vârsta câinelui, în celălalt - altul: 1) scădeți anul de naștere al câinelui din anul curent; 2) folosind funcția DateDiff, calculați câte zile au trecut de la naștere până astăzi.

4.parametru

quParametre: Creați o interogare care va lista toți câinii după numele proprietarului, care este un parametru gratuit.

5.grupare

quGroup: Aflați care câine a cauzat cele mai controversate opinii ale judecătorilor.

6. editarea bazei de date

Cu puțin timp înainte de expoziție, proprietarul Gorokhovets a plecat spre reședință permanentă (reședință permanentă) în Germania și i-a predat toți câinii prietenului său Mihail Igorevici Karpov. Necesar:
1) quAddOwner: adăugați o înregistrare despre noul proprietar;
2) quUpdateOwner: schimbați ID-ul proprietarului câinilor Gorokhovets la ID-ul lui Karpov;
3) quDelOwner: eliminați Gorokhovets din baza de date.


Aștept bazele de date cu sarcini finalizate, precum și șabloane de instrucțiuni SQL pentru interogări de actualizare, modificare, ștergere.

6.1. Câmpuri calculate.

6.2. Creați expresii utilizând Expression Builder.

6.3. Prezentare generală a funcțiilor încorporate ale MS Access DBMS.

6.4. Interogări rezumative.

6.5. Interogări încrucișate.

Foarte des, atunci când formați un set de înregistrări, este necesar să efectuați calcule asupra datelor (determinați vârsta angajatului, costul comenzii, procentul vânzărilor, evidențiați o parte din codul articolului etc.) care este, afișați informații care nu sunt stocate în baza de date) sau efectuați anumite operațiuni pentru prelucrarea directă a datelor selectate.

În MS Access QBE, astfel de capabilități sunt furnizate prin câmpuri calculate și operațiuni de grup.

6.1. Câmpuri calculate

Un câmp calculat este o expresie formată din operatori (aritmetică, comparație, booleană, concatenare) și operanzi. Constantele, funcțiile încorporate sau definite de utilizator și identificatorii pot fi folosiți ca operanzi, de exemplu

Cost: Bunuri! Preț * Cantitate * (1-reducere)

Număr de bărbați: sumă (IIf (sex = "m"; 1; 0))

Numele complet: Numele & "" & Stânga (Prenume; 1) & "." & Stânga (Numele de mijloc; 1) & "."

Costul, numărul de bărbați și numele complet sunt numele câmpurilor calculate și sunt afișate în modul tabel în antetul coloanei, caracterul de colon acționează ca un separator între numele câmpului calculat și expresie.

Dacă numele unui tabel sau câmp conține spații, atunci identificatorul său trebuie să fie inclus între paranteze pătrate în expresie, de exemplu

Cost: Preț * [Cantitatea articolului]

Un câmp calculat este creat direct în formularul QBE prin introducerea unei expresii într-o celulă Camp orice coloană liberă. Rezultatele calculelor afișate în câmp nu sunt stocate în tabelul de bază. Calculele sunt efectuate din nou de fiecare dată când se execută interogarea, astfel încât rezultatele reprezintă întotdeauna conținutul curent al bazei de date.

Nu puteți actualiza manual rezultatele calculate.

Pentru a construi expresii complexe, MS Access include un utilitar numit Generator de expresii.

6.2. Crearea de expresii cu Expression Builder

Expression Builder poate fi lansat făcând clic pe tastă Construi pe bara de instrumente Constructor de interogări sau selectând comanda de meniu Construi ....

Figura 6.2. Caseta de dialog Expression Builder
cu o expresie formată

6.3. Prezentare generală a funcțiilor DBMS încorporateDOMNIȘOARĂ Acces

SGBD MS Access conține mai mult de 100 de funcții încorporate (Figura 6.3), care pot fi utilizate la formarea unui câmp calculat sau la setarea unei condiții de selecție.

Returnează valoarea zilei lunii de la 1 la 31

Returnează o valoare lunară de la 1 la 12

MonthName (luna [; pavilion])

Returnează numele lunii corespunzătoare numărului lunii: 1 - ianuarie, 2 - februarie etc. Dacă valoarea steagului argument este True, funcția returnează abrevierea lunii: 1 - ianuarie, 2 - februarie etc. .

Returnează o valoare anuală de la 100 la 9999

Ziua săptămânii (data [; data])

Dacă nu este specificat numărul, returnează o zi a săptămânii de la 1 (duminică) la 7 (sâmbătă). Dacă numărul este 0, atunci revine o zi a săptămânii de la 1 (luni) la 7 (duminică)

Returnează un număr întreg de la 0 la 23 reprezentând ora

DatePart (interval; dată)

Returnează o valoare numerică bazată pe valoarea argumentului interval:

„q” - sfert (de la 1 la 4);

„m” - lună (de la 1 la 12);

„aaaa” - an (de la 100 la 9999);

„ww” - săptămână (de la 1 la 53);

etc. (vezi ajutorul pentru funcție).

Returnează data curentă a sistemului

Continuarea tabelului 6.1

Descriere

Stânga (text; n)

Returnează n caractere din stânga textului argumentului

Dreapta (text; n)

Returnează n caracterele corecte ale textului argumentului

Mid (text; start_position [; n])

Returnează n caractere începând cu poziția start_position a argumentului text. Dacă n nu este specificat, atunci returnează toate caracterele până la sfârșitul șirului începând de la poziția start_position a argumentului text.

Returnează numărul de caractere (lungimea șirului) din argumentul text

LTrim (text)

Returnează valoarea șirului argumentului text fără spații de conducere

RTrim (text)

Returnează valoarea șirului argumentului text fără spații

Decupare (text)

Returnează valoarea șirului argumentului text fără spații de conducere și de urmărire

Returnează valoarea șirului numărului argumentului

Format (variabil; format)

Returnează valoarea variabilei argument în formatul dat de formatul argumentului

6.3. Interogări rezumative

Când se analizează date, foarte des nu sunt înregistrările individuale care sunt de interes, ci totalurile pentru grupurile de date, de exemplu:

Numărul de tranzacții cu partenerii pentru o anumită perioadă de timp;

Vânzări medii pentru fiecare lună pentru anul precedent.

Răspunsurile la astfel de întrebări sunt date de interogarea finală.

Pentru a calcula valorile totale, faceți clic pe buton Operațiuni de grup pe bara de instrumente Constructor de interogări astfel încât linia să apară pe formularul QBE Funcționarea în grup(după numele tabelului).

În mod implicit, pentru fiecare câmp introdus în formularul de solicitare, valoarea este setată Gruparea(nu sunt rezumate rezultate).

Pentru a rezuma, este necesar să înlocuiți instalarea Gruparea pentru o funcție finală specifică. SGBD MS Access oferă 9 funcții (Tabelul 6.2), asigurând executarea operațiilor de grup.

Tabelul 6.2

Programare

Returnează suma unui set de valori

Returnează media aritmetică a unui set de valori

Returnează cea mai mică valoare dintr-un set de valori

Returnează cea mai mare valoare dintr-un set de valori

Returnează numărul de înregistrări dintr-un set de valori care nu sunt Nule

Returnează prima valoare a unui câmp dintr-un grup

Returnează ultima valoare a unui câmp dintr-un grup

Returnează abaterea standard a unui set de valori

Returnează varianța unui set de valori

Funcționarea în grup există o instalație Expresie... Această setare se aplică atunci când expresia (linia Camp) folosește mai multe funcții rezumative.

În lista derulantă a șirurilor Funcționarea în grup există o instalație Condiție... Această setare se aplică atunci când condiția de selecție este scrisă în rândul Criterii, dar datele coloanei (câmpurilor) nu ar trebui să participe la operația de grup.

Pentru a rezolva probleme statistice mai complexe din SGBD MS Access, este oferit un tip special de interogare - interogări încrucișate.

6.4. Interogări încrucișate

Interogare încrucișată Este un tip special de interogare de grup care reflectă rezultatele calculelor statistice pe baza valorii unui câmp din tabel.

Trei câmpuri sursă de bază sunt suficiente pentru a construi o interogare de referință încrucișată. Prin repetarea valorilor unui câmp, se formează numele titlurilor rândurilor din tabelul final (pivot) (Figura 6.4). Prin repetarea valorilor unui alt câmp, se formează numele titlurilor de coloană ale tabelului final (pivot). Rezultatele agregării pentru al treilea câmp sunt afișate în celulele PivotTable (zona valorică). Un exemplu de interogare încrucișată în modul de proiectare este prezentat în Figura 6.5, iar rezultatele interogării sunt prezentate în Figura 6.5. 6.6.

Mai multe câmpuri pot fi plasate în zona antetului rândului, în timp ce un singur câmp poate fi plasat în alte zone.

Condițiile de selecție pot fi specificate într-o interogare de referință încrucișată. Sortarea poate fi efectuată numai de câmpurile situate în zona antetului rândului.

Figura 6.4. Aspect Crosstab


Figura 6.5. Interogare de referință încrucișată formată în QBE


Figura 6.6. Rezultatul executării unei interogări în modul Tables

© 2021 huhu.ru - Faringe, examinare, curgerea nasului, afecțiuni ale gâtului, amigdalele