Sunteți pe pagina 1din 99

Radu LIXNDROIU

2008 2009 Anul I, sem. 2 REPROGRAFIA UNIVERSITII TRANSILVANIA DIN BRAOV

Limbaje de programare i baze de date - ACCESS

SISTEMUL DE GESTIUNE A BAZELOR DE DATE


Principalele obiective ale capitolului sunt: Concepte principale din teoria rela ional Cheia primar Cheia extern Sisteme de gestiune a bazelor de date

Sistemul de gestiune a bazelor de date (SGBD) este componenta unui sistem de baz de date care are rolul de a permite descrierea i manipularea conform unui model de date. n momentul actual, cea mai mare parte a SGBD-urilor care se utilizeaz sunt bazate pe modelul rela ional.

Limbaje de programare i baze de date - ACCESS PRINCIPALELE CONCEPTE DIN TEORIA RELA IONAL

Domeniul - reprezint un ansamblu de valori, caracterizat printr-un nume. Domeniul se poate defini explicit, prin enumerarea tuturor valorilor care apar in acestuia (exemplu D1:{rou, galben, albastru}), sau implicit prin precizarea propriet ilor pe care le au valorile domeniului respectiv (exemplu: D2:{e/e N } Rela ia - (tabela) reprezint un subansamblu al produsului cartezian dintre mai multe domenii (D1xD2x) caracterizat printr-un nume. Reprezentarea folosit pentru o rela ie (R) este tabloul bidimensional (tabela de date) de forma:

Atributul este coloana unei rela ii caracterizate printr-un nume. Fiecare atribut i ia valorile dintr-un domeniu. Mai multe atribute pot lua valori din acelai domeniu. Tuplul este linia dintr-o rela ie i nu are nume. Valorile dintr-un tuplu apar in produsului cartezian dintre domeniile rela iei (exemplu tuplul v1, v2, ...,vn, unde v1 D1, v2 D2,...,vn Dm, cu n m numere ntregi). Schema rela iei este un ansamblu format din numele rela iei (R) urmat ntre paranteze rotunde de lista atributelor (Ai), pentru fiecare atribut precizndu-se domeniul asociat (Dj): R(A1:D1, A2:D2,...,An:Dm): unde n m numere ntregi. Cheia este un atribut sau un ansamblu de atribute cu ajutorul cruia se poate identifica un tuplu dintr-o rela ie.

Limbaje de programare i baze de date - ACCESS

Cheia este primar dac identificarea este unic, adic exist un singur tuplu cu o anumit valoare pentru cheie. Cheia este simpl, dac este format dintr-un singur atribut. Cheia este compus dac este format dintr-un ansamblu de atribute. Cheia este extern ntr-o rela ie R1, dac ansamblul de atribute care o definete ia valori din aceleai domenii ca i cheia primar a unei rela ii R2 si dac are rolul de a stabili o legtura (asociere) ntre cele dou rela ii. Prezentare comparativ a no iunilor privind organizarea datelor n memoria extern n fiiere, baze de date rela ionale (BDR) i cele utilizate n VFP.
Mem extern BDR Access FISIER RELA IE TABEL CMP ATRIBUT CMP ASOCIERE ASOCIERE (LEGATURA) CHEIE CHEIE PRIMAR CHEIE PRIMAR CHEIE EXTERN CHEIE DOMENIU -

Intrebri: 1. Pentru tabelele FURNIZORI i FACTURI (ANEXA 1) care sunt cheile? 2. Da i exemplu de un atribut i de un tuplu pentru rela ia FACTURI (ANEXA 1)

Limbaje de programare i baze de date - ACCESS

STOCAREA DATELOR N BAZE DE DATE


Principalele obiective ale capitolului sunt: Crearea unui nou fiier access Crearea tabelelor Modificarea structurii unei tabele Introducerea i vizualizarea datelor Realizarea rela iilor ntre tabele Modificarea i tergerea datelor

Un fiier Access este format din obiecte cum ar fi: tabele, formulare, queries, rapoarte pagini, macros i module.

Limbaje de programare i baze de date - ACCESS

Fereastra de baz - Access CREAREA UNUI NOU FIIER ACCESS Fiierele Access au extensia .mdb .

Pentru crearea unui nou fiier Access se alege n meniul FILE op iunea NEW.

FILE-NEW Din meniul din partea din dreapta care apare se alege op iunea Blank Database

Limbaje de programare i baze de date - ACCESS

Alegerea op iunii Blank Database Urmtorul pas n crearea bazei de date este alegerea unui nume corespunztor fiierului mdb, precum i alegerea locului de salvare al fiierului pe calculator.

Alegerea numelui i al locului de salvare Fiierul Access creat este gata de lucru. n acest moment n fiierul nu con ine nici o informa ie (baze de date, interogri, pagini etc.)

Limbaje de programare i baze de date - ACCESS

Fiierul student.mdb este creat i gata de lucru CREAREA TABELELOR n primul rnd, deoarece dorim s lucrm la nivel de tabele, vom selecta din panoul de comand din cadrul meniului de obiecte (OBJECTS) op iunea TABLES (tabele).

Selectarea op iunii TABLES din panoul de comand Pentru crearea unei tabele nu vom utiliza generatoare de tip wizard. Crearea unei tabele nu trebuie s aib limitri, de aceea din panoul de comand alegem prima op iune: CREATE TABLE IN DESIGN VIEW.

Limbaje de programare i baze de date - ACCESS

Selectarea op iunii de creare a unui nou tabel Pentru a exemplifica crearea de tabele vom crea tabela angajai care are forma: Angajai cmp cod (CP) nume prenume data_nasterii sal_brut cod_dep tip numeric text text data numeric text

Introducerea datelor se face n fereastra TABLE. La FIELD NAME se introduce numele fiecrui cmp al tabelei dup care se alege de la DATA TYPE tipul corespunztor (text, memo, numeric, dat/timp, sum de bani, numr-automat, da/nu, obiect OLE, hyperlink).

Introducerea cmpurilor i selectarea tipului corespunztor

Limbaje de programare i baze de date - ACCESS

10

n momentul n care un cmp se dorete a fi setat ca cheie primar, pe linia unde este numele cmpului de d clik dreapta de mouse si se alege op iunea PRIMARY KEY.

Alegerea op iunii PRIMARY KEY La selectarea op iunii de cheie primar, va apare n dreptul numelui cmpului un simbol de cheie.

Cheie primar Pentru informa ii suplimentare privind cmpul respectiv, n partea de jos a ecranului avem urmtoarele op iuni:

Op iunile cmpului

Limbaje de programare i baze de date - ACCESS n final, tabela angajati va avea urmtoarea structur:

11

Tabela Angajati nchiderea configurrii tabelei se face apsnd simbolul X din dreapta ferestrei TABLE (ATEN IE NU NCHIDEREA PROGRAMULUI ACCESS!).

nchiderea ferestrei de configurare a tabelei Salvarea tabelei realizate:

Salvarea tabelei

Limbaje de programare i baze de date - ACCESS

12

Denumirea tabelei realizate n panoul de comand apar toate tabelele realizate, n ordine alfabetic:

Lista tabelelor realizate MODIFICAREA STRUCTURII UNEI TABELE Dup realizarea unei tabele se poate observa c lipsesc unele cmpuri, trebuiesc modificate denumirile cmpurilor sau tipul lor. Modificarea structurii se realizeaz prin selectarea tabelei ce se dorete modificat i apoi alegerea op iunii DESIGN din panoul de comand.

Limbaje de programare i baze de date - ACCESS

13

Modificarea structurii unei tabele Prin aceti pai se reintr n fereastra de configurare a tabelei unde pot fi operate toate modificrile necesare. INTRODUCEREA I VIZUALIZAREA DATELOR Pentru a introduce sau vizualiza datele dintr-o tabel se d dublu clik pe numele ei din tabloul de comand.

Introducerea / vizualizarea datelor

Limbaje de programare i baze de date - ACCESS

14

Datele introduse n tabela ANGAJATI REALIZAREA RELA IILOR NTRE TABELE ntre tabelele existente se pot crea rela ii pe baza cheilor primare i externe existente. In bara de comenzi se alege op iunea RELATIONSHIPS dnd clik pe simbolul .

Crearea rela iilor ntre tabele Pentru adugarea tabelelor n fereastra de rela ii se selecteaz tabela dorit dup care de apas butonul ADD.

Limbaje de programare i baze de date - ACCESS

15

Adugarea tabelelor in fereastra de rela ii Pentru realizarea rela iilor se selecteaz cheia extern din tabel i se trage pe cheia primar a tablei cu care se creeaz rela ia.

Realizarea unei rela ii Programul vede legtura ntre cele dou cmpuri din cele dou tabele i cere confirmarea realizrii legturii:

Realizarea legturii

Limbaje de programare i baze de date - ACCESS

16

Se procedeaz la fel cu toate rela iile existente ntre toate tabelele. n final se pot vizualiza toate rela iile existente ntre toate tabelele bazei de date.

Vizualizarea legturilor existente n baza de date MODIFICAREA I TERGERA DATELOR Modificarea, inserarea i tergerea sunt opera ii care pot fi fcute att manual (vizualiznd datele tabelei) i opernd direct ct i pe baza de comenzi scrise sub form de QUERIES. Pentru modificarea sau tergerea datelor dintr-o tabel se intr n tabela din panoul de comand, cu dublu click.

Limbaje de programare i baze de date - ACCESS

17

Vizualizarea datelor din tabel Modificarea datelor este foarte facil, orice modificare fcut n tabel memorndu-se automat.

Modificarea unei valori in tabel Pentru tergerea unei valori din tabel se d buton dreapta de mouse pe suprafa a liniei ce se dorete a fi tears. Va apare un meniu din care se ale op iunea DELETE RECORD.

Limbaje de programare i baze de date - ACCESS

18

tergerea unei linii dintr-o tabel Pentru tergerea mai multor linii dintr-o tabel se procedeaz similar cu men iunea c nainte trebuie selectate toate liniile ce vor fi terse.

Selectarea mai multor linii pentru a fi terse

Limbaje de programare i baze de date - ACCESS Intrebri:

19

Care sunt componentele unei tabele? Ce nseamn actualizarea con inutului unei tabele? Cum se actualizeaz con inutul unei tabele? Prezenta i modul de vizualizare a con inutului unei tabele. Prezenta i modul de actualizare a structurii unei tabele. Studiu individual Aplica ia 1: Creare i actualizare tabel.

APLICA IA 1 Crea i o tabel urmtoarea structur: Nume Prenume Cod Oras Medie Admis i cu urmtorul con inut : Nume Prenume Cod Ionescu Maria 1 Vlad Mirela 8 Georgecu Ana 5 Popescu Denisa 4 Rauta Andreea 6 Stanciu Roxana 2 Oras Iasi Deva Cluj Arad Deva Deva C C N C N C 30 30 3 20 6;2

Medie Admis 9.27 9.50 8.85 9.33 9.50 9.10

Limbaje de programare i baze de date - ACCESS Radulescu Ruxandra 3 Matei Iuliana 7 Cluj 9.29 Ploiesti 9.60

20

a) S se adauge un nou cmp, denumit Admis. b) Se presupune c doar candidatele cu medii peste 9.25 au fost admise. S se completeze valorile corespunztoare pentru cmpul Admis. c) Candidatele din Deva sunt de fapt din Bucureti. S se modifice valorile corespunztoare din cmpul ora. d) S se adauge nregistrarea: Cretulescu Alexandra 9 Orastie 8.00 F

Limbaje de programare i baze de date - ACCESS

21

CREAREA INTEROGRILOR
Principalele obiective ale capitolului sunt: Insert - adugarea de linii n tabel Modificarea unei comenzi Delete - tergerea nregistrrilor Update - modificarea datelor dintr-un cmp

Interogrile sau queries pot fi fcute pentru una sau mai multe tabele existente n baza de date. Pentru nceput trebuie selectat din cadrul meniului OBJECTS op iunea QUERIES.

Limbaje de programare i baze de date - ACCESS

22

Selectarea op iunii QUERIES i pentru crearea comenzilor de tip query avem la dispozi ie un generator de comenzi de tip wizard. Din motive de limitri ale acestui generator nu l vom utiliza. n consecin pentru crearea unei interogri vom alege prima op iune CREATE QUERY IN DESIGN VIEW. Fereastra care va apare SHOW TABLE este o fereastr n care se pot selecta tabelele care vom lucra. Dup selectare se apas ADD pentru adugarea lor n sintaxa de interogare. Adugarea tabelelor din aceast fereastr nu este obligatorie, deoarece ele pot fi adugate i ulterior (manual prin scriere) cnd scriem sintaxa interogrii.

Limbaje de programare i baze de date - ACCESS

23

Adugarea tabelelor n interogare n fereastra QUERY, pe suprafa a gri prin click dreapta de mouse se poate accesa urmtorul meniu:

Meniu QUERY Prima op iune SQL o vom folosi pentru a scrie interogrile. Pentru ca principalele cuvinte cheie ale interogrii s fie scrise putem selecta din cadrul meniului op iunea QUERY TYPE. Astfel n acrul acestui submeniu avem urmtoarele op iuni:

Limbaje de programare i baze de date - ACCESS

24

Op iunile submeniului QUERY TYPE INSERT - ADUGAREA DE LINII N TABEL Pentru adugarea unor linii noi n tabel se utilizeaz INSERT. INSERT INTO TABELA [(ATRIBUT1, ATRIBUT2,... .)] VALUES (VALOARE_ATRIBUT1, VALOARE_ATRIBUT2,... .) De exemplu dac pentru tabela DEPARTAMENTE avem urmtoarele date:

Datele tabelei DEPARTAMENTE i dac dorim s adugm un nou departament care are datele: cod_dep: fin, den: financiar, localitate: bucuresti, sef: tecar gabriela, telefon: 1234567 vom avea:

Limbaje de programare i baze de date - ACCESS

25

Din meniul QUERY TYPE se alege op iunea APPEND QUERY

Alegerea op iunii APPEND QUERY sau se poate direct ale op iunea SQL VIEW n fereastra de comenzi SQL vom scrie comanda:

Exemplu de comanda INSERT Dup scrierea oricrei comenzi, aceasta trebuie salvat pentru a putea fi executat ulterior.

Salvarea comenzii

Limbaje de programare i baze de date - ACCESS

26

Odat salvat comanda trebuie s aib un nume pentru a putea fi recunoscut i executat ulterior. Aten ie! Numele trebuie s fie ct mai sugestiv, executarea unor comenzi eronate poate produce deteriorarea datelor din baza de date.

Numirea comenzii n acest moment comanda este salvat i se poate executa.

Vizualizarea comenzii nou create Pentru executarea comenzii vom da dublu click pe numele ei n panoul de comand. Pentru verificarea execu iei comenzii, programul cere 2 confirmri: 1) pentru execu ia comenzii

Acceptul de rularea a comenzii 2) pentru a aduga n tabel o nou nregistrare

Limbaje de programare i baze de date - ACCESS

27

Acceptul de adugare in tabel a unei noi nregistrri Dac vizualizm datele tabelei DEPARTAMENTE vom vedea nregistrarea fcut prin comanda INSERT

Vizualizarea tabelei DEPARTAMENTE MODIFICAREA UNEI COMENZI Exist posibilitatea s apar necesitatea modificrii unei comenzi existente. Modificarea se face urmnd urmtorii pai:

Limbaje de programare i baze de date - ACCESS

28

Modificarea unei comenzi DELETE - TERGEREA NREGISTRRILOR Comanda SQL pentru tergerea uneia sau mai multor linii dintr-o tabela este DELETE. DELETE FROM TABELA WHERE CONDITIE De exemplu dac dorim s tergem nregistrarea ce cuprinde datele departamentului financiar (pentru care cod_dep este fin) vom avea:

tergerea departamentului financiar

Limbaje de programare i baze de date - ACCESS UPDATE - MODIFICAREA DATELOR DINTR-UN CMP

29

Pentru a modifica valoarea unuia sau mai multor atribute sau mai multe linii dintr-o tabela se foloseste comanda UPDATE cu formatul general: UPDATE TABELA SET ATRIBUT1=EXPRESIE [ATRIBUT2=EXPRESIE2.... .] WHERE PREDICAT De exemplu dac dorim ca pentru angaja ii din cadrul departamentului "conta" s cretem salariul brut cu 50 de lei vom avea:

Modificarea valorilor unui cmp

Vizualizarea datelor modificate n tabela ANGAJATI

Intrebri: 1. Cum se pot modifica valorile unui cmp? 2. Cum se pot terge nregistrrile unei tabele dup o condi ie?

Limbaje de programare i baze de date - ACCESS

30

Studiu individual Aplica ia 2: Introducere de date, selec ii simple i utiliznd condi ii simple i compuse.

APLICA IA 2 1. Realiza i o tabel FURNIZORI cu structura tabelei FURNIZORI din ANEXA 1. 2. Introducei urmtoarele date:

3. Modifica i localitatea pentru angaja i din BRASOV n RASNOV. 4. tergei toi furnizorii din BRASOV 5. tergei toi furnizorii din CLUJ 6. nlocui i numele fiecrei localit i cu prima sa liter.

Limbaje de programare i baze de date - ACCESS

31

SELEC IA I PROIEC IA

Principalele obiective ale capitolului sunt: Introducere n conceptul de interogare a bazelor de date Sintaxa i utilizarea comenzii SELECT

Clauza SELECT corespunde operatorului proiec ie din algebra rela ional, fiind utilizat pentru desemnarea listei de atribute (coloane) din rezultat. Clauza FROM este cea n care sunt enumerate rela iile din care vor fi extrase informa iile aferente consultrii. Clauza WHERE desemneaz predicatul selectiv al algebrei rela ionale (condi ia), relativ la atribute ale rela iilor care apar n clauza FROM. La modul general, o consultare SQL poate fi prezentat sub forma: select c1,c2,...,cn from r1,r2,...,rm where p unde:

Limbaje de programare i baze de date - ACCESS

32

cj - reprezint coloanele rezultat; rj - reprezint rela iile ce trebuie parcurse; p - reprezint predicatul, condi ia ce trebuie ndeplinit de tupluri (linii) pentru a fi incluse n rezultat. Predicatul poate fi simplu sau compus (din mai multe condi ii). Cnd clauza WHERE este omis se consider implicit c predicatul p are valoare logic ''adevrat'', astfel nct n rezultat vor fi incluse toate liniile din tabel sau produsul cartezian al tabelelor, enumerate n clauza FROM. Dac n locul coloanelor c1,c2,...,cn apare simbolul *, rezultatul va fi alctuit din toate coloanele rela iilor specificate n clauza FROM. Atributele rezultatului preiau numele din tabela (tabelele) specificate n clauza FROM. Schimbarea numelui se realizeaz prin clauza AS. exemplu: select c1,c2 as NUME_NOU from r1 unde numele coloanei c2 devine NUME_NOU; SQL nu elimin automat liniile identice din rezultat, deci pentru ca fiecare linie s apar o singur dat este necesara utilizarea op iunii DISTINCT. exemplu: select distinct c1,c2 from r1 n concluzie, o fraz SELECT, corespunde: unei selec ii algebrice (clauza WHERE p) unei proiec ii (SELECT ci) unui produs cartezian (FROM - r1 r2 ... rm) i conduce la ob inerea unui rezultat cu n coloane, fiecare coloan fiind: un atribut din r1,r2,...,rm sau expresie calculat pe baza unor atribute din r1,r2,...,rm. Execu ia unei fraze SELECT realizeaz un rezultat sub form tabelar.

Limbaje de programare i baze de date - ACCESS Rezultatul poate fi: 1. o list (text) 2. o tabel propriu-zis 3. o tabel temporar 4. o tabel derivat (imagine) 5. o variabil masiv (tablou)

33

Exemplu: Utilizm tabela ANGAJATI n care introducem urmtoarele date:

Datele tabelei ANGAJATI 1. Care sunt datele con inute n tabela angajati? select cod, nume, prenume, data_nasterii, sal_brut, cod_dep from angajati sau: select * from angajati

Rezultatele exemplului 1

Limbaje de programare i baze de date - ACCESS 2. Care sunt numele salaria ilor i salariul brut? select nume, sal_brut from angajati

34

Rezultatele exemplului 2 3. Care sunt numele salaria ilor i salariul brut, dar pentru coloana sal_brut denumim coloana salariu_brut? select nume, sal_brut as salariu_brut from angajati

Rezultatele exemplului 3 4. Afia i numele angajailor i salariul brut, pentru salaria ii care au salariul brut mai mare de 700 lei select nume from angajati where sal_brut>700

Limbaje de programare i baze de date - ACCESS

35

Rezultatele exemplului 4 5. Care sunt datele salaria ilor care lucreaz n departamentul informatic (cod_dep="info")? select * from angajati WHERE cod_dep="info"

Rezultatele exemplului 5 6. Care sunt datele salaria ilor care lucreaz n departamentul informatic (cod_dep="info") i care au salariul brut mai mare de 700 de lei? select * from angajati where cod_dep="info" and sal_brut>700

Rezultatele exemplului 6 7. Afia i numele salaria ilor i codul departamentului pentru angajaii care sunt fie n departamentul informatic (cod_dep="info") fie n departamentul contabilitate (cod_dep="cont") select nume, cod_dep from angajati where cod_dep="info" or cod_dep="cont"

Limbaje de programare i baze de date - ACCESS

36

Rezultatele exemplului 7 8. Afia i numele angaja ilor i data naterii pentru angaja ii nscu i dup 15-03-1980 (formatul pentru data este #mm-dd-yyyy#) select nume, data_nasterii from angajati where data_nasterii > #0315-1980#

Rezultatele exemplului 8 9. Afia i numele angaja ilor i data naterii pentru angaja ii nscu i ntre 15-03-1980 i 20-05-1983 select nume, data_nasterii from angajati where data_nasterii > #0315-1980# and data_nasterii < #05-20-1980#

Rezultatele exemplului 9 10. Care sunt codurile de departament din tabela angajati? select cod_dep from angajati

Limbaje de programare i baze de date - ACCESS

37

Rezultatele exemplului 10 11. Care sunt codurile de departament din tabela angajati, afiate o singur dat? select distinct cod_dep from angajati

Rezultatele exemplului 11 Intrebri: 1. Care sunt clauzele principale ale unei selec ii? 2. Care sunt clauzele obligatorii ale unei selec ii? 3. Cte tabele putem trece la clauza FROM?

Limbaje de programare i baze de date - ACCESS Studiu individual

38

Aplica ia 3: Introducere de date, selec ii simple i utiliznd condi ii simple i compuse.

APLICA IA 3 1. Realiza i o tabel FURNIZORI cu structura tabelei FURNIZORI din ANEXA 1. 2. Introducei urmtoarele date:

3. Care sunt furnizorii din Braov? 4. Care sunt furnizorii din Braov sau Bucuresti? 5. Care sunt furnizorii care nu stau n Constan a? 6. terge i furnizorii care sunt din Bucureti. 7. Introduce i trei furnizori noi utiliznd INSERT. 8. Modifica i localitatea n Cluj pentru furnizorii din Constanta.

Limbaje de programare i baze de date - ACCESS

39

Coloane, expresii
Principalele obiective ale capitolului sunt: Definirea unor coloane noi Realizarea de calcule pe baza unor date din baza de date.

O facilitate important n multe interogri SQL ine de definirea, pe lng atributele tabelelor, a unor coloane noi, pe baza unor expresii. Clauza AS ermite denumirea coloanelor calculate sau redenumirea unor coloane ale tabelelor. De exemplu dac dorim s aflm care este TVA-ul aferent unei facturi, vom avea: In tabel FACTURI avem introduse urmtoarele date:

Limbaje de programare i baze de date - ACCESS

40

Datele tabelei FACTURI Pentru a afia valoarea tva-ului, precum i valoarea cu TVA pentru fiecare factur vom avea selectul: select nr_factura, cod_fur, data_fact, valoare, valoare*19/100 as TVA, valoare*119/100 as val_totala from facturi i vom ob ine Query-ul:

Rezultatele selec iei

Intrebri: 1. Cum putem s denumim coloana din rezultat? 2. Cum putem ob ine o coloan nou utiliznd n selec ie o condi ie?

Limbaje de programare i baze de date - ACCESS

41

Studiu individual Aplica ia 4: Calcularea amortizrii lunare prin metoda liniar.

APLICA IA 4 1. Realiza i tabela MF dup structura tabelei MF din ANEXA 1. 2. Introducei urmtoarele date:

3. Care sunt mijloacele fixe cu valoare mai mare de 30000? 4. Dac PER_AMORT reprezint perioada de amortizare n ani, calculati care este valoarea amortizrii lunare liniare. 5. Denumi i coloana cu amortizarea lunar liniar AM_LUN. 6. Care sunt mijloacele fixe care au amortizarea lunar mai mare de 1000? 7. Modificai perioada de amortizare n 5 pentru mijloacele fixe cu codul 10004. 8. Calcula i care este amortizarea lunar pentru "masina 2" 9. Calcula i amortizarea lunar liniar pentru mijloacele fixe cumprate de la furnizorul c1 sau c2.

Limbaje de programare i baze de date - ACCESS

42

Func iile agregat: COUNT, SUM, AVG, MIN, MAX


Principalele obiective ale capitolului sunt: Utilizarea func iilor Count, sum, avg. min, max Realizarea unor noi coloane care s con in date ob inute prin utilizarea func iilor de mai sus.

Func ia COUNT contorizeaz valorile neutre ale unei coloane sau numrul de linii dintr-un rezultat al unei interogri, altfel spus, n rezultatul unei consultri, COUNT numr cte valori diferite de NULL are o coloan specificat sau cte linii sunt: De exemplu dac dorim s aflm cte facturi avem n tabela FACTURI (cte linii sunt) avem: select count (*) from facturi

Limbaje de programare i baze de date - ACCESS

43

Numrul de facturi din tabela FACTURI Sau de exemplu dac dorim s vedem cte facturi au valoarea peste 3000 vom avea: select count(*) from facturi WHERE valoare>3000

Numrul de facturi din tabela FACTURI cu valoare mai mare de 3000 Func ia SUM este una dintre cele mai utilizate func ii n aplica iile economice, deoarece datele financiar-contabile i cele ale eviden ei tehnico-operative sunt preponderent cantitative. De exemplu dac dorim s aflm care este valoarea total a facturilor din tabela FACTURI avem: select sum(valoare) from facturi

Valoarea total a facturilor din tabela FACTURI Sau de exemplu dac dorim s aflm care este valoarea total a facturilor din tabela FACTURI a furnizorului cu cod_furm "c2" avem: select sum(valoare) from facturi where cod_furn="c2"

Limbaje de programare i baze de date - ACCESS

44

Valoarea total a facturilor din tabela FACTURI a furnizorului cu cod_furm "c2" Func ia AVG (AVERAGE) calculeaz media aritmetic a unei coloane prin divizarea sumei valorilor coloanei respective la numrul de valori nenule ale acesteia. De exemplu dac dorim s aflm care este valoarea medie a facturilor din tabela FACTURI avem: select avg(valoare) from facturi

Valoarea medie a facturilor din tabela FACTURI Sau de exemplu dac dorim s aflm care este valoarea medie a facturilor din tabela FACTURI a furnizorului cu cod_furm "c1" avem: select avg(valoare) from facturi where cod_furn="c1"

Valoarea medie a facturilor din tabela FACTURI a furnizorului cu cod_furm "c1" Deosebit de utile n diverse tipuri de analiz cele dou func ii MIN i MAX determin valoarea minim i maxim pentru o coloan. Se pot folosi i pentru atribute de tip ir de caractere, caz n care elementul de compara ie este codul ASCII al caracterelor. De exemplu dac dorim care este valoare minim din tabela facturi vom avea:

Limbaje de programare i baze de date - ACCESS select min(valoare) from facturi

45

Valoarea minim din FACTURI Sau de exemplu dac dorim care este valoare maxim din tabela facturi vom avea: select max(valoare) from facturi

Valoarea maxim din FACTURI Dac dorim s aflm care este din punct de vedere alfabetic cod_furn cu cea mai mare valoare vom avea: select max(cod_furn) from facturi

Valoarea maxim a cod_furn din FACTURI Studiu individual APLICA IA 6: Utilizarea func iilor: AVG; MIN; MAX; SUM; COUNT

Limbaje de programare i baze de date - ACCESS APLICA IA 5

46

1. Realiza i tabela FACTURI cu structura tabelei FACTURI din ANEXA 1. 2. Introduce i n tabela FACTURI urmtoarele date:

3. Care este media valorii facturilor? 4. Care este valoarea cea mai mare a unei facturi? 5. Care este valoarea cea mai mic a unei facturi? 6. Calcula i valoarea medie a valorii facturilor dar nu cu AVG. 7. Cte facturi avem n tabel? 8. Cate facturi avem n tabel cu o valoare mai mare de 5000? 9. Cte facturi avem n tabel cu o valoare ntre 4000 i 30000? (prin dou metode) 10. Care este valoare medie a facturilor cu nr. 3525 i 3522?

Limbaje de programare i baze de date - ACCESS

47

OP IUNEA ORDER BY
Principalele obiective ale capitolului sunt: Ordonarea datelor unei tabele dup unul sau mai multe atribute

Una dintre caracteristicile modelului rela ional este c nici ordinea atributelor, nici ordinea liniilor n rela ii nu reprezint importan din punctul de vedere al con inutului informa ional. ns n practic forma de prezentare a rezultatelor interogrii est important. Spre exemplu o list a localit ilor dintr-o tabel este mai uor citit n ordine alfabetic. De exemplu dac dorim pentru tabela facturi s afim toate datele ordonate dup cmpul cod_furn vom avea select * from facturi order by cod_furn

Limbaje de programare i baze de date - ACCESS

48

Datele ob inute n urma ordonrii dup cmpul cod_furn Aranjarea se poate face att cresctor (ASC) ct i descresctor (DESC). n plus se pot specifica mai multe coloane care s serveasc drept criterii suplimentare de ordonare. Astfel, la valori egale ale primului atribut, intr n ac iune criteriul de "balotaj", care este al doilea atribut, etc. De exemplu dac dorim s ordonm datele din facturi nti dup cod_furn i apoi dup valoare (dup acest criteriu descresctor) vom avea: select * from facturi order by cod_furn, valoare desc

Ob inerea datelor ordonate dup cod_furn i apoi descresctor dup valoare

Limbaje de programare i baze de date - ACCESS Intrebri: 1. Dup cte cmpuri putem ordona i cum?

49

Studiu individual APLICA IA interogri. 6: Ordonarea rezultatelor unei

APLICA IA 6 1. Realiza i tabela MF dup structura tabelei MF din ANEXA 1. 2. Introducei urmtoarele date:

3. Care sunt datele din tabela MF, ordonate alfabetic dup denumire? 4. Care sunt datele din tabela MF, ordonate alfabetic dup denumire i apoi dup valoare?

Limbaje de programare i baze de date - ACCESS

50

5. Care este amortizarea lunar liniar pentru fiecare mijloc fix, datele fiind ordonate dup denumirea mijlocului fix? 6. Afia i denumirea mijloacelor fixe, ordonat alfabetic pentru mijloacele fixe cu o valoare mai mare de 32000 inclusiv. 7. Afia i alfabetic codurile furnizor - o singur dat. 8. Care este valoarea cea mai mare unui mijloc fix? 9. Care este valoare medie a amortizrii lunare a mijloacelor fixe? 10. Cte mijloace fixe avem?

Limbaje de programare i baze de date - ACCESS

51

OPERATORII BETWEEN, LIKE I IN


Principalele obiective ale capitolului sunt: Utilizarea operatorilor BETWEEN LIKE IN

Pentru formularea predicatului de selec ie, utilizarea, pe lng >,<, >=,<=,= i a altor operatori, vom opri la BETWEEN (cuprins ntre), LIKE (ca i), IN adaug IS NULL. Operatorul BETWEEN este util pentru definirea valori.

SQL permite dintre care ne (n), la care se intervalelor de

De exemplu dac dorim s afim doar facturile care au valori ntre 4000 i 8000 vom avea: select * from facturi where valoare between 4000 and 8000

Limbaje de programare i baze de date - ACCESS

52

Date afiate utiliznd condi ia BETWEEN Acelai rezultat l puteam ob ine i cu o condi ie dubl: select * from facturi where valoare >= 4000 and valoare <=8000

Date afiate utiliznd condi ia dubl Operatorul LIKE permite compararea unui atribut (expresii) cu un literal utiliznd o "masc" construit cu ajutorul specificatorilor multiplii * i ? . Simbolurile procent i underscore sunt denumite jokeri. Procentul substituie un ir de lungime variabil, 0-n caractere, n timp ce underscore substituie un singur caracter. Pentru exemplificare urmtoarele date: mai introducem dou facturi cu

Introducerea suplimentar a 2 facturi De exemplu dac dorim s afim care sunt to i furnizorii a cror cod_client ncepe cu litera "c" vom avea:

Limbaje de programare i baze de date - ACCESS select * from facturi where cod_furn like "c*"

53

Furnizorii a cror cod_furn ncepe cu litera "c" De exemplu dac dorim s afim care sunt to i furnizorii a cror cod_client ncepe cu litera "m" vom avea: select * from facturi where cod_furn like "m*"

Furnizorii a cror cod_furn ncepe cu litera "m" De exemplu dac dorim s afim care sunt to i furnizorii a cror cod_client are dou caractere i al doilea caracter este 5 vom avea: select * from facturi where cod_furn like "?5"

Furnizorii a cror cod_furn are dou caractere i al doilea caracter este 5 Atunci cnd se testeaz dac valoarea unui atribut este ncadrabil ntr-o list de valori dat, n locul folosirii abundente a operatorului OR este mai elegant s se apeleze la operatorul IN.

Limbaje de programare i baze de date - ACCESS

54

De exemplu dac dorim s afim facturile furnizorilor care au cod_furn c1, c3 i c4 avem: select * from facturi where cod_furn in ("c1","c3","c4")

Facturile furnizorilor care au cod_furn c1, c3 i c4 Sau de exemplu dac dorim s selectm facturile care au valoare de 500, 600, 5000 vom avea: select * from facturi where valoare in (500, 600, 5000)

Facturile care au valoare de 500, 600, 5000 Intrebri: 1. Care este diferen a ntre operatorii BETWEEN i IN? 2. Cu ce poate fi substituit operatorul BETWEEN?

Limbaje de programare i baze de date - ACCESS Studiu individual

55

APLCA IA 7: Utilizarea operatorilor BETWEEN; LIKE i IN n calcularea unor date pe baza tabelei ANGAJATI.

APLICA IA 7 1. Realiza i tabela SALARIATI pe baza structurii tabelei ANGAJATI din ANEXA 1. 2. n tabel introduce i urmtoarele date:

3. Care sunt salaria ii care au salariu cuprins ntre 550 i 1000? 4. Care sunt angaja ii care au salariu 600, 1000, 750, sau 300? 5. C i angaja i avem? 6. Care este salariul mediu? 7. Care este numele salariatului cu salariul cel mai mare? 8. Care sunt angaja ii a cror nume ncepe cu litera M sau I? 9. C i angaja i au prenumele din trei litere? 10. Care sunt salaria ii care nu au prenumele ION sau IOANA?

Limbaje de programare i baze de date - ACCESS

56

REUNIUNE, PRODUS CARTEZIAN


Principalele obiective ale capitolului sunt: Prezentarea operatorului UNION Realizarea produsului cartezian

Primii trei operatori asambliti prezint operatori SQL dedica i: UNION, INTERSECT, MINUS (EXTRACT), n timp ce produsul cartezian se calculeaz automat prin simpla enumerare a celor dou tabele din clauza FROM. La reuniunea a dou tabele, SQL elimin automat liniile identice din rezultat. Dac se dorete prelucrarea tuturor liniilor celor dou rela ii i implicit apari ia de linii duplicate, se folosete clauza ALL (UNION ALL). De exemplu, dup aceeai structur a tabelei FURNIZORI crem tabela FURNIZORI2. Tabela FURNIZORI2 con ine urmtoarele date:

Limbaje de programare i baze de date - ACCESS

57

Datele tabelei FURNIZORI2

Datele tabelei FURNIZORI Dac dorim s afim toate datele (utiliznd reuniunea) din tabelele FURNIZORI i FURNIZORI2 avem: select * from furnizori union select * from furnizori2

Limbaje de programare i baze de date - ACCESS

58

Toate datele (utiliznd reuniunea) din tabelele FURNIZORI i FURNIZORI2 SQL nu pune la dispozi ie vreun operator special dedicat produsului cartezian. Produsul cartezian se realizeaz prin simpla enumerare a tabelelor n clauza FROM. De exemplu dac dorim s realizm produsul cartezian ntre tabelele FACTURI i FURNIZORI avem: select * from facturi, furnizori

Limbaje de programare i baze de date - ACCESS

59

Produsul cartezian al tabelelor FACTURI i FURNIZORI

Intrebri: 1. Ce reprezint operatorul UNION? 2. Cum se realizeaz produsul cartezian?

Studiu individual APLICA IA 8: Eviden a mijloacelor fixe ale unei ntreprinderi

Limbaje de programare i baze de date - ACCESS APLICA IA 8

60

1. Realiza i tabela MF1 i MF2 dup structura tabelei MF din ANEXA 1. 2. Introducei urmtoarele date:

Datele tabelei MF1

Datele tabelei MF2 3. Care sunt datele din tabela MF1, ordonate alfabetic dup denumire? 4. Care sunt datele din tabela MF2, ordonate alfabetic dup denumire i apoi dup valoare? 5. Afia i datele celor dou tabele ntr-un query

Limbaje de programare i baze de date - ACCESS

61

6. Care sunt mijloacele fixe ce se gsesc n MF1 i nu se gsesc n MF2? 7. Care sunt mijloacele fixe ce se gsesc i n MF1 i n MF2? 8. Care este valoarea medie a mijloacelor fixe din MF1? 9. Care este valoarea medie a mijloacelor fixe din MF2 a cror nume ncepe cu litera C? 10. Care sunt mijloacele fixe din tabela MF2 furnizate de furnizorii cu codurile: c1, c2, c4, c5,c8?

Limbaje de programare i baze de date - ACCESS

62

THETA I ECHI-JONC IUNEA


Principalele obiective ale capitolului sunt: Realizarea unei legturi ntre dou sau mai multe tabele Utilizarea condi iilor n echi-jonc iune

SQL nu prezint clauze sau operatori speciali pentru jonc iune, jonc iunea fiind o combina ie ntre produs cartezian i selec ie. Deci pentru theta-jonc iunea dintre dou rela ii R1 i R2 avem: select * from R1, R2 where R1.A>=R2.E unde: R1 A 20 30 40 B XYZ XXZ YYX C 30 20 25 R2 C 25 40 30 D XYZ YYX XXZ E 30 25 40

Limbaje de programare i baze de date - ACCESS

63

iar pentru echi-jonc iune avem: select * from R1, R2 where R1.A=R2.E Varianta cu INNER JOIN (jonc iune intern) este: select * from R1 inner join R2 on R1.A>=R2.E respectiv select * from R1 inner join R2 on R1.A=R2.E Pentru urmtorul exemplu utilizm FURNIZORI, FACTURI cu urmtoarele date: urmtoarele tabele:

Limbaje de programare i baze de date - ACCESS

64

Se cere s de afieze pentru fiecare factur numele furnizorului. select facturi.*, furnizori.nume_furn from facturi, furnizori where facturi.cod_furn=furnizori.cod_furn

Numele furnizorului pentru fiecare factur Acelai rezultat se poate ob ine utiliznd INNER JOIN: select facturi.*, furnizori.nume_furn from facturi inner join furnizori ON facturi.cod_furn=furnizori.cod_furn

Limbaje de programare i baze de date - ACCESS

65

Numele furnizorului pentru fiecare factur Dac dorim s afim numele furnizorului pentru fiecare factur numai pentru furnizorul cu cod_furn "c1" vom avea: select facturi.*, furnizori.nume_furn from facturi, furnizori where facturi.cod_furn=furnizori.cod_furn and facturi.cod_furn="c1"

Numele furnizorului pentru fiecare factur numai pentru furnizorul cu cod_furn "c1"

Intrebri: 1. De ce dou tabele sunt legate logic prin valori? 2. Care este condi ia necesar pentru echijonc iune?

Limbaje de programare i baze de date - ACCESS Studiu individual

66

APLICA IA 9: Eviden a salaria ilor dintr-o firm

APLICA IA 9 1. S se realizeze tabelele ANGAJATI i DEPARTAMENTE dup structura tabelelor ANGAJATI i DEPARTAMENTE din ANEXA 1 2. Introduce i n tabele urmtoarele date:

3. Afia i eful pentru fiecare angajat. 4. Care sunt angaja ii care lucreaz n Braov? 5. C i angaja i lucreaz n Bucureti? 6. Care este numele angajatului cu salariul maxim? 7. Care este fondul de salarii pentru fiecare cod_dep?

Limbaje de programare i baze de date - ACCESS 8. Care sunt angajaii angaja i dup 01/01/1980? 9. Care sunt angaja ii care lucreaz la departamentul marketing? 10. C i subalterni are Vlad? 11. Care este salariul mediu pentru departamentul management? 12. Care sunt angaja ii a cror ef ncepe cu litera "A"? 13. Care sunt angaja ii care lucreaz n Braov sau Bucureti?

67

Limbaje de programare i baze de date - ACCESS

68

GRUPAREA TUPLURILOR: GROUP BY I HAVING


Principalele obiective ale capitolului sunt: Utilizarea grupurilor Utilizarea condi iilor pentru grupuri

Clauza GROUP BY formeaz grupe (grupuri) de tupluri ale unei rela ii, pe baza valorilor comune ale unui atribut. n frazele SELECT formulate pn n acest paragraf, prin intermediul WHERE au fost selectate tupluri ale tabelei. Prin asocierea unei clauze HAVING la GROUP BY este posibil selectare anumitor grupuri de tupluri ce ndeplinesc un criteriu, valabil numai la nivel de grup (nu i la nivel de linie). Clauza unei fraze SELECT ce con ine aceast clauz se ob ine prin regruparea tuturor liniilor din tabelele enumerate n FROM, extrgndu-se cte o apari ie pentru fiecare valoare distinct a coloanei/grupului de coloane.

Limbaje de programare i baze de date - ACCESS

69

Formatul general este: select coloan1, coloan2,...,coloan m from tabel group by coloan_de_regrupare De exemplu dac dorim s vedem care este valoarea total a facturilor pentru fiecare cod_furn vom avea: select cod_furn, sum(valoare) from facturi group by cod_furn

Valoarea total a facturilor pentru fiecare cod_furn Cea mai simpl defini ie a clauzei HAVING este: clauza HAVING este WHERE-ul ce opereaz la nivel de grupuri. Dac WHERE ac ioneaz la nivel de tuplu, selectnd acele linii care ndeplinesc o condi ie specificat, HAVING permite specificarea unor condi ii de selec ie care se aplic tuplurilor de linii create prin GROUP BY. Din rezultat sunt eliminate toate grupurile care nu satisfac condi ia specificat. De exemplu dac dorim s vedem care este valoarea total a facturilor pentru cod_furn egal cu "c1" vom avea: select cod_furn, sum(valoare) from facturi group by cod_furn having cod_furn="c1"

Valoarea total a facturilor pentru cod_furn egal cu "c1"

Limbaje de programare i baze de date - ACCESS

70

Intrebri: Cnd se utilizeaz GROUP BY? Care este defini ia condi iei HAVING?

Studiu individual APLICA IA 10: Situa ii de grup la nivelul salaria ilor

APLICA IA 10 1. S se realizeze tabelele ANGAJATI i DEPARTAMENTE dup structura tabelelor ANGAJATI i DEPARTAMENTE din ANEXA 1 2. Introduce i n tabele urmtoarele date:

Limbaje de programare i baze de date - ACCESS

71

3. Afia i eful pentru fiecare angajat. 4. Care este salariul total pentru fiecare departament? 5. Care este salariul total pentru departamentul MANAGEMENT? 6. Care este suma total a salariilor din departamentele management i contabilitate? 7. Care este numrul de salaria i din fiecare departament? 8. Care este departamentul cu angaja ii cei mai mul i? 9. Care este eful departamentului cu cei mai mul i angaja i? 10. C i angaja i are Vlad?

Limbaje de programare i baze de date - ACCESS

72

REALIZAREA FORMULARELOR
Principalele obiective ale capitolului sunt: Utilizarea formularelor Utilizarea generatoarelor wizard pentru crearea formularelor Rularea formularelor

UTILIZAREA FORMULARELOR Formularele sunt ecrane cu ajutorul crora se pot introduce date n tabele sau se pot lansa diferite comenzi i aplica ii. De obicei, formularele con in casete n care se poate scrie text, butoane prin care se pot lansa comenzi sau aplica ii, elemente de tip list pentru alegerea unor valori sau op iuni de tip check-box. Pentru facilitarea lucrului cu formulare, programul dispune de un generator de tip wizard prin care se pot crea formulare de introducere a datelor n tabele. Formularele pot fi fcute att pe baza unor tabele existente ct i pe baza unor interogri deja definite (QUERIES).

Limbaje de programare i baze de date - ACCESS

73

Pentru realizarea formularelor din panoul de comand se alege op iunea FORMS din cadrul meniului OBJECTS.

Alegerea op iunii FORMS UTILIZAREA GENERATOARELOR WIZARD PENTRU CREAREA FORMULARELOR Pentru utilizarea generatorului de formulare n panoul de comand se alege op iunea CREATE FORM BY USING WIZARD. Dac utilizatorul dorete s creeze formulare manual va alege op iunea CRAETE FORM IN DESIGN VIEW.

Utilizarea generatorului de formulare

Limbaje de programare i baze de date - ACCESS

74

In fereastra FORM WIZARD primul pas n crearea formularului este alegerea tabelei n care vor fi introduse datele. Tabela dorit se selecteaz prin op iunea TABLES / QUERIES.

Selectarea tabelei Cel de-al doilea pas este selectarea cmpurilor n care se vor introduce date. Selectarea cmpurilor poate fcut separat pentru fiecare cmp (oferind posibilitatea ca unul sau mai multe cmpuri s lipseasc) sau pentru toate cmpurile.

Limbaje de programare i baze de date - ACCESS

75

Selectarea cmpurilor dorite n formular Cmpurile selectate se mut n ecranul din partea dreapt. n exemplul de mai jos au fost selectate toate cmpurile. Se vor selecta elementele dorite dup care se continu prin apsare tastei NEXT.

Limbaje de programare i baze de date - ACCESS

76

Cmpurile selectate n continuare se alege modul de afiare a cmpurilor n formular (pe coloane, tabular, foaie de lucru, etc.). Se va selecta tipul dorit dup care se continu prin apsare tastei NEXT.

Limbaje de programare i baze de date - ACCESS

77

Selectarea modului de afiare Din punct de vedere grafic sunt disponibile mai multe tipuri de formulare. Se va selecta tipul dorit dup care se continu prin apsare tastei NEXT.

Alegerea stilului formularului Ultimul pas n realizarea formularelor este denumirea formularului creat. Implicit numele este cel al tabelei n care vor fi scrise datele.

Limbaje de programare i baze de date - ACCESS

78

Denumirea formularului RULAREA FORMULARULUI Pentru a rula un formular se da dublu click pe numele sau n fereastra de comand.

Rularea formularului ANGAJATI

Limbaje de programare i baze de date - ACCESS

79

Intrebri: Pentru ce se utilizeaz formularele? Care sunt pai necesari n conceperea unui formular?

Studiu individual APLICA IA 11: Introducerea datelor n tabele cu ajutorul formularelor

Limbaje de programare i baze de date - ACCESS APLICA IA 11

80

1. S se realizeze tabelele ANGAJATI i DEPARTAMENTE dup structura tabelelor ANGAJATI i DEPARTAMENTE din ANEXA 1 2. Realiza i formulare pentru introducerea datelor n cele dou tabele 3. Introduce i n tabele urmtoarele date:

4. Care este salariul total pentru fiecare departament? 5. Care este salariul total pentru departamentul MANAGEMENT? 6. Care este suma total a salariilor din departamentele management i contabilitate? 7. Care este numrul de salaria i din fiecare departament? 8. Care este departamentul cu angaja ii cei mai mul i? 9. Care este eful departamentului cu cei mai mul i angaja i? 10. C i angaja i are Vlad?

Limbaje de programare i baze de date - ACCESS

81

REALIZAREA RAPOARTELOR
Principalele obiective ale capitolului sunt: Rolul rapoartelor Modul de realizarea a rapoartelor

UTILIZAREA RAPOARTELOR Rapoartele sunt utilizate pentru afiarea estetic a datelor dintro tabel sau query. Primul pas n realizarea unui raport l reprezint selectarea op iunii REPORTS din cadrul meniului OBJECTS. i pentru realizarea rapoartelor avem la dispozi ie posibilitatea realizrii manual sau n mod asistat de program cu ajutorul generatorului de tip wizard.

Limbaje de programare i baze de date - ACCESS

82

Selectarea op iunii REPORTS Pentru facilitarea lucrului vom utiliza generatorul de rapoarte. Acest lucru se face cu ajutorul op iunii CREATE REPORT BY USING WIZARD.

Selectarea generatorului de rapoarte n realizarea raportului primul, n fereastra REPORT WIZARD trebuie selectat tabela pentru care se vor afia datele.

Limbaje de programare i baze de date - ACCESS

83

Selectarea tabelei Similar crerii formularelor, trebuiesc precizate cmpurile care vor fi afiate din tabela deja selectat.

Selectarea cmpurilor din tabel

Limbaje de programare i baze de date - ACCESS

84

Pentru cmpurile selectate se poate face o grupare, n momentul afirii datelor dup un cmp.

Gruparea datelor dup un cmp Totodat datele ce vor fi afiate pot fi ordonate dup unul sau mai multe criterii. Aceste criterii sunt alfabetice sau invers-alfabetice, cresctoare sau descresctoare, n func ie de tipul cmpului text sau numeric.

Limbaje de programare i baze de date - ACCESS

85

Selectarea criteriilor de ordonare a datelor Urmtorul pas este alegerea unei forme de prezentare a datelor, de aliniere a informa iilor i formatul paginii.

Alegerea formatului de prezentare a datelor

Limbaje de programare i baze de date - ACCESS

86

Tot n legtur cu forma de afiare a datelor este i stilul raportului. Pentru alegerea stilului se selecteaz din meniul din partea din dreapta op iunea dorit. Aceast op iune este doar din punct de vedere estetic.

Selectarea stilului raportului Ultimul pas n realizarea raportului este denumirea raportului realizat. i n acest caz, denumirea implicit este cea a tabelei din care sunt luate datele. Dup tastarea noului nume se tasteaz FINISH. n acest moment raportul este gata i poate fi rulat.

Limbaje de programare i baze de date - ACCESS

87

Denumirea raportului EXECU IA RAPORTULUI Pentru a rula un raport se da dublu click pe numele sau n fereastra de comand.

Lansare n execu ie a raportului Raportul odat lansat este afiat pe ecran. Poate fi utilizat func ia zoom pentru mrire sau micorare. Totodat raportul poate fi i listat.

Limbaje de programare i baze de date - ACCESS

88

Raportul ob inut Intrebri: Ce este un raport? Cum se realizeaz un raport?

Studiu individual APLICA IA 13: Utilizarea rapoartelor

APLICA IA 13 1. Realiza i tabela SALARIATI pe baza structurii tabelei ANGAJATI din ANEXA 1. 2. n tabel introduce i urmtoarele date:

Limbaje de programare i baze de date - ACCESS

89

3. Realiza i un raport pentru afiarea tuturor salaria ilor 4. Realiza i un raport pentru afiarea tuturor salaria ilor, grupa i pe departamente i ordonai alfabetic dup nume. 5. Realiza i un raport pentru afiarea numelui salaria ilor si a departamentului unde lucreaz.

Limbaje de programare i baze de date - ACCESS

90

CONSTRUC IA PAGINILOR WEB PENTRU LUCRUL CU BAZE DE DATE


Principalele obiective ale capitolului sunt: Rolul formularelor de tip pagina web Realizarea paginilor web cu formulare pentru introducerea datelor

ROLUL PAGINILOR WEB INTRODUCEREA DATELOR

CU

FORMULAR

PENTRU

Bazele de date i aplica iile realizate n ACCESS sunt foarte mult utilizate pentru aplica ii web. n consecin , pentru a putea introduce date n tabelele ACCESS este nevoie de pagini web ce pot fi publicate pe un server de web.

Limbaje de programare i baze de date - ACCESS REALIZAREA PAGINILOR WEB

91

La fel ca i n cadrul celorlalte module primul pas n realizare l constituie selectarea op iunii PAGES din cadrul meniului OBJECTS.

Selectarea op iunii PAGES i pentru crearea formularelor n pagini web avem la dispozi ie un generator de tip wizard. Pornirea generatorului se face prin selectarea op iunii CREATE DATA ACCESS PAGE BY USING WIZARD. La fel ca i n cazul formularelor i rapoartelor trebuie selectat tabela i cmpurile care vor apare in pagin.

Limbaje de programare i baze de date - ACCESS

92

Selectarea tabelei i a cmpurilor Datele pot fi grupate dup unul din cmpurile tabelei care vor apare n pagin. Aceast grupare nu este ns obligatorie.

Limbaje de programare i baze de date - ACCESS

93

Gruparea datelor dup un cmp n continuare, tot op ional se pot alege cmpurile dup care se va face ordonarea datelor. Aceste criterii de ordonare sunt alfabetice sau invers-alfabetice, cresctoare sau descresctoare, n func ie de tipul cmpului text sau numeric.

Ordonarea datelor

Limbaje de programare i baze de date - ACCESS

94

Ultimul pas n realizarea paginii este denumirea titlului paginii realizate. i n acest caz, denumirea implicit este cea a tabelei din care sunt luate datele. Dup tastarea noului nume se tasteaz FINISH.

Titlul paginii Pentru deschiderea paginii se alege op iunea OPEN THE PAGE.

Limbaje de programare i baze de date - ACCESS

95

Op iunea OPEN THE PAGE Vizualizarea paginii permite asemntor unui formular obinuit. introducerea datelor

Vizualizarea paginii

Limbaje de programare i baze de date - ACCESS

96

Pentru salvarea paginii este necesar nchiderea acesteia i denumirea sa.

Salvarea paginii Aten ie deoarece pagina creat este o pagin web trebuie s aib extensia HTM, HTML sau ASP. Vizualizarea paginii creat ca formular de introducere a datelor n Access poate fi fcut similar cu orice pagina web. Intrebri: La ce folosesc paginile web create n Access? Care sunt paii de realizarea a unei astfel de pagini?

Limbaje de programare i baze de date - ACCESS Anexa 1 Tabele utilizate Tabela: angajati cmp cod (CP) nume prenume data_nasterii sal_brut cod_dep Tabela: departamente cmp cod_dep (CP) den localitate sef telefon Tabela: facturi cmp nr_factura (CP) cod_furn data_fact valoare tip numeric text data numeric tip text text text text numeric tip numeric text text data numeric text

97

Limbaje de programare i baze de date - ACCESS Tabela: furnizori cmp cod_furn (CP) nume_furn adresa localitate Tabela: mf cmp cod_mf (CP) den valoare per_amort cod_furn tip numeric text numeric numeric text tip text text text text

98