Sunteți pe pagina 1din 7

Informatică aplicată

Fișă laborator 7 – Interogări de tip tabel încrucişat (CrossTab) & de acțiune

Interogarea tip tabel încrucişat


Sunt interogări de tip total, cu deosebirea că în listele obişnuite care folosesc denumirea câmpurilor ca
titluri de coloane, tabelul încrucişat este un mod de a sintetiza datele într-o formă specifică.
Interogările de tip tabel încrucişat (CrossTab Query) sunt extrem de utile în scopul analizei
multidimensionale a datelor permiţând obţinerea unor situaţii sintetice asemănătoare tabelelor pivot din
cadrul Microsoft Excel.
Practic, este posibilă elaborarea unor tabele în care gruparea şi ordonarea datelor se realizează atât pe linii
cât şi pe coloane la intersecţia cărora se pot efectua calcule simple sau complexe.

Pentru o interogare tabel încrucişat sunt necesare cel puţin 3 câmpuri:


– unul care să furnizeze valorile pentru titlurile de rând (Row Heading), cu menţiunea că se pot
alege mai multe câmpuri antet de rând;
– unul care să dea valorile pentru titlurile de coloane (Column Heading); un singur câmp
poate fi antet de coloană;
– unul care să fie bază pentru calcularea valorilor sintetice de afişat la punctele de intersecţie rând –
coloană; aceste valori se obţin, de regulă, prin însumare şi numărare utilizând funcţiile Sum şi Count.

Etapele ce trebuie urmate pentru realizarea unei astfel de cereri de interogare sunt următoarele (Access
dispune şi de un program wizard ce permite elaborarea asistată a unor astfel de interogări):
1. Elaborarea unei interogări de selecţie în modul Design View. Prin selectarea Create, Query Design se
vor alege tabelele ce conţin datele şi se vor selecta câmpurile dorite pentru afişare şi eventualele câmpuri
pentru care se vor impune restricţii.
2. Din meniul Query se va selecta opţiunea CrossTab Query ce va avea ca efect imediat afişarea
liniilor Total şi Crosstab în grila interogării.
3. Se va specifica modul de agregare a datelor, respectiv funcţiile totalizatoare în linia Total.
4. În linia CrossTab se va opta pentru Row Heading în cazul câmpurile ce vor fi afişate pe liniile
tabelului, Column Heading pentru câmpul ce va fi afişat pe verticală, şi Value pentru valorile ce vor fi
afişate la intersecţia liniilor cu coloanele. Este permisă existenţa mai multor câmpuri ordonate pe
orizontală (Row Heading), dar a unui singur câmp Column Heading şi a unui singur câmp Value.

Interogări de acţiune
Interogările de acţiune pot avea ca rezultat:
• Crearea de noi tabele (Make Table Query)
• Actualizarea datelor (Update Query)
• Adăugarea de noi înregistrări (Append Query)
• Ştergerea înregistrărilor (Delete Query)
Modul de elaborare a unei interogări tip acţiune este similar celui prezentat în cazul interogărilor de
selecţie, presupunând ca etapă suplimentară specificarea explicită prin intermediul meniului Query a
tipului de cerere dorit. Modificările asupra bazei de date sunt efectuate doar în momentul execuţiei
interogării.
Este recomandată proiectarea în prealabil a cererii ca o simplă interogare de selecţie şi verificarea
rezultatelor ce vor fi afectate deoarece nu există posibilitatea revenirii în cazul ştergerii sau modificării
eronate a înregistrărilor.

Interogări pentru crearea de noi tabele (Make Table Query)


Crearea de noi tabele pe baza înregistrărilor din tabelele deja existente presupune parcurgerea
următoarelor etape:

1
1. Elaborarea unei interogări de selecţie în modul Design View (vor fi luate în calcul doar câmpurile ce
dorim să facă parte din structura noii tabele, iar, în cazul în care sunt necesare şi alte câmpuri pentru
aplicarea unor criterii, acestea nu vor fi marcate în linia Show a grilei QBE).
2. Apelarea din meniul Query a opţiunii Make Table Query şi specificarea în casete Make Table a
numelui noii tabele (se poate opta pentru crearea noii tabele într-o altă bază de date bifând opţiunea
Another Database şi specificând numele fişierului).
3. Lansarea în execuţie a interogării.
Tabela rezultată va moşteni doar tipurile de date şi dimensiunile câmpurilor din tabelele
sursă, nu şi cheia primară sau eventualele proprietăţi la nivel de câmp ori tabelă.

Interogări pentru actualizarea datelor (Update Query)


Acest tip de interogări permit modificarea valorilor datelor din unul sau mai multe câmpuri ale
înregistrărilor ce satisfac restricţiile impuse de utilizator.
Pentru a realiza o interogare de tip Update este necesară selectarea în modul Design View a câmpurilor ce
vor fi actualizate şi, eventual, a celor ce fac obiectul restricţiilor, după care se va apela din meniul Query
opţiunea Update Query. Ca rezultat al acestei operaţii în grila QBE va fi disponibilă linia Update To în
care se va putea completa formula de calcul sau valoarea dorită pentru actualizare.
În cadrul interogărilor Update nu sunt admise modificări asupra câmpurilor cheie primară sau modificări
ce ar putea conduce la nerespectarea restricţiilor de integritate. O situaţie ce ar putea genera erori survine
atunci când, în cazul câmpurilor de tip text, valoarea rezultată depăşeşte lungimea câmpului din tabelă. În
acest caz valoarea va fi trunchiată din partea dreaptă.

Interogări pentru adăugarea de înregistrări (Append Query)


Interogările pentru adăugare oferă utilizatorilor posibilitatea inserării de noi înregistrări în tabel pornind
de la înregistrările existente. Pentru a realiza o interogare de tip Append este necesară parcurgerea
următoarelor etape:
1. Elaborarea unei interogări de selecţie în modul Design View. Se va alege tabela ce conţine datele şi vor
fi luate în calcul doar câmpurile ce conţin valorile ce vor fi adăugate, iar, în cazul în care se doreşte
aplicarea unor criterii de selecţie a acestora, se vor adăuga câmpurile de restricţionat.
2. Se vor tasta eventualele condiţii în linia de criterii a interogării.
3. Din meniul Query se va selecta opţiunea Append Query ce va conduce la afişarea ferestrei Append în
care se va selecta numele tabelei în care dorim adăugarea.
4. Transformarea interogării de selecţie într-o interogare de adăugare are ca efect apariţia rândului
Append To în fereastra de proiectare a interogării. În acest rând se va specifica pentru fiecare câmp din
tabela ce conţine datele denumirea câmpului corespondent din tabela unde vor fi adăugate.

Interogări pentru ştergerea de înregistrări (Delete Query)


Interogările acţiune de tip Delete oferă posibilitatea eliminării mai multor înregistrări din tabele pe baza
unor criterii impuse de utilizator. Acţiunea interogărilor de ştergere acompaniată de opţiunea de ştergere
în cascadă configurată în fereastra Relationships poate conduce la ştergerea simultană a datelor din mai
multe tabele. Pentru a realiza o interogare de ştergere se elaborează în mod normal o cerere selectându-se
câmpurile dorite şi impunându-se restricţiile necesare după care se apelează din meniul Query opţiunea
Delete.

2
Să se realizeze folosind baza de date Rastel_lab6 următoarele interogări, dând nume sugestive
interogărilor care să înceapă cu Interogarea, apoi numărul interogării, apoi o denumire sugestivă (de
exemplu pentru prima interogare “Interogarea1_arme_studenti”).

