Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
Introducere in MySQL si SQL
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 
Utilizarea generala a sistemului MySQL k8p10pi
1 Introducere in MySQL si SQL
2 Lucrul cu date in MySQL si SQL
3 Sintaxa si utilizarea SQL in MySQL
4 Optimizarea interogarilor


Acest capitol constituie o introducere in sistemul de gestiune a bazelor de date relationale (SGBDR) MySQL si in limbajul de interogare structurat (SQL) pe care il intelege sis¬temul MySQL. Capitolul prezinta termeni si concepte fundamentale pe care trebuie sa le intelegeti, descrie baza de date demonstrativa pe care o vom folosi in exemplele din carte si contine un manual care va indica modul de utilizare a sistemului MySQL pentru a crea o baza de date si pentru a interactiona cu aceasta.
incepeti de aici daca sunteti un neofit in domeniul bazelor de date si, poate, nu sunteti sigur daca aveti nevoie sau daca puteti folosi o baza de date. De asemenea, trebuie sa' cititi capitolul de fata daca nu stiti nimic despre MySQL sau SQL si aveti nevoie de un! ghid introductiv pentru inceput. Cititorii cu experienta in MySQL sau cu sistemele de baze de date pot omite acest material. Totusi, toata lumea trebuie sa citeasca sectiunea) „O baza de date demonstrativa", deoarece este cel mai bine sa fiti familiarizat cu destinatia si continutul bazei de date pe care o vom folosi in mod repetat pe parcursul cartii.!

