cp6 - interogari

5
AMS III – CP6 BAZE DE DATE ŞI SISTEME INFORMATICE ADMINISTRATIVE 6.Interogări (Qerie!" 6.#. $ener%&ită'i Interog%re% on!tă )n e*tr%gere% +%te&or +intr,o t%-e&ă (t%-e&e" +intr,o interog%re %nterio%ră !% +in %/-e&e 0re& r%re% % e!tor% )ntr,o 1or/ă /%i /&t !% /%i 0'i 1rni3%re% in1or/%'ii&or ătre ti&i3%tori. Rezultatele interogărilor pot fi folosite ca atare sau pot constit crearea formularelor şi rapoartelor. Principalele o0er%'ii care se pot realiza cu ajutorul interogărilor sunt: extragerea din tabele numai a câmpurilor relevante pentru utiliza extragerea înregistrărilor din tabele prin specificarea unor crit regăsirea şi ordonarea datelor după anumite criterii; crearea de câmpuri calculate; extragerea datelor din una sau mai multe tabele şi realizarea uno crearea de tabele! adăugarea înregistrărilor în tabele! ştergerea actualizarea datelor; combinarea şi compararea ieşirilor prin realizarea mai multor int interogarea şi a altor baze de date "#oxPro! $%& $erver'; pregătirea datelor în vederea afişării lor în formulare sau rapo (n )icrosoft *ccess se pot crea următoarele ti0ri +e interogări : interogări de selecie; interogări parametrice; interogări încrucişate; interogări de aciune. Interogări&e +e !e&e 'ie extrag informaii din unul sau mai multe tabele şi de listă. $unt cel mai uşor de creat şi au avantajul că pot afişa un nu mare capacitate "datele care îndeplinesc condiiile specificate'. ,le p afişat! modificare ce va fi văzută şi în tabelul sursă. -e asemenea! pe este reuniunea de câmpuri din tabele între care nu există nici o legătu Interogări&e 0%rAMSetri e nu sunt un tip special de interogări! o funcie folosită pentru toate celelalte interogări prezentate mai sus; ele folo efectuând modificări în criteriile de selecie. Interogări&e ti0 t%-e& )n r i2%t centralizează în formatul unei foi de calcu unul sau mai multe tabele. -atele rezultate după execuia unei astfel d un format potrivit pentru analiza datelor şi crearea de grafice. Interogări&e +e % 'ine creează un nou tabel în baza de date sau realizează ale unui tabel existent. (n general! toate interogările de aciune pot selecie. ,le permit adăugarea! modificarea sau ştergerea de înregistră Există patru tipuri de interogări de acţiune: interogări de generare a unui nou tabel din datele coninute în se interogări de adăugare a noi înregistrări într+un tabel; interogări de ştergere a unor înregistrări dintr+un tabel; interogări de actualizare a unor înregistrări dintr+un tabel! conf îndeplinită. *ciunile acestora sunt ireversibile asupra datelor din tabelele sur ele! trebuie urmărită păstrarea integrităii refereniale atunci când p asupra mai multor tabele legate. /

Upload: bralecri

Post on 06-Oct-2015

14 views

Category:

Documents


0 download

DESCRIPTION

interogari

TRANSCRIPT

Baze de Date si Sisteme Informatice

AMS III CP6 BAZE DE DATE I SISTEME INFORMATICE ADMINISTRATIVE

6.Interogri (Queries)

6.1. Generaliti

Interogarea const n extragerea datelor dintr-o tabel (tabele), dintr-o interogare anterioar sau din ambele, prelucrarea acestora ntr-o form mai mult sau mai puin complex i furnizarea informaiilor ctre utilizatori.

Rezultatele interogrilor pot fi folosite ca atare sau pot constitui surs de nregistrri pentru crearea formularelor i rapoartelor.

Principalele operaii care se pot realiza cu ajutorul interogrilor sunt:

extragerea din tabele numai a cmpurilor relevante pentru utilizatori;

extragerea nregistrrilor din tabele prin specificarea unor criterii de selecie;

regsirea i ordonarea datelor dup anumite criterii;

crearea de cmpuri calculate;

extragerea datelor din una sau mai multe tabele i realizarea unor informaii sintetice;

crearea de tabele, adugarea nregistrrilor n tabele, tergerea nregistrrilor din tabele i actualizarea datelor;

combinarea i compararea ieirilor prin realizarea mai multor interogri n acelai timp;

interogarea i a altor baze de date (FoxPro, SQL Server);

pregtirea datelor n vederea afirii lor n formulare sau rapoarte.

n Microsoft Access se pot crea urmtoarele tipuri de interogri:

interogri de selecie;

interogri parametrice;

interogri ncruciate;

interogri de aciune.