1. Realizați o interogare de tip CrossTab care să afișeze de câte ori au împrumutat studenții armele
existente în tabela Arme.
Se va selecta Create, Query Design, se aleg tabelele Imprumuturi și Arme. Selectăm opţiunea Crosstab
din meniul Query. Ca rezultat, în partea de jos apare rândul Crosstab.
a) Stabilim câmpurile ale căror valori vor deveni denumiri ale rândurilor tabelului obţinut în urma
interogării. Pe rând (Row Heading) voi avea studenții.
b) Stabilim, în mod similar, câmpul ale cărui valori vor deveni denumiri ale coloanelor (Column
Heading). În cazul nostru, pe coloane voi avea denumirea armei. Acesta va fi câmpul pentru care
se aplică "încrucişarea". Acest câmp va trebui să apară de două ori în interogare, aşa cum se vede
în figura de mai jos:
c) La a doua apariţie a câmpului, în rândul Total înlocuim opţiunea Group By cu operatorul Count,
iar în rândul Crosstab stabilim optiunea Value pe care o selectam din lista derulanta.

2. Sa se realizeze o interogare de tip crosstab prin care sa afișați studenții, anul în care sunt și solda
acestora.
Se va selecta Create, Query Design, se alege tabela Studenti. Selectăm opţiunea Crosstab din meniul
Query.

3
3. Sa se realizeze printr-un query de tip Make Table, o tabela care să conțină toti studenții de anul
1.
Se va selecta Create, Query Design, se alege tabela Studenti. Selectăm opţiunea Make table din meniul
Query, stabilim denumirea noii tabele, alegem câmpurile pe care le dorim în noua tabela, punem condiția
de an studiu I.

4. Sa se realizeze printr-un querry de tip Make Table, o tabela care să conțină toți studenții a căror
soldă este mai mare de 150 lei.
Se va selecta Create, Query Design, se alege tabela Studenti. Selectăm opţiunea Make table din meniul
Query, stabilim denumirea noii tabele, alegem câmpurile pe care le dorim în noua tabela, punem condiția
de solda > 150.

4
5. Sa se realizeze un query de tip Append, care sa adauge in tabela creata la punctul 3 toti studenții
de anul 2.
Se va selecta Create, Query Design, se alege tabela Studenti. Selectăm opţiunea Append din meniul
Query, se alege tabela in care se vor adauga inregistrari, alegem câmpurile pe care dorim sa le adaugam,
punem condiția de an studiu II.

6. Sa se realizeze un query de tip Append, care sa adauge în tabela creata la punctul 4 toți studentii
cu solda cuprinsă între 100 și 150 de lei.
Se va selecta Create, Query Design, se alege tabela Studenti. Selectăm opţiunea Append din meniul
Query, se alege tabela in care se vor adauga inregistrari, alegem câmpurile pe care dorim sa le adaugam,
punem condiția ca solda sa fie cuprinsa intre 100 si 150 lei.

7. Sa se realizeze un query de tip Update, pentru tabela Studenti, care sa actualizeze solda la toți
studenții de anul I la 344 de lei.
Se va selecta Create, Query Design, se alege tabela Studenti, tabela in care se va face update-ul. Selectăm
opţiunea Update din meniul Query, alegem câmpurile de care avem nevoie pentru a face update-ul si a
pune conditiile: solda si an studiu.

5
8. Sa se realizeze un query de tip Update, pentru tabela creata la punctul 4, care sa indexeze solda
cu 10% pentru toți studenții cu solda mai mică de 200 de lei.
Se va selecta Create, Query Design, se alege tabela realizata la punctul 4, tabela in care se va face
update-ul. Selectăm opţiunea Update din meniul Query, alegem câmpul de care avem nevoie pentru a
face update-ul si a pune conditia: solda.

6
9. Sa se realizeze un query de tip Delete, pentru tabela creata la punctul 3, care sa stearga toti
studenții de anul 2.
Se va selecta Create, Query Design, se alege tabela realizata la punctul 3, tabela din care se vor sterge
inregistrari. Selectăm opţiunea Delete din meniul Query, alegem câmpul de care avem nevoie pentru
stabilirea conditiei dupa care efectuam stergere: an studiu.

10. Realizati cel puțin o interogare din cele de tipul:

S-ar putea să vă placă și