TUTORIALE TIC COLEGIUL ECONOMIC "DPM" ALBA IULIA
Profesor
Simona Dogaru ,
ISBN 978-973-0-31260-7
; Alba Iulia, 2020 ISBN
978-973-0-31261-4 ; Alba Iulia, 2020
|
În acest capitol vom exersa metode de creare a interogărilor pe baza unor condiţii impuse de problemă.
Operaţii care trebuie cunoscute
-
Creare interogări de
selecţie: Din fila
Creare , grupul Altceva alegem Proiectare Interogare. Introducem
tabelele, câmpurile şi edităm condiţiile în linia Criterii
ori în linia Sau.
-
Creare interogări de actualizare: Din fila Proiectare avem comenzile : Ştergere, Adăugare, Actualizare
-
Creare interogare
încrucişată: Din fila Proiectare
alegem Tabel încrucişat
Vom folosi baza de date Scoala de la
aplicaţia 1 din partea 4. Aceasta conţinea tabelele cu structurile de
mai jos iar legătura era Clase→1,n→Elevi.
Tabela Clase
Denumire câmp |
Tip de dată |
Dimensiune câmp |
Clasa |
Text |
3 |
Diriginte |
Text |
20 |
Sala |
Text |
10 |
profil |
Text |
35 |
Tabela Elevi
Denumire câmp |
Tip de dată |
Dimensiune câmp |
Nr
matricol |
Numar |
Intreg |
Nume
elev |
Text |
20 |
Media |
Numar |
Simpla precizie, 2 zecimale |
Data
nasterii |
Data/Ora |
Data medie |
Caminist |
Da/Nu |
|
Clasa |
Text |
3 |
Veţi crea următoarele interogări:
a)
Să se afişeze numai elevii din
clasa 12A.
b)
Să se afişeze numai elevii din
clasa 12B şi care au media mai mare decât 8.50.
c)
Să se afişeze elevii care sunt
căminişti sau care au media 10.
d)
Să se afişeze elevii a căror
nume începe cu A.
e)
Să se afişeze toate profilurile
excluzând profilul servicii.
f)
Afişaţi toţi elevii născuţi
între 5/05/1988 şi 6/06/1989.
Rezolvare:
a)
1.
Deschidem baza de date Scoala şi din fila Creare
, grupul Altceva alegem Proiectare Interogare.
2.
Din fereastra de dialog Afişare tabel vom selecta prin dublu click tabelele ce
participă la realizarea interogării, în cazul nostru numai tabela Elevi. Acesta va apărea în partea de sus a ferestrei de
construcţie.
3.
Pentru a adăuga câmpurile ce vor
forma coloanele interogării avem trei modalităţi:
-
Prin dublu click pe numele
câmpului
-
Poziţionăm mouse-ul pe numele
câmpului şi prin operaţia de glisare aducem câmpul până în poziţia
dorită, pe linia Câmp
-
Dăm click cu mouse-ul în celula
de pe linia Câmp şi de la săgeata de derulare selectă
câmpul
4.
Poziţionăm cursorul pe linia Criterii de pe coloana Clasa şi scriem
valoarea căutată , adică 12A.
5.
Rulăm interogarea apăsând pe
comanda
din stânga filei Proiectare.
Vor fi afişate numai datele ce corespund valorii „12A”.
6.
Salvăm interogarea cu un nume
sugestiv, de exemplu „elevii din 12A”.
b)
1.
Repetăm primii 4 paşi de la
punctul a.
2.
Pe linia Criterii
vom trece condiţiile pe aceeaşi linie deoarece sunt legate prin şi:
-
Pe coloana Clasa
vom scrie „12B”
-
Pe coloana Media
>8.50
3.
Rulăm interogarea şi o salvăm
sub numele „elevi din 12B cu media peste
c)
Parcurgem aceeaşi paşi
pentru crearea unei interogări iar la Criterii vom
avea ca în figura de mai jos, cu menţiunea că valoarea Da
este pe linia Criterii iar valoarea 10
se află pe linia Sau:
d)
Criteriul ce va trebui impus
este: Like "A*" .
e)
Criteriul ce va trebui impus
este: Not Like "servicii" .
f)
Criteriul va fi : Between #5/5/1988# And #6/6/1989# .
Deschideţi aceeaşi bază de date de mai sus şi proiectaţi o
interogare care să afişeze elevii dintr-o clasă introdusă de utilizator
la fiecare rulare a interogării şi o alta care va afişa elevii ce au
media mai mare decât o valoare introdusă de la tastatură de către
utilizator.
Rezolvare:
Dacă ar fi să reformulăm, enunţul ar suna astfel:
a)
Care sunt
elevii din clasa…?
b)
Care sunt elevii cu media mai mare decât….?
a)
1.
Deschidem fereastra de dialog
pentru a crea interogarea cu parametri.
2.
Adăugăm tabela Elevi
şi câmpurile nume_elev şi clasa.
3.
La Criterii vom
scrie [care_este_clasa?].
4.
Din fila Proiectare alegem Parametri şi introducem acelaşi text în coloana Parametru fără parantezele drepte. În coloana Tip
de date alegem tipul corespunzător coloanei clasa adică
text. Apoi OK.
5.
De câte ori rulăm interogarea
apare o fereastră de dialog care ne solicită să introducem clasa ce se
doreşte a fi afişată.
6.
Este vorba de introducerea
parametrului care la fiecare are o valoare diferită, în funcţie de
dorinţa utilizatorului. După ce se introduce valoarea apăsăm OK.
b)
1.
Deschidem fereastra de dialog
pentru a crea interogarea cu parametru.
2.
Adăugăm tabela Elevi
şi câmpurile nume_elev şi media.
3.
La Criterii vom
scrie >[media_mai_mare_decat..].
4.
Deschidem comanda Parametri şi
introducem acelaşi text în coloana Parametru. În
coloana Tip de date alegem tipul corespunzător
coloanei media adică simplă precizie.
Apoi OK.
5.
De câte ori rulăm interogarea
apare o fereastră de dialog care ne solicită să introducem clasa ce se
doreşte a fi afişată. După ce se introduce valoarea apăsăm OK.
În baza de date Scoala veţi mai crea o
tabelă cu structura:
a)
Tabela Absente
cu câmpurile: nr_matricol, abs_mot, abs_nemot.
b)
Proiectaţi o relaţie între Elevi→1,1→Absente.
c)
Să se afişeze pentru fiecare
elev totalul absenţelor (motivate+nemotivate).
d)
Să se calculeze şi să se afişeze
pentru fiecare elev vârsta.
Rezolvare:
Punctele a şi b se vor
rezolva în acelaşi mod ca la problemele precedente.
c)
Cerinţa se va rezolva
printr-o interogare în care o coloană va conţine un calcul matematic,
astfel:
1.
Deschidem fereastra pentru
interogare şi introducem tabelele Absente şi Elevi.
2.
Introducem câmpurile Nume_elev,
abs_mot şi abs_nemot care vor deveni coloane
pentru noua interogare.
3.
În următoarea coloană vom
scrie Total_absente: [abs_mot]+[abs_nemot] , care
reprezintă:
-
Total_absente este numele noii coloane urmat de simbolul 2
puncte „:”
-
Urmează numele primei coloane
încadrat de paranteze drepte apoi operatorul matematic „+”
şi numele celei de-a doua coloane, încadrată şi aceasta de paranteze
drepte.
Deci când avem de făcut calcule în care vom face
referire la nume de câmpuri acestea se vor încadra între paranteze
drepte.
d)
1.
Vom adăuga numai tabela Elevi
pentru a crea interogarea.
2.
Coloana în care vom efectua
calculul va conţine formula:
Varsta:
Year(Date())-Year([data nasterii])
Unde:
-
Year(Date()) returnează anul curent deoarece funcţia Year() extrage anul dintr-o dată calendaristică iar
funcţia Date() returnează data curentă.
-
Year([data nasterii]) va returna anul naşterii pe aceleaşi principii de
calcul prezentate mai sus
În baza de date Scoala care conţine deja
cele trei tabele veţi proiecta următoarele interogări totalizatoare:
a)
Să se calculeze numărul de elevi
din fiecare clasă.
b)
Să se calculeze câte absenţe
nemotivate sunt de fiecare clasă.
c)
Calculaţi valoarea medie pe
clasă a absenţelor motivate.
d)
Aflaţi care este media pe clasă
şi care este cea mai mică medie din fiecare clasă.
Rezolvare:
Pentru rezolvarea următoarelor puncte vom utiliza interogări
totalizatoare.
a)
1.
Pentru a putea realiza o
numărare corectă va trebui să grupăm elevii pe clase şi apoi să-i
numărăm folosindu-ne de funcţia Contor aplicată
câmpului Nr matricol .
2.
Deschidem fereastra de
construcţie a interogării.
3.
Afişăm tabela Elevi
şi introducem câmpurile Clasa şi Nr
matricol.
4.
Apelăm comanda
din
dreapta filei Proiectare.
5.
Pe linia Total,
la coloana Clasa alegem opţiunea Grupare
după iar la Nr matricol derulăm şi alegem Contor.
6.
În faţa câmpului nr
matricol vom introduce o altă denumire, prin aceeaşi metodă de la
aplicaţia 3. Scriem noul nume urmat de simbolul ”:” şi
numele câmpului căruia îi aplicăm operaţia
matematică Nr_elevi:
nr matricol
b)
Elevii vor fi grupaţi tot după clase, şi în cadrul
fiecărei clase vom însuma toate absenţele nemotivate.
1.
Deci apelăm tabelele Absenţe
şi Elevi cu câmpurile aferente: clasa
şi abs_nemot.
2.
Pe linia Total
vom apela funcţiile Grupare după şi Sumă,
ca şi în figura de mai jos:
3.
În faţa coloanei totalizatoare
vom introduce un alt nume Total abs nemot :
c)
Elevii vor fi grupaţi tot după clase, şi în cadrul
fiecărei clase vom însuma toate absenţele nemotivate 1.
1.
Deci apelăm tabelele Absenţe
şi Elevi cu câmpurile aferente: clasa
şi abs_mot.
2.
Pe linia Total
vom apela funcţiile Grupare după şi Medie,
ca şi în figura de mai jos:
3.
În faţa coloanei totalizatoare
vom introduce un alt nume Media abs mot :
4.
Pentru ca media afişată în
coloana a doua să fie numai cu 2 zecimale vom da click dreapta în
celula unde am scris Media abs mot… iar din meniul
contextual alegem Proprietăţi sau alegem
comanda Foaie de proprietăţi din fila
Proiectare.
La
proprietatea Format alegem Fix iar la
Zecimale selectăm valoarea 2.
d)
Elevii vor fi grupaţi tot după clase, şi în cadrul
fiecărei clase vom însuma toate absenţele nemotivate 1.
1.
Deci apelăm tabela Elevi
cu câmpurile aferente: clasa, media şi media.
2.
Pe linia Total
vom apela funcţiile Grupare după, Medie şi
Min, ca şi în figura de mai jos:
În baza de date Scoala veţi proiecta
următoarele interogări de actualizare:
a)
Să se şteargă toţi elevii clasa
12E.
b)
Toţi elevii de la profil „turism” vor fi transferaţi la profilul „intensiv
engleza”.
c)
Creaţi o tabelă nouă cu numele Caministi ce va conţine numai elevii care stau la cămin,
cu numele şi clasa.
Rezolvare:
a)
Avem de conceput o interogare de ştergere.
1.
Introducem tabela Elevi
şi câmpul clasa.
2.
Din fila Proiectare
alegem comanda Ştergere
din
grupul Tip interogare.
3.
Pe linia nou apărută Ştergere
lăsăm funcţia implicit aleasă de program Unde.
4.
Pe linia Criterii
vom edita valoarea care se va şterge: „12E”.
5.
Atunci când rulăm interogarea
vom fi întrebaţi dacă suntem siguri de ştergere şi apăsăm pe Yes (Da).
6.
Efectul ştergerii se poate
observa în tabela Elevi, unde nu mai există nici un
elev în clasa 12E.
b)
Avem de conceput o interogare de corecţie.
1.
Introducem tabela Clase
şi câmpul profil.
2.
Din fila Proiectare
alegem tip de interogare Actualizare
.
3.
Pe linia nou apărută Actualizare
la introducem valoarea nouă intensiv engleza.
4.
Pe linia Criterii
vom edita valoarea care se va modifica: „turism”.
5.
Atunci când rulăm interogarea
vom fi întrebaţi dacă suntem siguri de actualizare şi apăsăm pe Yes (Da).
6.
Efectul actualizării îl vom
observa în tabela Clase. Nu mai avem profil turism deoarece acesta s-a transformat în intensiv
engleza.
c)
Avem de editat o interogare da adăugare.
1.
Vom crea o tabelă nouă cu numele
Caministi ce conţine câmpurile nume elev
(text) şi sta_la_camin (da/nu).
2.
Deschidem fereastra specifică
interogărilor şi selectăm tabela Elevi din care vom
apela numai câmpurile nume elev şi caminist.
3.
La Criterii, pe
coloana caminist vom scrie Da.
4.
Din fila Proiectare
alegem interogarea Adăugare care va avea ca efect
apariţia liniei Adăugare la.
5.
Pe această linie vom alege
câmpurile corespunzătoare din tabela nou creată Caministi,
în care se vor face adăugările.
6.
Când rulăm interogarea vom fi
întrebaţi dacă suntem siguri pe adăugarea făcută. Alegem Yes
şi deschidem tabela Caministi pentru a urmări efectul
(vezi figura de mai jos).
Observaţie
De câte ori veţi da dublu click pe o interogare de ştergere,
actualizare sau adăugare aceasta va produce efectul scontat. Adică cea
de ştergere va şterge datele pentru care a fost creată, cea de
actualizare va tot modifica datele iar cea de adăugare va adăuga de
fiecare dată aceleaşi date.
În baza de date Scoala veţi proiecta
următoarele interogări încrucişate:
a)
Care este numărul de elevi din
fiecare clasă cu aceeaşi medie.
b)
Câţi elevi din fiecare clasă
sunt căminişti sau necăminişti?
Rezolvare:
Acest tip de interogări seamănă cu tabele pivot din Excel.
a)
Datele trebuie grupate pe
rând după câmpul clasa şi apoi după câmpul media
iar numerotarea o vom efectua după câmpul nr_matricol.
1.
Deschidem interogarea şi adăugăm
tabela Elevi.
2.
Introducem câmpurile media,
clasa şi nr matricol.
3.
Din fila Creare
alegem Expert interogare şi apoi Expert
interogare de tip tabel încrucişat.
4.
În linia Tabel
încrucişat care apare alegem pe rând: Antet rând
câmpul media, Titlu coloană va fi
câmpul clasa şi Valoare va fi câmpul Nr matricol la care aplicăm funcţia Numărare
b)
Datele trebuie grupate pe
rând după câmpul clasa şi apoi după câmpul caminist
iar numerotarea o vom efectua după
câmpul nr_matricol.
1.
Deschidem interogarea şi adăugăm
tabela Elevi.
2.
Introducem câmpurile clasa,
caminist şi nr matricol.
3.
Din fila Creare
alegem Expert interogare şi apoi Expert
interogare de tip tabel încrucişat.
4.
În linia Tabel
încrucişat care apare alegem pe rând: Antet rând
pentru câmpul clasa, Titlu coloană
pentru căminist şi Valoare la nr matricol cu funcţia Numărare (Contor).
În baza de date Scoala, în tabela Absente veţi introduce încă o coloană cu numele nota_purtare pe care o veţi popula cu note. Veţi proiecta
o interogare care va afişa elevii promovaţi sau repetenţi în funcţie de
nota primită la purtare.
Rezolvare:
Fiind vorba de o discuţie o vom efectua cu funcţia IIf care
are aceeaşi sintaxă ca şi cea din Excel.
1.
Deschidem interogarea în care
introducem cele două tabele Absente şi Elevi.
2.
Selectăm câmpurile nume
elev şi nota_purtare.
3.
Adăugăm noua coloană cerută
căreia îi dăm numele Situaţia.
Situatia:
IIf([nota_purtare]>5,"promovat","repetent")