Interogrile de selecie extrag informaii din unul sau mai multe tabele i le afieaz sub form de list. Sunt cel mai uor de creat i au avantajul c pot afia un numr redus de date dintr-un tabel de mare capacitate (datele care ndeplinesc condiiile specificate). Ele permit i modificarea rezultatului afiat, modificare ce va fi vzut i n tabelul surs. De asemenea, permit i folosirea de parametri, cum este reuniunea de cmpuri din tabele ntre care nu exist nici o legtur precum i efectuarea de calcule.Interogrile parAMSetrice nu sunt un tip special de interogri, o funcie parametru putnd fi folosit pentru toate celelalte interogri prezentate mai sus; ele folosesc n mod repetat o interogare, efectund modificri n criteriile de selecie.

Interogrile tip tabel ncruciat centralizeaz n formatul unei foi de calcul tabelar datele din unul sau mai multe tabele. Datele rezultate dup execuia unei astfel de interogri sunt prezentate ntr-un format potrivit pentru analiza datelor i crearea de grafice.

Interogrile de aciune creeaz un nou tabel n baza de date sau realizeaz modificri majore ale unui tabel existent. n general, toate interogrile de aciune pot fi realizate pe baza unei interogri de selecie. Ele permit adugarea, modificarea sau tergerea de nregistrri ntr-un tabel.

Exist patru tipuri de interogri de aciune: interogri de generare a unui nou tabel din datele coninute n setul de rezultate al interogrii;

interogri de adugare a noi nregistrri ntr-un tabel;

interogri de tergere a unor nregistrri dintr-un tabel;

interogri de actualizare a unor nregistrri dintr-un tabel, conform cu o condiie ce trebuie ndeplinit.

Aciunile acestora sunt ireversibile asupra datelor din tabelele surs, iar n cazul ultimelor trei dintre ele, trebuie urmrit pstrarea integritii refereniale atunci cnd prin intermediul lor se acioneaz asupra mai multor tabele legate.

Interogarea datelor din tabele se realizeaz n dou moduri:

n mod grafic prin interfaa Query By Example (QBE) - interogare prin exemplu;

prin limbajul SQL sub form de blocuri de cerere.

Access ofer trei posibiliti pentru definirea interogrii i afiarea rezultatelor acesteia.

Design View fereastr sub forma unei grile de interogare, n care se definete interogarea;

Datasheet View fereastr n care se afieaz rezultatele interogrii;

SQL View fereastr n care Access genereaz automat codul SQL al interogrii QBE; aceeai fereastr este folosit i pentru scrierea direct a unei interogri cu ajutorul instruciunilor SQL.6.2. Interogarea prin selecie6.2.1. Crearea unui obiect de tip interogare

Iniierea crerii cererii se realizeaz n fereastra Database prin activarea fiei Query (Interogri) i apoi apsarea butonului New, sau selectnd din meniul Insert opiunea Query. Access ofer mai multe modaliti de creare a cererilor.

Pentru crearea unei cereri de selecie se alege opiunea Design View din caseta New Query. Fereastra Show Table ofer posibilitatea precizrii sursei de date pentru construirea cererii. Sursa de date pentru o cerere poate fi reprezentat de:

una sau mai multe tabele;

una sau mai multe interogri;

tabele i interogri.

Se vor selecta tabela/tabelele i/sau cererile surs i se va aciona butonul Add pentru a realiza aducerea acestora n fereastra de proiectare a cererii.

Fereastra Select Query este mprit n dou zone:

zona superioar, n care se vizualizeaz tabelele/interogrile surs de date precum i relaiile definite ntre acestea;

grila Query Design structurat astfel:

linia Field: rezervat pentru selectarea unui cmp;

linia Table: destinat precizrii sursei de date;

linia Sort: permite precizarea sensului sortrii pentru atributul din coloana respectiv;

linia Show: permite inhibarea afirii realizrilor cmpului respectiv;

linia Criteria: ofer posibilitatea precizrii criteriilor de selecie prin introducerea expresiilor

Access corespunztoare;

liniile or: permite precizarea mai multor criterii de selecie n cazul expresiilor Access

utiliznd operatorul OR.

Definirea interogrii de selecie presupune parcurgerea urmtorilor pai:

1. Precizarea cmpurilor ale cror realizri urmeaz s le returneze cererea. Numele acestor

cmpuri se vor preciza n grila Query Design n rndul Field.

n mod implicit, antetul coloanelor tabelului rezultat n urma interogrii este reprezentat de numele cmpului, cu excepia cazului n care la crearea tabelei ai precizat o alt etichet prin intermediul proprietii Caption. Dac dorii afiarea n tabelul rezultat n urma interogrii a unei noi etichete pentru un cmp plasai mouse-ul n linia Field naintea numelui cmpului, tastai eticheta dorit urmat de caracterul :.