Aceasta sectiune descrie situatii in care sistemul de baze de date MySQL poate fi util.. Astfel, va veti forma o parere cu privire la tipurile de operatii pe care le poate efectua MySQL si la modalitatile in care acest sistem va poate ajuta. Daca nu trebuie sa va convingeti de utilitatea unui sistem de baze de date - poate fiindca deja aveti o problems in minte si doriti pur si simplu sa aflati care este modul in care puteti folosi MySQL pen¬tru a va ajuta sa o rezolvati - puteti trece la sectiunea „O baza de date demonstrativa".
Un sistem de baze de date este, in esenta, o modalitate de a gestiona liste cu informatii Informatiile pot proveni dintr-o varietate de surse. De exemplu, pot reprezenta date de cercetare, inregistrari de afaceri, cereri ale clientilor, statistici sportive, rapoarte d( vanzari, informatii despre hobby-urile proprii, inregistrari de personal, rapoarte privim defectiuni sau notele unor elevi. Totusi, desi sistemele de baze de date pot lucra cu gama larga de informatii, nu folositi un asemenea sistem doar de dragul de a-1 folosi Daca o sarcina este de la bun inceput usor de indeplinit, nu aveti nici un motiv de i insera o baza de date numai pentru a o folosi. O lista de cumparaturi este un exemplv bun: scrieti articolele pe care trebuie sa le cumparati, le stergeti de pe lista atunci cand 1< cumparati si apoi aruncati lista. Este putin probabil sa folositi o baza de date pentru asta Chiar daca aveti un calculator de tip palmtop (care poate fi tinut in palma - N.T.) proba¬bil ca pentru lista de cumparaturi veti folosi functia sa de editare de texte, nu caracteris¬ticile sale de baze de date.
Puterea unui sistem de baze de date intra in actiune atunci cand informatiile pe care doriti sa le organizati si sa le gestionati devin voluminoase sau complexe, astfel incat inregistrarile dumneavoastra devin prea dificil de manipulat manual. Bazele de date pot fi folosite, desigur, de catre mari corporatii, care prelucreaza milioane de tranzactii zil¬nic. Dar chiar si operatiile la scara mica, care necesita o singura persoana pentru a intretine informatii de interes personal, pot necesita o baza de date. Nu este greu sa ne gandim la situatii incarc utilizarea unei baze de date poate fi benefica, deoarece nu tre¬buie sa aveti cantitati imense de informatii inainte ca acele informatii sa devina dificil de gestionat. Sa ne gandim la urmatoarele situatii:
• intreprinderea dumneavoastra de tamplarie are numerosi angajati. Trebuie sa pastrati inregistrarile cu salariati si statele de plata astfel incat sa stiti pe cine ati platit si cand ati efectuat plata; de asemenea, trebuie sa rezumati aceste inregistrari pentru a putea remite declaratiile de venit autoritatilor, in vederea stabilirii impozitelor. De asemenea, trebuie sa pastrati evidenta sarcinilor pe care compania dumneavoastra a fost angajata sa le indeplineasca si salariatii pe care i-ati programat sa lucreze la fiecare sarcina.
• Sunteti administratorul unei retele de depozite cu piese de schimb pentru autoturisme si trebuie sa stiti care sunt depozitele care dispun de o anumita piesa in inventar, astfel incat sa puteti onora comenzile clientilor.
• Ca vanzator de jucarii, sunteti supus cu precadere unei cereri (dependente de capricii¬le cumparatorilor) de articole pe care le puteti transporta. Doriti sa stiti care este traiectoria curenta a vanzarilor pentru anumite articole, astfel incat sa puteti estima daca sa mariti inventarul (pentru un articol care devine mai popular) sau daca sa-1 reduceti (pentru a nu va „intepeni" cu un stoc foarte mare dintr-un produs care nu se mai vinde bine).
• Stiva de date de cercetare pe care le-ati adunat in cursul mai multor ani trebuie sa fie analizata in vederea publicarii, pentru ca nu cumva dictonul „publica sau dispari" sa devina epitaful carierei dumneavoastra. Doriti sa reduceti mari cantitati de date brute pentru a genera informatii de sumar, precum si sa extrageti subseturi selectate de observatii in vederea unei analize statistice mai detaliate.
• Sunteti un orator cunoscut, care calatoreste prin tara pentru a participa la numeroase tipuri de adunari, cum sunt festivitatile de absolvire, intalnirile de afaceri, intruniri civice si conventii politice. V-ati adresat publicului de atatea ori, incat este dificil sa va amintiti ce anume ati spus in fiecare loc unde ati fost, deci ati dori sa pastrati inregis¬trari ale discursurilor dumneavoastra trecute si sa le folositi pentru a va ajuta in plani¬ficarea angajamentelor dumneavoastra viitoare. Daca reveniti intr-un loc unde ati mai vorbit, nu doriti sa tineti un discurs similar cu unul pe care 1-ati mai tinut in acel loc, iar o inregistrare a fiecarui loc pe unde ati fost va va ajuta sa evitati repetarile. De asemenea^ doriti sa retineti modul in care au fost receptate discursurile dumneavoas¬tra. (Monologul dumneavoastra „De ce-mi plac pisicile" de la Metropolitan Kennel Club a fost oarecum un fiasco, deci nu vreti sa faceti din nou aceeasi greseala, daqa reveniti, acolo.) ,
• Sunteti un profesor care trebuie sa-si pastreze evidenta notelor date si a prezentei la curs. De fiecare data cand dati un test sau un chestionar, inregistrati nota obtinuta de fiecare elev. Este destul de simplu sa scrieti notele intr-un catalog, dar utilizarea ulte¬rioara a notelor este o treaba dificila. Preferati sa evitati sortarea notelor de la fiecare test pentru a determina distributia notelor; de asemenea, preferati sa nu adunati punc¬tajele fiecarui elev atunci cand determinati mediile finale de la sfarsitul perioadei de notare. Nici numararea absentelor fiecarui elev nu are nici un haz.
• Institutia al carei secretar sunteti foloseste un catalog al membrilor. (Institutia poate avea orice profil: o societate profesionala, un club, o companie cu depozite, o orchestra sim¬fonica sau un club pentru intretinerea conditiei fizice.) in fiecare an, generati acest cata¬log in forma scrisa pentru membri, in functie de un document creat cu un procesor de texte pe care il editati atunci cand informatiile despre membri se modifica.
V-ati plictisit sa folositi catalogul in acest mod, deoarece limiteaza modurile de uti¬lizare a acestuia. Sortarea intrarilor in diferite moduri este dificila si nu puteti selecta cu usurinta numai anumite parti ale fiecarei intrari (cum ar f i o lista alcatuita numai din nume si numere de telefon). Nici nu puteti descoperi usor un subset de membri, cum sunt aceia care trebuie sa-si plateasca in curand cotizatia; daca ati putea, ati elimina necesitatea de a cauta lunar in diferite rubrici pentru a-i gasi pe acei membri carora tre¬buie sa li se trimita instiintari pentru plata cotizatiei.
De asemenea, doriti efectiv sa evitati sa editati personal catalogul, dar bugetul societatii este limitat, iar angajarea unei alte persoane este in afara oricarei discutii. Ati auzit despre „biroul fara hartii" care ar rezulta din intretinerea electronica a inregistrarilor, dar inca nu ati „simtit" nici un avantaj al acestuia, inregistrarile pentru fiecare membru sunt in format electronic dar, ironic, nu se afla intr-o forma care poate fi folosita cu usurinta in orice scop, mai putin generarea de hartii prin tiparirea catalogului membrilor!
Aceste scenarii variaza de la situatii care implica mari cantitati de informatii si pana la cazuri cu un volum de informatii relativ redus. Elementul comun este existenta unor operatii care pot fi efectuate manual, dar care pot fi executate mai eficient de catre un sistem de baze de date.
Care sunt avantajele concrete pe care trebuie sa le asteptati din utilizarea unui sistem de baze de date precum MySQL? Aceasta depinde de necesitatile si cerintele dumneavoas- i tra specifice, iar acestea sunt extrem de variate, asa cum s-a aratat in exemplele prece- j dente. Sa examinam un tip de situatie care survine frecvent si care astfel este destul de j reprezentativ pentru utilizarea bazelor de date.
Sistemele de gestiune a bazelor de date sunt frecvent utilizate pentru executarea unor ope¬ratii cum sunt cele pentru care se folosesc fisierele (nu cele electronice - N.T.). intr-adevar, o baza de date este un fisier de mari dimensiuni din anumite puncte de vedere, dar un fisier cu un sistem de fisare incorporat. Pastrarea prin metode electronice a inregistrarilor pre¬zinta cateva avantaje importante fata de pastrarea manuala a inregistrarilor. De exemplu, i daca lucrati intr-un birou in care sunt pastrate inregistrarile clientilor, iata cateva modali¬tati in care MySQL va poate ajuta:
• limp redus de fisare a inregistrarii. Nu trebuie sa cautati in sertarele fisierelor pentru a determina unde sa puneti o noua inregistrare, „inmanati" inregistrarea sistemului de fisare si ii permiteti sa plaseze inregistrarea la locul potrivit pentru dumneavoastra.
• Timp redus de regasire a inregistrarii. Cand cautati inregistrari, nu cautati personal in fiecare inregistrare pentru a le gasi pe cele care contin informatiile dorite. Sa pre¬supunem ca lucrati intr-un cabinet stomatologic. Daca doriti sa trimiteti instiintari tuturor pacientilor care nu s-au prezentat la control de mai mult timp, cereti sistemu¬lui de fisare sa gaseasca inregistrarile adecvate. Desigur, veti proceda altfel decat daca ati vorbi cu o alta persoana. Acesteia i-ati spune: „Fii amabil si afla care sunt pacientii care nu s-au prezentat la control in ultimele 6 luni." in fata unei baze de date, emiteti o incantatie bizara:
SELECT nume, prenume, ultima_vizita FROM pacient WHERE ultima_vizita<DATE_SUB(CURRENT_DATE, INTERVAL B MONTH) Aceasta expresie va poate intimida daca nu ati mai vazut-o niciodata, dar perspectiva de a obtine rezultate in cateva secunde, fara a mai cauta o ora incheiata, ar trebui sa fie atragatoare, (in orice caz, nu va ingrijorati. Balmajeala aia stranie nu va va mai parea ciu¬data pentru multa vreme. De fapt, veti intelege exact ce inseamna cand veti termina de citit acest capitol.)
• Ordine de regasire flexibila. Nu trebuie sa regasiti inregistrari in functie de ordinea fixa in care le stocati (in functie de numele de familie al pacientului, de exemplu). Puteti cere sistemului de fisare sa extraga inregistrari sortate in orice ordine preferati: dupa numele de familie, numele companiei de asigurari, data ultimei vizite si altele.
• Format flexibil al datelor de iesire. Dupa ce ati descoperit inregistrarile care va intere¬seaza, nu trebuie sa copiati informatiile manual. Puteti cere sistemului de fisare sa genereze automat o lista. Uneori doriti numai sa tipariti informatiile. Alteori, doriti sa le folositi intr-un alt program. (De exemplu, dupa ce generati lista cu pacientii intarzi¬ati la control, puteti insera aceasta informatie intr-un procesor de texte care tipareste note pe care le puteti trimite acestor pacienti.) Sau va intereseaza numai informatii de sumar, cum ar fi numarul inregistrarilor selectate. Nu trebuie sa le numarati personal; sistemul de fisare poate genera automat sumarul.
• Acces simultan la inregistrari pentru mai multi utilizatori. Cu inregistrarile tiparite, daca doua persoane doresc sa caute o inregistrare in acelasi timp, a doua per¬soana trebuie sa astepte ca prima sa puna inregistrarea inapoi. MySQL ofera posibili¬tatea accesului de catre mai multi utilizatori, astfel incat amandoi sa poata avea acces simultan la inregistrare.
• Acces de la distanta la inregistrari si transmiterea electronica a acestora, inregis¬trarile tiparite va impun sa va aflati in punctul de amplasare a acestora, sau trebuie ca o persoana sa execute copii ale inregistrarilor si sa vi le trimita, inregistrarile electro¬nice creeaza posibilitatea de acces de la distanta la inregistrari sau posibilitatea de transmitere electronica a acestora. Daca grupul dumneavoastra de medici stomatologi are asociati in filiale, acesti asociati pot avea acces la inregistrarile dumneavoastra de la sediile proprii. Nu trebuie sa le trimiteti copii prin curier. Daca o persoana care are nevoie de inregistrari nu dispune de acelasi tip de program de baze de date ca dum¬neavoastra, dar are un program de posta electronica, puteti selecta inregistrarile dorite si le puteti trimite continutul pe cale electronica.
Daca ati mai folosit sisteme de gestiune a bazelor de date, deja sunteti la curent cu avan¬tajele descrise anterior si probabil va ganditi sa depasiti etapa aplicatiilor uzuale de tip „inlocuire a fiselor pe hartie". Sistemele de baze de date sunt acum folosite pentru a oferi: servicii in moduri care nu erau posibile in trecutul apropiat. Modul in care multe insti¬tutii folosesc o baza de date in conjunctie cu un sit Web este un bun exemplu.
Sa presupunem ca firma dumneavoastra are o baza de date inventar care este folosita de personalul de la biroul de service atunci cand clientii suna sa afle daca aveti sau nu un articol in stoc, precum si pretul acestuia. Aceasta este o utilizare relativ traditionala a unei baze de date. Totusi, daca firma dumneavoastra alcatuieste un sit Web pentru a fi vizitat de clienti, puteti oferi un serviciu suplimentar, si anume o pagina de cautare care l permite clientilor sa determine pretul si prezenta in stoc a unui produs. Acest lucru ofera j clientilor informatiile pe care le doresc, iar modul in care le oferiti consta in cautarea automata a informatiilor de inventar stocate in baza de date, pentru a se gasi articolele in chestiune. Clientul obtine informatia imediat, fara a fi pus „in asteptare" si obligat sa asculte o muzica inregistrata agasanta si fara a fi obligat sa respecte orele de functionare a biroului de service. Fiecare client care foloseste situl dumneavoastra de Web inseamna un apel telefonic in minus de rezolvat de catre o persoana de la biroul de asistenta. (Poate ca astfel situl Web isi amortizeaza investitia.)
Puteti utiliza baza de date chiar mai bine. Cererile bazate pe Web de cautare in inventar pot furniza informatii nu numai clientilor, dar si dumneavoastra. Interogarile va arata ce anume cauta clientii, iar rezultatele interogarilor va arata daca sunteti sau nu in masura sa le satis-faceti cererile. Daca nu averi ceea ce cauta clientii, riscati sa pierdeti afacerea. Deci, este logic sa inregistrati informatii despre cautarile in inventar, si anume produsele cautate de clienti, respectiv daca le aveti sau nu in stoc. Apoi, puteti folosi aceste informatii pentru a va ajusta inventarul si pentru a asigura clientilor dumneavoastra servicii mai bune.
O alta aplicatie recenta pentru bazele de date este deservirea publicitatii pe mansete in paginile Web. Nici mie nu-mi plac aceste reclame mai mult decat dumneavoastra, dar nu e mai putin adevarat ca reprezinta o aplicatie populara pentru MySQL, care poate fi folosit pentru stocarea reclamelor si regasirea lor in vederea afisarii de catre un server Web. De asemenea, MySQL poate executa operatiile de evidenta a inregistrarilor asoci¬ate deseori acestei activitati, urmarind reclamele care au fost afisate, numarul de afisari, siturile care au obtinut accesul la acestea etc.
Deci, cum functioneaza MySQL? Cea mai buna modalitate de a afla este de a incerca personal, iar pentru aceasta vom avea nevoie de o baza de date de lucru.
O baza de date demonstrativa
Aceasta sectiune descrie baza de date demonstrativa pe care o vom folosi pe tot parcur¬sul volumului de fata. Va este oferita o sursa de exemple pe care le puteti incerca pe masura ce invatati sa utilizati MySQL. Vom extrage exemple mai ales din doua dintre situatiile prezentate anterior:
• Scenariul de organizare cu secretarul. Avem nevoie de ceva mai bine definit decat o „institutie", deci voi crea una cu urmatoarele caracteristici: este compusa din persoane care au in comun o afinitate pentru istoria Statelor Unite (denumita, in lipsa unui nume mai bun, Liga istorica americana). Membrii isi pastreaza aceasta calitate prin reinnoirea afilierii, platind o cotizatie. Cotizatiile sunt alocate cheltuielilor Ligii, cum ar fi publicarea unui buletin de stiri, denumit „Cronici ale trecutului SUA". De aseme¬nea, Liga dispune de un mic sit Web, dar acesta nu este foarte dezvoltat. Pana acum, situl a fost limitat la informatii elementare, legate de scopurile Ligii, identitatea per¬soanelor din conducere si modul de inscriere in organizatie.
• Scenariul de evidenta a rezultatelor scolare. Pe durata perioadei de notare, adminis¬trati chestionare si teste, inregistrati punctaje si dati note. Dupa aceea, determinati notele finale, pe care le predati secretariatului scolii alaturi de o situatie a prezentei elevilor.
Acum, sa examinam mai indeaproape aceste situatii din punctul de vedere a doua cerinte:
• Trebuie sa decideti ce anume doriti sa obtineti cu baza de date; cu alte cuvinte, scopu¬rile pe care doriti sa le atingeti.
• Trebuie sa determinati ce anume veti insera in baza de date; cu alte cuvinte, datele a caror evidenta doriti sa o pastrati.
Poate parea ciudat sa ne gandim la rezultatele unei baze de date inainte de a avea in vedere datele ce trebuie introduse in aceasta. La urma urmelor, trebuie sa introduceti date inainte de a le putea regasi. Dar modul de utilizare a unei baze de date este deter¬minat de scopurile dumneavoastra, iar acestea sunt asociate mai strans cu rezultatele bazei de date decat cu datele inserate in aceasta, in mod categoric nu doriti sa irositi timp si efort inserand informatii intr-o baza de date, decat daca intentionati sa le folositi intr-un anume scop in viitor.
Liga istorica americana
Situatia initiala a acestui scenariu este aceea ca dumneavoastra, ca secretar al Ligii, administrati lista cu membri folosind un document creat cu un procesor de texte. Aceasta situatie este adecvata pentru generarea unui catalog tiparit, dar reduce posibili¬tatile de utilizare a informatiilor in alte moduri. Aveti in vedere urmatoarele obiective:
• Doriti sa puteti produce date de iesire din catalog in diferite formate, folosind numai informatii adecvate aplicatiei. Un deziderat este posibilitatea de a genera catalogul tiparit in fiecare an - o cerinta din trecut a Ligii, pe care dumneavoastra intentionati sa continuati a o indeplini. Va puteti gandi si la alte utilizari pentru informatiile din catalog - de exemplu, de a furniza lista membrilor actuali pentru programul editat cu ocazia banchetului anual al Ligii. Aceste aplicatii implica diferite seturi de informatii. Catalogul tiparit foloseste intregul continut al intrarii corespunzatoare fiecarui mem¬bru. Pentru programul de la banchet, trebuie sa extrageri numai numele membrilor (operatie deloc usoara daca se foloseste un procesor de texte).
• Doriti sa cautati in catalog pe acei membri ale caror intrari satisfac diferite criterii. De exemplu, doriti sa stiti care sunt membrii care trebuie sa-si plateasca in curand cotiza¬tia. O alta aplicatie care necesita cautari apare din lista de cuvinte cheie aferenta fiecarui membru (de exemplu Razboiul de Secesiune, criza din Wall Street, drepturile civile sau viata lui Thomas Jefferson). Uneori, unii membri va cer o lista a altor membri cu interese similare cu ale lor, iar dumneavoastra doriti sa puteti satisface aceste cereri.
• Doriti sa plasati catalogul pe Internet, in situl Web al Ligii, ceea ce ar fi avantajos atat pentru membrii Ligii, cat si pentru dumneavoastra. Daca puteti converti catalogul in pagini Web printr-un proces oarecare cu un grad adecvat de automatizare, o versiune on-line a catalogului poate fi mentinuta „la zi" intr-o maniera mai oportuna decat ver¬siunea tiparita. Iar daca in acest catalog electronic se pot efectua cautari, membrii pot cauta personal informatii, cu usurinta. De exemplu, un membru care doreste sa stie care sunt membrii interesati de Razboiul de Secesiune poate afla aceasta informatie fara a fi nevoit sa va astepte sa efectuati cautarea, iar dumneavoastra nu veti mai avea nevoie sa gasiti timp pentru a efectua personal cautarea.
Sunt perfect constient de faptul ca o baza de date nu este cel mai interesant lucru din lume, deci n-am de gand sa fac cine stie ce afirmatii trasnite, cum ca o baza de date sti¬muleaza gandirea creatoare. Totusi, daca incetati sa asimilati informatiile ca fiind o enti¬tate cu care trebuie sa luptati (asa cum faceti cu documentul dumneavoastra creat cu procesorul de texte) si incepeti sa le asimilati cu o entitate pe care o puteti manipula rela¬tiv usor (asa cum sperati sa procedati cu SQL), acest lucru va avea un efect eliberator asupra capacitatii dumneavoastra de a veni cu noi modalitati de a folosi sau de a prezen¬ta acele informatii:
• Daca informatiile din baza de date pot fi mutate in situl Web sub forma unui catalog electronic, puteti face ca informatiile sa se „scurga" si in sens invers. De exemplu, daca membrii isi pot edita propriile rubrici on-line pentru a actualiza baza de date, nu mai este necesar sa efectuati personal toate modificarile si astfel s-ar contribui la sporirea acuratetei informatiilor din catalog.
• Daca ati stocat adrese de e-mail in baza de date, le puteti folosi pentru a trimite mesaje e-mail membrilor care nu si-au mai actualizat rubricile in ultimul timp. Mesajele pot indica membrilor continutul curent al rubricii lor, le pot cere sa-1 reinnoiasca si pot indica modalitatea de efectuare a diferitelor modificari, folosind facilitatile furnizate pe situl Web.
• O baza de date poate contribui la sporirea utilitatii unui sit Web in moduri care nu au nici cea mai mica legatura cu lista membrilor. Liga publica un buletin de stiri, „Cronici ale trecutului SUA", care are in fiecare numar o sectiune dedicata copiilor, ce contine un chestionar pe teme istorice. Unele dintre numerele recente s-au concentrat asupra unor date biografice ale presedintilor americani. Situl Web poate include de asemene; o sectiune pentru copii, unde chestionarele sunt puse on-line. Aceasta sectiune poa capata, eventual, un caracter interactiv, prin inserarea in baza de date a informatiilo care au stat la baza chestionarelor si determinand serverul Web sa interogheze baza de date in cautarea unor intrebari care vor fi prezentate aleator.
Bun! in acest moment, numarul de utilizari pentru baza de date la care v-ati gandit vz poate duce la concluzia ca v-ati cam lasat dus de val. Dupa o scurta pauza pentru a reveni din nou pe Pamant, incepeti sa va puneti unele intrebari practice:
• Nu e putin cam prea ambitios? Nu e cam multa munca pentru toate astea? Orice pars mai usor atunci cand doar va ganditi si nu puneti in practica, desigur, iar eu nu ma voi preface spunand ca toate acestea sunt banal de implementat. Totusi, la finele acestei carti veti fi realizat deja tot ce am amintit anterior. Retineti un singur lucru: nu esti necesar sa faceti totul deodata. Vom imparti sarcina in componente si vom aborda fiecare componenta in parte.
• Poate face MySQL toate astea? Nu, nu poate. De exemplu, MySQL nu dispune de caracteristici directe pentru interactiunea cu Web-ul. Totusi, chiar daca MySQL nu poate face singur tot ceea ce am discutat, exista alte instrumente care pot colabora cu MySQL pentru a-i completa si extinde posibilitatile.
Vom folosi limbajul de scripting Perl si modulul Perl DBI (interfata cu bazele de date) pentru a scrie scripturi care obtin acces la bazele de date MySQL. Perl dispune de excelente posibilitati de prelucrare a textelor, care permit manipularea rezultatelor unei interogari intr-o maniera extrem de flexibila, pentru a obtine date de iesire intr-o varietate de formate. De exemplu, putem folosi Perl pentru a genera catalogul in for¬mat Rich Text Format (RTF), un format care poate fi citit de catre toate categoriile de procesoare de texte.
De asemenea vom folosi PHP, un alt limbaj de scripting. PHP este adaptat pentru scrierea aplicatiilor Web si lucreaza cu bazele de date. Acesta va permite sa rulati interogari MySQL direct din paginile Web si sa generati pagini noi, care includ rezul¬tatele interogarilor bazelor de date. PHP colaboreaza bine cu Apache (cel mai popu¬lar server Web din lume), simplificand efectuarea unor operatii precum prezentarea unui formular de cautare si afisarea rezultatelor cautarii.
MySQL se integreaza bine cu aceste instrumente si va ofera flexibilitatea de a le com¬bina in functie de preferintele dumneavoastra, optand pentru realizarea scopurilor scontate.
Nu sunteti obligat sa folositi componentele unui singur set de programe cu posibilitati de integrare clamate pe toate tonurile, dar care nu pot functiona bine decat unele cu altele.
• In final, marea intrebare: cat vor costa toate acestea? La urma urmelor, Liga are un buget limitat. S-ar putea sa va surprinda, dar probabil ca nu va costa nimic. Daca sun¬teti un cunoscator al sistemelor de baze de date, atunci stiti ca sunt destul de costisi¬toare. Prin contrast, MySQL este de regula gratuit. Exista unele situatii cand aveti nevoie de o licenta, dar aceasta costa numai 200 de dolari pentru un numar nelimitat de utilizatori. (Vezi prefata pentru indrumari generale privind licenta, precum si ma¬nualul de referinta MySQL pentru detalii concrete.) Celelalte instrumente pe care le vom folosi (Perl, DBI, PHP, Apache) sunt gratuite deci, daca tinem cont de toate aspectele, puteti alcatui un sistem util fara nici o cheltuiala.
Alegerea sistemului de operare pentru dezvoltarea bazei de date va apartine. Toate pro¬gramele pe care le vom discuta ruleaza sub UNIX, iar majoritatea lor ruleaza sub Windows. Eu va recomand sa folositi MySQL si celelalte instrumente sub UNIX. Toate instrumentele isi au originea in UNIX si de acolo au fost portate ulterior spre Windows, Hind desfasurate mai frecvent in UNIX decat in Windows. Aceasta inseamna ca versiu¬nile Windows au avut o perioada de maturizare mai scurta si ca nu au fost testate si uti¬lizate atat de aprofundat ca versiunile sub UNIX.
Acum, sa abordam si cealalta situatie pentru care vom folosi baza de date demonstrativa.
Proiectul de evidenta a rezultatelor scolare
Scenariul initial in acest caz este acela ca, in calitate de profesor, aveti si responsabilitat legate de evidenta rezultatelor scolare. Doriti sa convertiti procesul de calcul al noteloi de la o operatie manuala (folosind un catalog scolar) la o reprezentare electronica folosind MySQL, in acest caz, rezultatele pe care doriti sa le obtineti cu baza de dat< sunt implicite, prin modul in care folositi catalogul in prezent:
• Pentru fiecare chestionar sau test, inregistrati punctajele. Pentru teste, puneti puncta jele in ordine, astfel incat sa le puteti examina si determina ajustarile pentru fiecan nota literala (A, B, C, D, E si F).
• La finalul perioadei de notare, calculati punctajul total al fiecarui elev, apoi sortati rezultatele totale si determinati notele in functie de acestea. Rezultatele totale pot necesita calcule cu ponderi, deoarece doriti sa acordati testelor o importanta mai mare decat chestionarelor.
• La sfarsitul perioadei de notare, furnizati secretariatului scolii informatii despre pre zenta elevilor la curs.
Obiectivele sunt de a evita sortarea manuala si totalizarea manuala a punctajelor si a evi dentelor privind prezenta. Cu alte cuvinte, doriti ca MySQL sa sorteze punctajele si s; efectueze calculele necesare pentru a determina punctajul total al fiecarui elev si numarul de absente la incheierea perioadei de notare. Pentru a realiza aceste deziderate, veti ave nevoie de lista elevilor din clasa, de punctajele pentru fiecare chestionar si test, precum si datele la care elevul a lipsit.
Cum se poate aplica baza de date demonstrativa in cazul dumneavoastra
Daca nu va intereseaza in mod deosebit Liga istorica sau evidenta rezultatelor scolare va puteti intreba ce legatura au toate acestea cu dumneavoastra. Raspunsul este ca aces¬te scenarii-exemplu nu sunt un scop in sine. Acestea nu fac decat sa furnizeze un vehicu prin care sa se poata ilustra operatiile posibile cu MySQL si cu instrumentele asociat acestuia.
Cu putina imaginatie, veti vedea cum exemplele de interogari ale bazelor de date s aplica problemelor specifice pe care doriti sa le rezolvati. Sa presupunem ca lucrati i acel cabinet stomatologic de care am vorbit anterior. Nu veti vedea in aceasta carte pre multe interogari din domeniul stomatologic, dar veti observa ca multe dintre interogar se pot aplica propriilor dumneavoastra interese. De exemplu, determinarea acelor mem bri ai Ligii istorice care trebuie sa-si achite in curand cotizatiile este similara cu deter^ minarea pacientilor care n-au mai trecut de mult pe la dentist. Ambele sunt interogar bazate pe date deci, o data ce ati invatat sa scrieti interogarea de determinare a perj soanelor ce au de platit cotizatia, o puteti aplica pentru a scrie interogarea de depistare a pacientilor „delincventi", care va intereseaza mai mult.
O terminologie esentiala a bazelor de date
Poate ati observat ca ati citit deja mai multe pagini dintr-o carte despre baze de date si inca nu ati dat peste terminologia si jargonul de specialitate. De fapt, inca nu am spus nimic despre modul in care arata efectiv o „baza de date", chiar daca avem o idee bruta cu privire la modul in care va fi folosita baza noastra de date demonstrativa. Totusi, sun¬tem pe cale sa proiectam acea baza de date, dupa care vom incepe sa o implementam, deci nu mai putem evita terminologia. Acesta este si scopul sectiunii de fata: sa descrie unii termeni care apar pe parcursul cartii, pentru ca dumneavoastra sa-i cunoasteti. Din fericire, multe concepte legate de bazele de date relationale sunt, in realitate, foarte sim¬ple. De fapt, o buna parte din atractivitatea bazelor de date provine din simplitatea con¬ceptelor lor fundamentale.
Terminologie structurala
in lumea bazelor de date, MySQL este clasificat ca sistem de gestiune a bazelor de date relationale (SGBDR). Aceasta expresie poate fi divizata dupa cum urmeaza:
• Baza de date (literele BD din abrevierea SGBDR) constituie depozitul pentru infor¬matiile pe care doriti sa le stocati, structurat intr-un mod simplu, obisnuit:
• Colectia de date dintr-o baza de date este organizata in tabele.
• Fiecare tabel este organizat in randuri si coloane.
• Fiecare rand dintr-un tabel este considerat o inregistrare.
• inregistrarile pot contine mai multe componente de informatie; fiecare coloana dintr-un tabel corespunde uneia din aceste componente.
• Sistemul de gestiune (literele SG) este programul care va permite sa va folositi datele prin inserarea, regasirea, modificarea sau stergerea inregistrarilor.
• Cuvantul „relational" (initiala R) indica un anumit tip de SGBD, adica unul care se pricepe foarte bine la relationarea (in speta coroborarea) informatiilor stocate intr-un tabel cu informatiile stocate intr-un alt tabel, prin cautarea elementelor comune din fiecare tabel. Puterea unui SGBD relational consta in capacitatea sa de a extrage in mod convenabil date din aceste tabele si de a combina informatii din tabele corelate pentru a genera raspunsuri la intrebari la care nu se poate raspunde numai pe baza tabelelor individuale.
Iata un exemplu care prezinta modul in care o baza de date relationala organizeaza datele in tabele si coreleaza informatiile dintr-un tabel cu un alt tabel. Sa presupunem ca administrati un sit Web care include un serviciu de publicitate pe mansete. Stabiliti con¬tracte cu companiile care doresc ca reclamele lor sa fie afisate atunci cand sunt vizitate paginile din situl dumneavoastra. De fiecare data cand un vizitator deschide una din paginile dumneavoastra, furnizati reclama inglobata in pagina browserului vizitatorului si percepeti companiei o mica taxa. Pentru a reprezenta aceste informatii, folositi trei tabele (vezi figura 1.1). Un tabel, company (companie) are coloane pentru numele com-paniei, numarul, adresa si numarul de telefon. Un alt tabel, ad (reclama), prezinta nume¬rele reclamelor, numarul companiei care „detine" reclama si tariful pe care il percepeti pentru fiecare deschidere a paginii. Cel de-al treilea tabel, hits (reusite) contine evident citirii reclamelor in functie de numarul reclamei si de data la care a fost furnizata reclam company table companyjiame companyjium add ress phone
Big deal, Ltd. Pickles, Inc. Real Roofing Co. GigaFred & Son 13
C5>
17 23 14 Gram -i 59Cucu 928 Shir 2572 Fa i Blvd. 875-2934 mber Dr. 884-2472 tgles Rd. 882-4173 milyAve. 847-4738 ad table

conpany_nun ad HUB hitjee




14 23 17 13 23 23 23 13 23 14 13 17 diD>— i
49 52 55 62 63 64 77 99
Cjoj>i
102 119 0.01 0.02 0.01 0.03 0.02 0.01 0.02 0.03 0.03 0.01 0.01 0.02







hit table

ad_nun date

49 55 48 63 101 62 119 102 52 July 13 July 13 July 14 July 14 July 14 July 14 July 14 July 14 July 14 July 14 July 14 July 14 July 14 July 14 July 15 July 15 July 15 July 15









64 119 48


mi


63 49 77 99


Figura 1.1 Tabele pentru evidenta reclamelor pe mansete.
Din aceste informatii, se poate raspunde la unele intrebari folosind un singur tab« Pentru a determina numarul de companii cu care aveti contracte, trebuie numai numarati randurile din tabelul company. Similar, pentru a determina numarul de reusi (citiri) intr-o anumita perioada de timp, este necesara numai examinarea tabelului Alte intrebari sunt mai complexe si este necesara consultarea mai multor tabele peni a determina raspunsurile. De exemplu, pentru a determina de cate ori a fost servii fiecare reclama a companiei Pickles, Inc. pe data de 14 iulie, veti folosi toate cele t: tabele, dupa cum urmeaza:
1. Cautati numele companiei (Pickles, Inc.) in tabelul company pentru a determina numarul companiei.
2. Folositi numarul companiei pentru a descoperi inregistrarile corespunzatoare in tabelul ad pentru a determina numerele asociate ale reclamelor. Exista doua asemenea reclame, in speta 48 si 101.
3. Pentru fiecare dintre inregistrarile echivalente din tabelul ad, folositi numarul recla¬mei din inregistrare pentru a descoperi inregistrarile corespunzatoare din tabelul hit care se incadreaza la data respectiva, dupa care numarati echivalentele. Exista trei echivalente pentru reclama 48 si doua echivalente pentru reclama 101.
Pare complicat, dar acesta este chiar domeniul in care exceleaza sistemele de baze de date relationale. Complexitatea este de fapt oarecum iluzorie, deoarece fiecare din etapele des¬crise anterior reprezinta ceva mai mult decat o simpla operatie de echivalare: stabiliti o corelatie intre un tabel si alt tabel prin echivalente intre valorile din randurile unui tabel cu valorile din randurile unui alt tabel. Aceeasi operatie simpla poate fi exploatata in diferite moduri, pentru a se raspunde la toate categoriile de intrebari: Cate reclame diferite are fiecare companie? Care este compania cu reclamele cele mai populare? Care este venitul pe care il aduce fiecare reclama? Care este onorariul total ce trebuie platit de fiecare companie pentru perioada de tarifare curenta?
Acum stiti suficienta teorie privind bazele de date relationale pentru a intelege restul cartii, motiv pentru care nu trebuie sa vorbim despre a treia forma normala, diagrame entitate-relatie si alte chestii de acest gen. Daca chiar doriti sa aflati detalii despre aceste lucruri, este excelent, dar ati gresit cartea. Va propun sa incepeti prin a consulta autori ca C.J. Date sau E.F. Codd.
Terminologia limbajului de interogare
Pentru a comunica cu MySQL, folositi un limbaj denumit SQL (Structured Query Language - limbaj de interogare structurat). SQL este in prezent limbajul standard pen¬tru baze de date si este acceptat de toate sistemele importante de baze de date. SQL include numeroase categorii diferite de instructiuni, toate fiind concepute pentru a va permite sa interactionati cu baza dumneavoastra de date in moduri interesante si utile.
Ca orice alt limbaj, SQL poate parea ciudat atunci cand il invatati pentru prima data. De exemplu, pentru a crea un tabel, trebuie sa indicati sistemului MySQL care va fi struc¬tura tabelului. Dumneavoastra si cu mine ne gandim la un tabel ca la o diagrama sau o imagine, dar MySQL nu, deci veti crea tabelul indicand sistemului MySQL ceva de genul acesta:
CREATE TABLE companie ( nume_companie CHAR(30), nr_companie INT, adresa CHAR(30), telefon CHAR(12)
Daca sunteti incepator in domeniul SQL, instructiuni ca acestea pot parea oarecun impunatoare, dar nu trebuie sa fiti programator pentru a invata sa folositi SQL in mo< eficient. Pe masura ce va familiarizati cu limbajul, veti privi instructiunea CREATE TABLI intr-o alta lumina - ca pe un aliat care va ajuta sa va descrieti informatiile, nu ca pe < balmajeala ciudata.
Terminologia folosita in arhitectura sistemului MySQL
Cand folositi MySQL, in realitate utilizati doua programe, deoarece MySQL opereaz folosind o arhitectura client/server:
• Serverul de baze de date este un program localizat in calculatorul unde sunt stocati datele dumneavoastra. Acesta asculta cererile clientilor care sosesc prin retea si obtin< acces la continutul bazei de date in functie de aceste cereri, pentru a furniza clientilo informatiile pe care le solicita.
• Clientii sunt programe care se conecteaza la serverul de baze de date si emit interogari pentru a-i indica acestuia informatiile pe care le doresc.
Distributia MySQL include serverul si numeroase programe client. Clientii sunt utilizat in functie de scopurile urmarite. Cel mai folosit program este mysql, un client interacth care va permite sa emiteti interogari si sa vedeti rezultatele. Alti clienti sunt mysqldump s mysqlimport, care trimit continutul tabelelor intr-un fisier si invers, respectiv mysqladmin care va permite sa verificati starea serverului si executa operatii administrative, cum ar : solicitarea de oprire a serverului. Daca aveti aplicatii pentru care utilizarea clientilor stan¬dard nu este adecvata, MySQL mai furnizeaza o biblioteca de programare a clientilor, ast fel incat dumneavoastra sa va puteri scrie propriile programe. Biblioteca este utilizabil direct din programele C, dupa cum exista si numeroase alte interfete, daca preferati limbaj decat C.
Arhitectura client/server din MySQL are anumite avantaje:
• Serverul asigura controlul concurentei, pentru ca doi utilizatori sa nu poata mo difica aceeasi inregistrare simultan. Toate cererile clientilor trec prin server, dec serverul determina clientul care executa cutare operatie si cand o executa. Daca ma multi clienti doresc simultan accesul la acelasi tabel, ei nu sunt obligati sa se gaseasc si sa negocieze unii cu altii. Ei isi trimit cererile la server si il lasa pe acesta sa se ocup de determinarea ordinii in care vor fi onorate cererile.
• Nu trebuie sa deschideti sesiunea de lucru la calculatorul unde este conectata baz dumneavoastra de date. MySQL „stie" sa lucreze prin Internet, deci puteti rula u program client de oriunde va aflati, iar clientul se poate conecta la server prin retea Distanta nu conteaza; puteti obtine acces la server din orice parte a lumii. Dac serverul se afla pe un calculator din Australia, va puteti lua calculatorul laptop intr-calatorie in Islanda si tot puteti obtine acces la baza dumneavoastra de date.
Aceasta inseamna oare ca oricine poate avea acces la datele dumneavoastra, prin Internet Nu. MySQL include un sistem flexibil de securitate, deci puteti permite accesul numi persoanelor indrituite sa beneficieze de el. De asemenea, va puteti asigura ca aceste per soane pot face numai ceea ce trebuie sa faca. Poate ca Sally de la biroul de facturare tre buie sa poata citi si actualiza (modifica) inregistrarile, in timp ce Phil de la biroul de ser vice trebuie sa poata numai sa citeasca inregistrarile. Le puteti stabili privilegiile in con¬secinta. Daca doriti sa rulati un sistem autonom, pur si simplu stabiliti privilegiile de acces astfel incat clientii sa se poata conecta numai de la gazda pe care ruleaza serverul.

Un manual MySQL
Acum, aveti toate cunostintele necesare; este momentul sa puneti MySQL la lucru!
Aceasta sectiune va va ajuta sa va familiarizati cu MySQL, propunandu-va un manual pe care sa-1 incercati. In timp ce parcurgeti manualul, veti crea o baza de date demon¬strativa si tabelele care o compun, apoi veti interactiona cu baza de date prin adaugarea, regasirea, stergerea si modificarea informatiilor, in plus, pe durata lucrului cu baza de date demonstrativa, veti invata urmatoarele aspecte:
• Cum sa comunicati cu un server MySQL folosind programul client mysql.
• Elementele fundamentale ale limbajului SQL pe care MySQL le intelege, (in cazul in care cunoasteti deja SQL din utilizarea unui alt SGBDR, este o idee buna sa parcurgeti rapid acest manual, pentru a vedea daca versiunea SQL a sistemului MySQL difera de versiunea pe care o cunoasteti.)
Asa cum s-a aratat in sectiunea anterioara, MySQL opereaza folosind o arhitectura client/server, in cadrul careia serverul ruleaza pe calculatorul care contine bazele de date, iar clientii se conecteaza la server printr-o retea. Acest manual se bazeaza in cea mai mare parte pe utilizarea programului client mysql. Clientul citeste interogarile SQL emise de dumneavoastra, le trimite serverului pentru a fi executate si afiseaza rezultatele, pentru ca dumneavoastra sa puteti vedea ce s-a intamplat, mysql ruleaza pe toate plat¬formele acceptate de MySQL si constituie metoda cea mai directa de a interactiona cu serverul, deci este logic sa incepem cu acest client.
Pe parcursul acestei carti, vom folosi samp_db ca nume al bazei noastre de date demon¬strative. Uneori, va fi necesar sa folositi un alt nume pentru baza de date in timp ce par¬curgeti exemplele. Poate ca alta persoana din sistemul dumneavoastra foloseste deja numele samp_db sau poate ca administratorul v-a repartizat un alt nume pentru baza de date. In ambele cazuri, inlocuiti samp_db cu numele real al bazei dumneavoastra de date ori de cate ori vedeti primul nume in exemple.
Numele tabelelor pot fi folosite exact asa cum apar in exemple, chiar daca mai multe per¬soane din sistemul dumneavoastra isi au propriile lor baze de date demonstrative, in MySQL, nu conteaza daca o alta persoana foloseste aceleasi nume de tabele. Atata timp cat fiecare din dumneavoastra isi are propria sa baza de date, MySQL va pastra numele nealterate si va impiedica interferentele intre utilizatori.
Cerinte preliminare
Pentru a incerca exemplele din acest manual, este necesar ca MySQL sa fie instalat, in particular, trebuie sa aveti acces la clientii MySQL si la un server MySQL oarecare. Programele client trebuie sa fie instalate in calculatorul dumneavoastra. Veti avea nevoie cel putin de mysql, iar mysqlimport este de asemenea util. Serverul se poate afla in calculatorul dumneavoastra, desi acest lucru nu este necesar. Daca aveti permisiunea sa v conectati la server, acesta poate fi amplasat oriunde.
Daca se intampla ca serverul sa ruleze pe calculatorul dumneavoastra, programele clier sunt probabil de asemenea instalate, iar dumneavoastra sunteti pregatit. Daca trebuie s va procurati MySQL, vezi Anexa A, „Obtinerea si instalarea programelor", pentr instructiuni. Fie consultati capitolul respectiv (daca instalati personal MySQL), fie ari tati-1 administratorului dumneavoastra de sistem. Daca accesul dumneavoastra la ret« are loc prin intermediul unui furnizor de servicii Internet (ISP), verificati daca furn zorul dumneavoastra dispune sau nu de MySQL. Daca furnizorul dumneavoastra n ofera serviciul MySQL si nu este dispus sa-1 instaleze, consultati Anexa J, „Furnizori c servicii Internet", pentru sfaturi cu privire la alegerea unui furnizor mai adecvat.
in afara programului MySQL, aveti nevoie de permisiunea de a crea baza de dat demonstrativa si tabelele sale. Daca nu aveti permisiunea, cereti-o administratorul! dumneavoastra MySQL. Administratorul va poate acorda aceasta permisiune rulan clientul mysql si emitand comenzi ca acestea:
GRANT ALL ON samp_db.* TO paul@localhost IDENTIFIED BY "secret" GRANT ALL ON samp_db.* TO paul@% IDENTIFIED BY "secret"
I Diferenta intre MySQL si mysql Pentru a evita confuziile, trebuie sa precizam ca "MySQL" se refera la intregul SGBDR MySQL, "mysql" este numele unui anumit program client. Cele doua se pronunta la fel, dar le vom deosebi pr diferentele determinate prin majuscule si tipurile de litera.
Prima comanda ofera utilizatorului paul un acces complet la baza de date samp_db si toate tabelele acesteia, atunci cand paul se conecteaza de la calculatorul localhost (aceea gazda pe care ruleaza serverul). De asemenea, atribuie parola secret. A doua comanda est similara, dar permite lui paul sa se conecteze de la orice gazda (% este un caracter c inlocuire). De asemenea, puteti inlocui % cu un anumit nume de gazda, pentru a permi lui paul sa se conecteze chiar de la gazda respectiva. (O atare instructiune GRANT poate necesara daca serverul dumneavoastra permite acces anonim de la localhost, datori modului in care serverul cauta in tabelele de acordare echivalente cu conexiunile < intrare.) Mai multe informatii despre instructiunea GRANT si despre configurarea conturil< de utilizator MySQL pot fi gasite in capitolul 11, „Administrarea generala a sistemul MySQL".
Obtinerea distributiei bazei de date demonstrative
Acest manual face referire, in anumite situatii, la fisiere din „distributia bazei de da demonstrative". Acestea sunt fisiere care contin interogari sau date care va vor ajuta configurati baza de date demonstrativa. Pentru a va procura aceasta distributie, ve" Anexa A. Cand despachetati distributia, aceasta va crea un catalog denumit samp_c care contine fisierele de care aveti nevoie. Va sugerez sa comutati in catalogul respect ori de cate ori incercati exemple referitoare la baza de date demonstrativa.
Stabilirea si intreruperea conexiunilor cu serverul
Pentru a va conecta la serverul dumneavoastra, invocati programul mysql din interpre-torul dumneavoastra (adica de la promptul UNIX sau de la o consola DOS sub Windows). Comanda arata astfel:
% mysql optiuni
Am folosit caracterul % in carte pentru a indica promptul interpretorului. Acesta este unul din prompturile UNIX standard; un altul este $. In Windows, promptul este ceva degenulC:\>.
Partea optiuni a liniei de comanda mysql poate fi vida, dar cel mai probabil va trebui sa emiteti o comanda ca urmatoarea:
% mysql -h nume_gazda -u nume_utilizator -p
Este posibil sa nu fie necesar sa specificati toate aceste optiuni cand invocati mysql; apelati la administratorul MySQL pentru a afla sintaxa exacta a comenzii pe care trebuie sa o folositi. Probabil ca va trebui sa specificati cel putin un nume si o parola.
Cand sunteti la primii pasi in invatarea sistemului MySQL, probabil ca sistemul sau de securitate vi se va parea agasant, deoarece ingreuneaza efectuarea operatiilor dorite. (Trebuie sa obtineti permisiunea de a crea si de a obtine acces la o baza de date si trebuie sa va specificati numele si parola de fiecare data cand va conectati la server.) Totusi, dupa ce veti trece dincolo de baza de date demonstrativa si veti introduce si folosi propriile dumneavoastra inregistrari, perspectiva dumneavoastra se va schimba radical. Apoi, veti aprecia faptul ca MySQL impiedica alte persoane sa va spioneze (sau, mai rau, chiar sa va distruga!) datele.
Iata care este semnificatia optiunilor:
• -h nume_gazda (forma alternativa: --host=nume_gazc/a)
Gazda serverului la care doriti sa va conectati. Daca serverul ruleaza pe acelasi calcu¬lator pe care utilizati mysql, in mod normal aceasta optiune poate fi omisa. •-u nume_utilizator (forma alternativa:--user=nume_i/tiJizator)
Numele dumneavoastra de utilizator MySQL. Daca folositi UNIX si numele dum¬neavoastra de utilizator MySQL este acelasi ca numele dumneavoastra de deschidere a sesiunii de lucru, puteti omite aceasta optiune; mysql va folosi numele de deschidere a sesiunii de lucru ca nume MySQL.
Sub Windows, numele de utilizator prestabilit este ODBC, ceea ce nu este foarte util. Fie specificati un nume in linia de comanda, fie stabiliti un nume prestabilit in mediul dumneavoastra prin configurarea variabilei USER. De exemplu, pot folosi urmatoarea comanda set pentru a specifica numele de utilizator paul: set USER=paul
* -p (forma alternativa: --password)
Aceasta optiune indica programului mysql sa va solicite parola dumneavoastra MySQL. Nota: va puteti insera parola in linia de comanda tastand-o sub forma -pparola_dvs (forma alternativa: - -parola=parola_c/vs). Totusi, din motive de securitate, cel mai bine este sa nu procedati astfel. Daca specificati optiunea - p fara nici o parola, indicati prd gramului mysql sa va solicite o parola la deschidere. De exemplu:
% mysql -h num<3_gazela -u nume_utilizator -p
Enter password:
Cand vedeti mesajul Enter password: (introduceti parola), tastati parola dumnea voastra. (Parola nu va fi reflectata pe ecran, in caz ca va spioneaza careva.) Retineti c parola dumneavoastra MySQL nu este obligatoriu aceeasi ca parola UNIX sa Windows.
Daca omiteti optiunea -p in totalitate, mysql presupune ca nu aveti nevoie de ea si n o solicita.
Nota: Optiunile * h si -u sunt asociate cuvintelor care urmeaza dupa acestea, indiferen daca intre optiune si cuvantul urmator exista sau nu un spatiu. Acest lucru nu este va labil pentru optiunea -p. Daca specificati parola in linia de comanda, nu trebuie s existe nici un spatiu intre -p si parola.
De exemplu, sa presupunem ca numele meu de utilizator MySQL si parola mea sur respectiv paul si secret, si ca doresc sa ma conectez la serverul care ruleaza pe acelasi cal culator la care am deschis sesiunea de lucru. Comanda mysql pentru aceasta operatie est<
% mysql -u paul -p
Enter password: ****** Dupa ce am introdus comanda, mysql afiseaza textul Enter password: pentru a-mi cer parola, iar eu o tastez (sirul ****** arata locul unde am scris secret).
Daca totul merge bine, mysql afiseaza un mesaj de salut si un prompt mysql> prin car imi arata ca asteapta sa scriu comenzi. Secventa de pornire completa se prezinta astfel:
% mysql -u paul -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g. ;
Your MySQL connection id is 1805 to server version: 3.22.25-log
Type 'help' for help. mysql>
Pentru a ma conecta la un server care ruleaza pe un alt calculator, trebuie sa specific nume! gazdei folosind optiunea -h. Daca gazda respectiva are numele pit-viper, snake, ne comanda arata astfel:
% «ysql -h pit-viper„snake.net -u paul -p in majoritatea exemplelor care urmeaza si care prezinta o linie de comanda mysql, vc omite optiunile -h, -u si -p, din motive de concizie. Se presupune ca veti introduc optiunile necesare.
Exista modalitati de a va configura contul astfel incat sa nu fie necesar sa tastati parametr de conexiune de fiecare data cand rulati mysql. Acest lucru este discutat in sectiunea „Sugest pentru interactiunea cu mysql". Puteti trece chiar acum la sectiunea respectiva, pentru a v face o idee cu privire la unele din posibilitatile de a simplifica conectarea la server.
Dupa ce stabiliti o conexiune cu serverul, puteti incheia sesiunea oricand tastand QUIT: mysql> QUIT
Bye De asemenea, puteti termina sesiunea tastand Control-D, cel putin in UNIX.
Emiterea de interogari
Dupa ce v-ati conectat la server, sunteti gata de a emite interogari. Aceasta sectiune descrie unele aspecte generale pe care trebuie sa le cunoasteti despre interactiunea cu mysql.
Pentru a introduce o interogare in mysql, pur si simplu tastati-o. La sfarsitul interogarii, tastati un caracter punct si virgula (;) si apasati pe tasta Enter. Caracterul punct si virgula indica programului mysql ca interogarea este completa. (De asemenea, puteti folosi \g pentru terminarea interogarilor, daca preferati sa scrieti doua caractere in loc de unul.)
Dupa ce ati introdus o interogare, mysql o trimite serverului pentru a fi executata. Serverul prelucreaza interogarea si trimite rezultatele inapoi programului mysql, care afiseaza rezultatul pentru dumneavoastra.
Iata un exemplu de interogare simpla si rezultatul acesteia: mysql> SELECT NOWQ
NOW(i
1999-07-24 11:02:36
1 row in set (0.00 sec)
Aceasta comanda indica data si ora curenta. (Functia NOW() nu este utila ca atare, dar se poate folosi in expresii - de exemplu, pentru a calcula diferenta dintre data curenta si o alta data.)
De asemenea, mysql afiseaza numarul randurilor rezultatului. De regula, nu voi prezenta acest numar in cadrul exemplelor.
Deoarece mysql asteapta caracterul punct si virgula inainte de a trimite interogarea serverului, nu trebuie sa introduceti toata interogarea pe un singur rand. Puteti extinde o interogare pe mai multe linii, daca doriti: mysql> SELECT NOW(), -> USER(), -> VERSION()
NOW()
:USER()
• VERSIONA)
1999-07-24 11:06:16 jpauieiocalhosti 3.23.1 -alpha-log
Observati modul in care promptul se modifica din mysql in dupa ce ati introdus prima linie a interogarii; acest lucru va arata ca mysql crede ca inca mai introduceti interogarea. A-ceasta este o reactie importanta, deoarece, daca uitati sa plasati caracterul punct si vir¬gula la sfarsitul unei interogari, promptul va ajuta sa sesizati ca mysql continua sa astepte ceva. in caz contrar, dumneavoastra veti astepta, intrebandu-va de ce o avea nevoie MySQL de atata timp pentru a va executa interogarea, iar mysql va astepta la randul lui, mtrebandu-se de ce aveti nevoie de atata timp pentru a termina de introdus interogarea!
in majoritatea cazurilor, nu are importanta daca introduceti interogarile folosind majusi cule, minuscule sau litere de diferite marimi. Toate aceste interogari sunt echivalente:
SELECT USER() select user()
Select UsEr()
Exemplele din aceasta carte folosesc majuscule pentru cuvintele cheie si numele d functii din SQL, respectiv minuscule pentru nume de baze de date, tabele si coloane.
Cand invocati o functie intr-o interogare, nu trebuie sa existe spatii intre numele functie si paranteza care urmeaza dupa acesta: mysql> SELECT NOW();
NOW ()
1999-07-17 12:44:52 mysql> SELECT NOW ();
ERROR 1064: You have an error in your SQL syntax near '()' at line 1 (Aveti o eroare in sintaxa SQL langa '()' pe linia 1)
Cele doua interogari par similare, dar a doua esueaza, deoarece paranteza nu apare ime diat dupa numele functiei.
Daca ati inceput sa scrieti o interogare cu mai multe linii si decideti ca nu doriti sa o exe cutati, tastati \c pentru a o anula (cancel): mysql> SELECT NOW(), -> VERSIONO, -> \c mysql>
Remarcati ca promptul revine la forma mysql>, indicand ca mysql este gata pentru noua interogare.
Puteti stoca interogarile intr-un fisier si puteti cere programului mysql sa citeasc interogarile din fisier, in loc sa astepte ca dumneavoastra sa le introduceti de la tastaturi Folositi pentru aceasta facilitatile interpretorului de redirectionare a datelor de intran De exemplu, daca am interogari stocate intr-un fisier denumit fisieruljneu.sql, pe executa continutul fisierului astfel: % mysql < fisieruljneu.sql Puteti denumi fisierul cum doriti. Eu folosesc sufixul sql pentru a arata ca fisien contine instructiuni SQL.
Executia programului mysql in acest mod va reaparea in sectiunea „Adaugarea de inregis trari noi" atunci cand introducem date in baza de date samp_db. Este mult mai comod s incarcam un tabel determinand programul mysql sa citeasca instructiuni INSERT dintr-u fisier decat tastand manual fiecare instructiune.
In continuare, acest manual va prezenta multe interogari pe care le puteti incerca pe cot propriu. Acestea sunt indicate prin promptul mysql> care precede interogarea si pr caracterul punct si virgula (de terminare) plasat dupa aceasta, iar asemenea exemple si; de regula insotite de rezultatul interogarii. Trebuie sa puteti tasta aceste interogari cum sunt prezentate, iar datele de iesire rezultate trebuie sa fie identice.
Interogarile prezentate fara un prompt sau fara caracterul punct si virgula de terminare a instructiunii sunt menite pur si simplu a ilustra o idee si nu trebuie executate. (Le puteti incerca, daca doriti, dar, daca o faceti, nu uitati sa inserati caracterul punct si vir¬gula la sfarsit.)
in capitolele viitoare ale cartii, de regula nu voi mai prezenta promptul mysql> sau carac¬terul punct si virgula in instructiunile SQL. Motivul este acela ca puteti emite interogari in contexte diferite de programul client mysql (de exemplu in scripturi Perl sau PHP), contexte in care nu apare nici un prompt si nu este necesar nici un caracter punct si vir¬gula. Voi indica situatiile in care se intentioneaza in mod specific ca dumneavoastra sa introduceti o interogare in mysql.
Crearea bazei de date
Vom incepe prin a crea baza de date samp_db si tabelele din interiorul acesteia, prin a popula tabelele sale si prin a efectua unele interogari simple asupra datelor incluse in aceste tabele.
Utilizarea unei baze de date implica mai multe etape:
1. Crearea (initializarea) bazei de date
2. Crearea tabelelor din cadrul bazei de date
3. Interactiunea cu tabelele prin insertia, regasirea, modificarea sau stergerea datelor.
Regasirea datelor existente este, evident, cea mai frecventa operatie efectuata cu o baza de date. Urmatoarele operatii, in ordinea frecventei, sunt insertia datelor noi si actua¬lizarea sau stergerea datelor existente. Mai putin frecvente sunt operatiile de creare a tabelelor, iar operatia cel mai putin frecventa este crearea bazelor de date.
Noi pornim de la zero, deci trebuie sa incepem de la crearea bazei de date, operatia cel mai putin frecventa, si vom parcurge pas cu pas operatiile de creare a tabelelor si de in¬sertie a datelor noastre initiale, inainte de a ajunge sa efectuam operatia cea mai comuna: regasirea datelor.
Pentru a crea o baza de date noua, conectati-va la server folosind mysql si apoi emiteti o instructiune CREATE DATABASE care specifica numele bazei de date: mysql> CREATE DATABASE samp_db;
Va trebui sa creati baza de date samp_db inainte de a putea crea oricare dintre tabelele care vor fi incluse in aceasta sau inainte de a efectua orice operatii folosind continutul acelor tabele.
Prin crearea bazei de date, devine aceasta baza de date curenta (prestabilita)? Nu, nu devine, asa cum se poate vedea prin executarea urmatoarei interogari: mysql> SELECT DATABASE(); i DATABASE(i
Pentru ca baza de date samp_db sa devina curenta, emiteti o instructiune USE: mysql>* USE samp_db
USE este una dintre putinele instructiuni care nu necesita un caracter punct si virgula c terminare a instructiunii, desi il puteti adauga, daca doriti. HELP este o alta instructiuu de acest gen, iar daca emiteti o instructiune HELP, aceasta va va prezenta o lista cu toal instructiunile care nu necesita un caracter punct si virgula.
Dupa ce emiteti instructiunea USE, samp_db devine baza de date prestabilita: mysql> SELECT DATABASEf); DATABASE() samp_db
Cealalta modalitate de a transforma o baza de date in baza de date curenta este de a denumi in linia de comanda atunci cand invocati mysql:
% mysql samp_db
Acesta este, de fapt, modul uzual de a denumi baza de date pe care doriti sa o folosi Daca aveti nevoie de parametri de conectare, specificati-i inainte de numele bazei date. De exemplu, urmatoarele doua comenzi imi permit sa ma conectez la baza de da samp_db de la gazda locala si de la sistemul pit-viper.snake.net:
% mysql -u paul -p sanp_db
% mysql -h pit-viper.snake.net -u paul -p samp_db
Daca nu se precizeaza altfel, toate exemplele care urmeaza vor presupune ca, atunci cam invocati mysql, specificati baza de date samp_db in linia de comanda pentru a o transfoi ma in baza de date curenta. Daca invocati mysql, dar uitati sa specificati baza de date i linia de comanda, emiteti o instructiune USE samp_db.
Crearea tabelelor
in aceasta sectiune, vom construi tabelele necesare pentru baza de date demonstrativ samp_db. Mai intai, vom lua in considerare tabelele necesare pentru Liga istorica. Ape ne vom ocupa de tabelele necesare pentru proiectul de pastrare a evidentei

Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta