Sunteți pe pagina 1din 98

Radu Lixndroiu

LIMBAJE DE PROGRAMARE I BAZE DE DATE ACCESS

SUPORT PENTRU LABORATOR

BRAOV - 2008

Limbaje de programare i baze de date - ACCESS

SISTEMUL DE GESTIUNE A BAZELOR DE DATE


Principalele obiective ale capitolului sunt: Concepte principale din teoria relaional 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 relaional.

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

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

Atributul este coloana unei relaii 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 relaie i nu are nume. Valorile dintr-un tuplu aparin produsului cartezian dintre domeniile relaiei (exemplu tuplul v1, v2, ...,vn, unde v1 D1, v2 D2,...,vn Dm, cu n m numere ntregi). Schema relaiei este un ansamblu format din numele relaiei (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 relaie.

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 relaie R1, dac ansamblul de atribute care o definete ia valori din aceleai domenii ca i cheia primar a unei relaii R2 si dac are rolul de a stabili o legtura (asociere) ntre cele dou relaii. Prezentare comparativ a noiunilor privind organizarea datelor n memoria extern n fiiere, baze de date relaionale (BDR) i cele utilizate n VFP.
Mem extern BDR Access FISIER RELAIE 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. Dai exemplu de un atribut i de un tuplu pentru relaia 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 relaiilor 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 opiunea NEW.

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

Limbaje de programare i baze de date - ACCESS

Alegerea opiunii 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 conine nici o informaie (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) opiunea TABLES (tabele).

Selectarea opiunii 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 opiune: CREATE TABLE IN DESIGN VIEW.

Limbaje de programare i baze de date - ACCESS

Selectarea opiunii 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 opiunea PRIMARY KEY.

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

Cheie primar Pentru informaii suplimentare privind cmpul respectiv, n partea de jos a ecranului avem urmtoarele opiuni:

Opiunile 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 (ATENIE 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 opiunii 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 RELAIILOR NTRE TABELE ntre tabelele existente se pot crea relaii pe baza cheilor primare i externe existente. In bara de comenzi se alege opiunea RELATIONSHIPS dnd clik pe simbolul .

Crearea relaiilor ntre tabele Pentru adugarea tabelelor n fereastra de relaii se selecteaz tabela dorit dup care de apas butonul ADD.

Limbaje de programare i baze de date - ACCESS

15

Adugarea tabelelor in fereastra de relaii Pentru realizarea relaiilor se selecteaz cheia extern din tabel i se trage pe cheia primar a tablei cu care se creeaz relaia.

Realizarea unei relaii 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 relaiile existente ntre toate tabelele. n final se pot vizualiza toate relaiile existente ntre toate tabelele bazei de date.

Vizualizarea legturilor existente n baza de date MODIFICAREA I TERGERA DATELOR Modificarea, inserarea i tergerea sunt operaii 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 suprafaa liniei ce se dorete a fi tears. Va apare un meniu din care se ale opiunea 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 meniunea 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 coninutului unei tabele? Cum se actualizeaz coninutul unei tabele? Prezentai modul de vizualizare a coninutului unei tabele. Prezentai modul de actualizare a structurii unei tabele. Studiu individual Aplicaia 1: Creare i actualizare tabel.

APLICAIA 1 Creai o tabel urmtoarea structur: Nume Prenume Cod Oras Medie Admis i cu urmtorul coninut : 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 opiunea QUERIES.

Limbaje de programare i baze de date - ACCESS

22

Selectarea opiunii QUERIES i pentru crearea comenzilor de tip query avem la dispoziie 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 opiune 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 suprafaa gri prin click dreapta de mouse se poate accesa urmtorul meniu:

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

Limbaje de programare i baze de date - ACCESS

24

Opiunile 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 opiunea APPEND QUERY

Alegerea opiunii APPEND QUERY sau se poate direct ale opiunea 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. Atenie! 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 execuiei comenzii, programul cere 2 confirmri: 1) pentru execuia 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 angajaii 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 condiie?

Limbaje de programare i baze de date - ACCESS

30

Studiu individual Aplicaia 2: Introducere de date, selecii simple i utiliznd condiii simple i compuse.

APLICAIA 2 1. Realizai o tabel FURNIZORI cu structura tabelei FURNIZORI din ANEXA 1. 2. Introducei urmtoarele date:

3. Modificai localitatea pentru angajai din BRASOV n RASNOV. 4. tergei toi furnizorii din BRASOV 5. tergei toi furnizorii din CLUJ 6. nlocuii numele fiecrei localiti cu prima sa liter.

Limbaje de programare i baze de date - ACCESS

31

SELECIA I PROIECIA

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

Clauza SELECT corespunde operatorului proiecie din algebra relaional, fiind utilizat pentru desemnarea listei de atribute (coloane) din rezultat. Clauza FROM este cea n care sunt enumerate relaiile din care vor fi extrase informaiile aferente consultrii. Clauza WHERE desemneaz predicatul selectiv al algebrei relaionale (condiia), relativ la atribute ale relaiilor 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 relaiile ce trebuie parcurse; p - reprezint predicatul, condiia ce trebuie ndeplinit de tupluri (linii) pentru a fi incluse n rezultat. Predicatul poate fi simplu sau compus (din mai multe condiii). 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 relaiilor 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 opiunii DISTINCT. exemplu: select distinct c1,c2 from r1 n concluzie, o fraz SELECT, corespunde: unei selecii algebrice (clauza WHERE p) unei proiecii (SELECT ci) unui produs cartezian (FROM - r1 r2 ... rm) i conduce la obinerea 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. Execuia 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 coninute 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 salariailor i salariul brut? select nume, sal_brut from angajati

34

Rezultatele exemplului 2 3. Care sunt numele salariailor 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. Afiai numele angajailor i salariul brut, pentru salariaii 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 salariailor care lucreaz n departamentul informatic (cod_dep="info")? select * from angajati WHERE cod_dep="info"

Rezultatele exemplului 5 6. Care sunt datele salariailor 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. Afiai numele salariailor 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. Afiai numele angajailor i data naterii pentru angajaii nscui 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. Afiai numele angajailor i data naterii pentru angajaii nscui 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 selecii? 2. Care sunt clauzele obligatorii ale unei selecii? 3. Cte tabele putem trece la clauza FROM?

Limbaje de programare i baze de date - ACCESS Studiu individual

38

Aplicaia 3: Introducere de date, selecii simple i utiliznd condiii simple i compuse.

APLICAIA 3 1. Realizai 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 Constana? 6. tergei furnizorii care sunt din Bucureti. 7. Introducei trei furnizori noi utiliznd INSERT. 8. Modificai 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 obine Query-ul:

Rezultatele seleciei

Intrebri: 1. Cum putem s denumim coloana din rezultat? 2. Cum putem obine o coloan nou utiliznd n selecie o condiie?

Limbaje de programare i baze de date - ACCESS

41

Studiu individual Aplicaia 4: Calcularea amortizrii lunare prin metoda liniar.

APLICAIA 4 1. Realizai 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. Denumii 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. Calculai care este amortizarea lunar pentru "masina 2" 9. Calculai amortizarea lunar liniar pentru mijloacele fixe cumprate de la furnizorul c1 sau c2.

Limbaje de programare i baze de date - ACCESS

42

Funciile agregat: COUNT, SUM, AVG, MIN, MAX


Principalele obiective ale capitolului sunt: Utilizarea funciilor Count, sum, avg. min, max Realizarea unor noi coloane care s conin date obinute prin utilizarea funciilor de mai sus.

Funcia 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 Funcia SUM este una dintre cele mai utilizate funcii n aplicaiile economice, deoarece datele financiar-contabile i cele ale evidenei 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" Funcia 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 funcii 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 comparaie 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 APLICAIA 6: Utilizarea funciilor: AVG; MIN; MAX; SUM; COUNT

Limbaje de programare i baze de date - ACCESS APLICAIA 5

46

1. Realizai tabela FACTURI cu structura tabelei FACTURI din ANEXA 1. 2. Introducei 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. Calculai 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

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

Una dintre caracteristicile modelului relaional este c nici ordinea atributelor, nici ordinea liniilor n relaii nu reprezint importan din punctul de vedere al coninutului informaional. ns n practic forma de prezentare a rezultatelor interogrii est important. Spre exemplu o list a localitilor 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 obinute 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 aciune 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

Obinerea 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 APLICAIA interogri. 6: Ordonarea rezultatelor unei

APLICAIA 6 1. Realizai 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. Afiai denumirea mijloacelor fixe, ordonat alfabetic pentru mijloacele fixe cu o valoare mai mare de 32000 inclusiv. 7. Afiai 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 selecie, 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 condiia BETWEEN Acelai rezultat l puteam obine i cu o condiie dubl: select * from facturi where valoare >= 4000 and valoare <=8000

Date afiate utiliznd condiia 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 toi 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 toi 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 toi 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 diferena ntre operatorii BETWEEN i IN? 2. Cu ce poate fi substituit operatorul BETWEEN?

Limbaje de programare i baze de date - ACCESS Studiu individual

55

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

APLICAIA 7 1. Realizai tabela SALARIATI pe baza structurii tabelei ANGAJATI din ANEXA 1. 2. n tabel introducei urmtoarele date:

3. Care sunt salariaii care au salariu cuprins ntre 550 i 1000? 4. Care sunt angajaii care au salariu 600, 1000, 750, sau 300? 5. Ci angajai avem? 6. Care este salariul mediu? 7. Care este numele salariatului cu salariul cel mai mare? 8. Care sunt angajaii a cror nume ncepe cu litera M sau I? 9. Ci angajai au prenumele din trei litere? 10. Care sunt salariaii 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 dedicai: 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 relaii i implicit apariia de linii duplicate, se folosete clauza ALL (UNION ALL). De exemplu, dup aceeai structur a tabelei FURNIZORI crem tabela FURNIZORI2. Tabela FURNIZORI2 conine 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 dispoziie 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 APLICAIA 8: Evidena mijloacelor fixe ale unei ntreprinderi

Limbaje de programare i baze de date - ACCESS APLICAIA 8

60

1. Realizai 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. Afiai 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-JONCIUNEA
Principalele obiective ale capitolului sunt: Realizarea unei legturi ntre dou sau mai multe tabele Utilizarea condiiilor n echi-jonciune

SQL nu prezint clauze sau operatori speciali pentru jonciune, jonciunea fiind o combinaie ntre produs cartezian i selecie. Deci pentru theta-jonciunea dintre dou relaii 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-jonciune avem: select * from R1, R2 where R1.A=R2.E Varianta cu INNER JOIN (jonciune 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 obine 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 condiia necesar pentru echijonciune?

Limbaje de programare i baze de date - ACCESS Studiu individual

66

APLICAIA 9: Evidena salariailor dintr-o firm

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

3. Afiai eful pentru fiecare angajat. 4. Care sunt angajaii care lucreaz n Braov? 5. Ci angajai 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 angajai dup 01/01/1980? 9. Care sunt angajaii care lucreaz la departamentul marketing? 10. Ci subalterni are Vlad? 11. Care este salariul mediu pentru departamentul management? 12. Care sunt angajaii a cror ef ncepe cu litera "A"? 13. Care sunt angajaii 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 condiiilor pentru grupuri

Clauza GROUP BY formeaz grupe (grupuri) de tupluri ale unei relaii, 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 conine aceast clauz se obine prin regruparea tuturor liniilor din tabelele enumerate n FROM, extrgndu-se cte o apariie 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 definiie a clauzei HAVING este: clauza HAVING este WHERE-ul ce opereaz la nivel de grupuri. Dac WHERE acioneaz la nivel de tuplu, selectnd acele linii care ndeplinesc o condiie specificat, HAVING permite specificarea unor condiii de selecie care se aplic tuplurilor de linii create prin GROUP BY. Din rezultat sunt eliminate toate grupurile care nu satisfac condiia 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 definiia condiiei HAVING?

Studiu individual APLICAIA 10: Situaii de grup la nivelul salariailor

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

Limbaje de programare i baze de date - ACCESS

71

3. Afiai 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 salariai din fiecare departament? 8. Care este departamentul cu angajaii cei mai muli? 9. Care este eful departamentului cu cei mai muli angajai? 10. Ci angajai 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 aplicaii. De obicei, formularele conin casete n care se poate scrie text, butoane prin care se pot lansa comenzi sau aplicaii, elemente de tip list pentru alegerea unor valori sau opiuni 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 opiunea FORMS din cadrul meniului OBJECTS.

Alegerea opiunii FORMS UTILIZAREA GENERATOARELOR WIZARD PENTRU CREAREA FORMULARELOR Pentru utilizarea generatorului de formulare n panoul de comand se alege opiunea CREATE FORM BY USING WIZARD. Dac utilizatorul dorete s creeze formulare manual va alege opiunea 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 opiunea 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 APLICAIA 11: Introducerea datelor n tabele cu ajutorul formularelor

Limbaje de programare i baze de date - ACCESS APLICAIA 11

80

1. S se realizeze tabelele ANGAJATI i DEPARTAMENTE dup structura tabelelor ANGAJATI i DEPARTAMENTE din ANEXA 1 2. Realizai formulare pentru introducerea datelor n cele dou tabele 3. Introducei 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 salariai din fiecare departament? 8. Care este departamentul cu angajaii cei mai muli? 9. Care este eful departamentului cu cei mai muli angajai? 10. Ci angajai 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 opiunii REPORTS din cadrul meniului OBJECTS. i pentru realizarea rapoartelor avem la dispoziie 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 opiunii REPORTS Pentru facilitarea lucrului vom utiliza generatorul de rapoarte. Acest lucru se face cu ajutorul opiunii 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 funcie 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 informaiilor 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 opiunea dorit. Aceast opiune 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 EXECUIA RAPORTULUI Pentru a rula un raport se da dublu click pe numele sau n fereastra de comand.

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

Limbaje de programare i baze de date - ACCESS

88

Raportul obinut Intrebri: Ce este un raport? Cum se realizeaz un raport?

Studiu individual APLICAIA 13: Utilizarea rapoartelor

APLICAIA 13 1. Realizai tabela SALARIATI pe baza structurii tabelei ANGAJATI din ANEXA 1. 2. n tabel introducei urmtoarele date:

Limbaje de programare i baze de date - ACCESS

89

3. Realizai un raport pentru afiarea tuturor salariailor 4. Realizai un raport pentru afiarea tuturor salariailor, grupai pe departamente i ordonai alfabetic dup nume. 5. Realizai un raport pentru afiarea numelui salariailor si a departamentului unde lucreaz.

Limbaje de programare i baze de date - ACCESS

90

CONSTRUCIA 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 aplicaiile realizate n ACCESS sunt foarte mult utilizate pentru aplicaii 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 opiunii PAGES din cadrul meniului OBJECTS.

Selectarea opiunii PAGES i pentru crearea formularelor n pagini web avem la dispoziie un generator de tip wizard. Pornirea generatorului se face prin selectarea opiunii 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 opional se pot alege cmpurile dup care se va face ordonarea datelor. Aceste criterii de ordonare sunt alfabetice sau invers-alfabetice, cresctoare sau descresctoare, n funcie 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 opiunea OPEN THE PAGE.

Limbaje de programare i baze de date - ACCESS

95

Opiunea 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 Atenie 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

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