Observaie: Dup aducerea cmpurilor din tabele sau interogri pe grila de interogare sunt

posibile operaii de inserare a unui cmp, tergerea unui cmp, deplasarea unui cmp ntr-o alt

poziie, modificarea dimensiunilor unei coloane i modificarea numelui unui cmp.

2. Se precizeaz criteriul de selecie (n mod implicit se returneaz realizrile tuturor tuplurilor

pentru cmpurile specificate) prin introducerea unei expresii Access valide n rndul Criteria (eventual i rndul OR). Introducerea expresiei Access se face prin tastare sau se construiete prin intermediul generatorului de expresii (Expression Builder) a crui fereastr se deschide selectnd opiunea Build a meniului pe care l activai printr-un click dreapta de mouse n rndul Field.3. Se precizeaz, dac este necesar, cmpul/cmpurile dup care se dorete o eventual sortare i sensul acesteia n linia Sort.6.2.2. Utilizarea operatorilor

Pentru a construi expresii pe rndul Criteria se utilizeaz operatorii:

aritmetici: adunare (+); scdere (), nmulire (*), mprire (/), ridicare la putere (^), mprirea a dou numere cu returnarea unui ntreg (\), mprirea a dou numere cu returnarea restului mpririi (MOD).

de comparaie: , =, =. Aceti operatori returneaz valorile logice True i False. Excepie reprezint cazul n care unul dintre operatori are valoarea NULL i deci orice comparare va returna valoarea NULL.

asociai operatorilor de comparare:

IS NULL, IS NOT NULL o valoare NULL (cmp necompletat) nu este nici TRUE nici FALSE. nregistrrile care au valoarea NULL n cmpurile selectate nu apar ca rezultate ale interogrii;

LIKE se folosete mpreun cu caracterele de nlocuire * i ? pentru a stabili dac o valoare ncepe cu unul sau mai multe caractere; caracterul * poate nlocui orice numr de caractere; caracterul ? nlocuiete numai un caracter;

IN stabilete dac o valoare este cuprins ntr-o list;

BETWEEN stabilete dac o valoare aparine unui interval specificat.

logici:

NOT negaia;

AND pentru conjuncia a dou valori;

OR pentru disjuncia a dou valori;

XOR pentru disjuncia exclusiv a dou valori;

Eqv verific echivalena a dou valori.

de concatenare a irurilor de caractere: + i &.

de identificare: ! i . . Aceste dou caractere sunt utilizate ca separatori, astfel:

Combin numele coleciilor de obiecte i numele obiectelor pentru a selecta un anumit obiect

sau proprietate a lui: Forms! [Clieni]

Identific atribute aparinnd unei tabele: Clieni! [Localitate]

Deosebete numele obiectelor de cele ale proprietilor: TextBox1.FontSize=12 unde: TextBox reprezint un obiect de control iar FontSize reprezint o proprietate (stabilete dimensiunea fontului)

constante: constantele utilizate n construirea expresiilor Access pot fi de natur

numeric (ex: 1200,5,0);

text (123, Toma Ion, str. Viilor 15);

dat calendaristic (ex: #12.31.01# ceea ce indic data de 31 decembrie 2001).

Identificatorii: sunt nume de obiecte Access (tabele, atribute, formulare, etc.)

Funciile: pot fi de natur:

Dat calendaristic : Date(), Month(), Year (), etc.

Exemple: Date() returneaz data curent; Month(Date()) returneaz numrul lunii calendaristice curente. Year(Date()) returneaz anul curent.

De tip text: Len() returneaz lungimea unui ir; Trim() elimin spaiile de la nceputul i de la sfritul unui ir; Left() returneaz primele n caractere de la nceputul unui ir, etc.

Matematice i trigonometrice: ABS() returneaz valoarea absolut a unui numr; INT() returneaz partea ntreag dintr-o valoare numeric, ROUND() rotunjete o valoare cu un anumit numr de zecimale; SUM() calculeaz suma; AVG() calculeaz media, etc.

Financiare: PV() returneaz valoarea actual a unei anuiti pltite n rate periodice egale; SLN() returneaz valoarea AMSortizrii unui mijloc fix dup o anumit perioad (AMSortizare liniar) etc.

Funcii diverse: ISNUMERIC(), ISNULL(), etc.

Reguli de formare a expresiilor introduse pe cmpul Criteria:

datele de tip Text se tasteaz ca atare, iar Access adaug automat ghilimele;

pentru datele de tip Number i Currency se tasteaz cifrele i eventual simbolul zecimal, fr simbolul monetar sau separatorul de mii;

referirile la numele de cmpuri trebuie incluse ntre paranteze drepte, altfel se adaug automat ghilimele, considerndu-se text;

formatul internaional de dat calendaristic este mm/dd/yy. Access adaug automat delimitatorul # ;

Access adaug automat IS la referirile care implic valoarea NULL.

Pe rndul Criteria din grila de interogare se poate introduce un singur criteriu de selecie sub un cmp sau mai multe criterii sub cmpuri diferite. Dac criteriile de selecie se introduc pe un singur rnd Criteria, se extrag nregistrrile care ndeplinesc toate condiiile (operatorul logic AND), iar dac se introduc pe rnduri diferite se includ n rspuns doar nregistrrile care ndeplinesc oricare dintre criteriile menionate (operatorul logic OR).

APLICAII

Se consider baza de date STUD. S se creeze tabela DATE cu structura urmtoare:

NRMAT - text(3) (numr matricol ex. 100, 101,102.)

NP text(30) (nume i prenume ex. Pop Liviu)

DN - dat calendaristic (data naterii ex. 03/04/81)

SCT - text(2) - (sectia ex. AMS si DAdm)

AN numeric, ntreg (anul de studiu ex. 1, 2 ,3 sau 4)

BRS da/nu (bursier ex. DA, NU)

SEX text(1) (sexul f, m)

TEL text(15) (telefon ex. 094123456)

ADR text(25) (adresa ex. str. Gorunului nr. 5)

OR text(15) (oraul ex. Craiova,Severin, .)

JUD - text(2) (judeul ex. Dolj-DJ, Mehedinti - MH)

S se introduc 10 nregistrri n tabela DATE astfel nct s se respecte urmtoarele cerine:

a) S existe studeni al cror domiciliu s nu fie Severin.

b) S existe studeni de la ambele secii AMS i DAdm.

c) S existe studeni cu vrste mai mici de 20.

d) S existe studeni n diferii ani de studiu.

e) S se defineasc regulile de validare pentru cmpul AN astfel nct s se poat introduce n tabel doar valorile 1, 2, 3 sau 4.

f) S se defineasc regulile de validare pentru cmpul SCT astfel nct s fie permise doar valorile AMS sau DAdm. Pentru cmpul SEX valorile permise vor fi F sau M.

g) S se defineasc urmtoarele interogri pentru tabela DATE. Interogrile se vor salva cu numele: inter1, inter2,, inter n. OBSERVAIE ! Se va utiliza n exclusivitate modul de lucru Design View.

S se creeze:

1. o list cu numele studenilor care au domiciliul n Severin, ordonai descresctor dup numrul matricol.

2. o list cu numele studenilor care au domiciliul n Severin, ordonai cresctor dup numrul matricol.

3. o list cu numele studenilor din Severin, ordonai cresctor dup vrst.

4. o list cu numele studenilor bursieri din Severin.

5. o list cu numele studenilor a cror vrst este mai mare de 20 de ani i nu sunt bursieri.

6. o list cu numele studentelor bursiere care au domiciliul n Severin.

7. o list cu numele studenilor de sex masculin care au vrsta de 21 de ani i nu sunt bursieri.

8. o list cu numele studenilor nscui dup data de 03/06/80.

9. o list cu numele studenilor nebursieri.

10. o list cu numele studenilor bursieri.

11. o list cu numele i localitatea studenilor care nu domiciliaz n Severin, ordonai dup cmpul secie.

12. lista studentelor de la secia DAdm.

13. lista studenilor de la DAdm i AMS.

14. o list cu numele studenilor de la DAdm care nu sunt bursieri.

15. o list cu numele studenilor de la ambele secii care sunt bursieri i nu domiciliaz n Severin.

16. o list cu numele studentelor de la DAdm ordonate descresctor dup vrst.

17. o list cu numele studenilor de la DAsm ordonai cresctor dup vrst.

18. lista studenilor care nu au domiciliul n judeul Cluj i nu sunt bursieri, ordonai alfabetic dup nume.

19. o interogare care s afieze numele studentului care are numrul de telefon 0722123456.

20. o list cu numele studenilor care au domiciliul n Severin i sunt bursieri.

21. lista studentelor fr burs din anul 2 de la secia DAdm.

22. lista studenilor bursieri, de sex masculin, din anul 2, de la sectia DAdm, care domiciliaz n Severin.

23. lista studenilor de la ambele secii care nu sunt n anul 2.

24. lista cu numele studenilor bursieri de la secia DAdm din anul 2 care au numrul matricol mai mare dect 102.

25. lista studenilor ordonat alfabetic dup nume i prenume.

26. lista tuturor studenilor seciei AMS, ordonai alfabetic dup nume i prenume.

27. lista studentelor seciei DAdm care nu sunt bursiere i nu sunt din Severin.

PAGE 5