+ All Categories
Home > Documents > Elemente de MySQL - octawian.ro

Elemente de MySQL - octawian.ro

Date post: 27-Oct-2021
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
79
Octavian G. Mustafa Elemente de MySQL Programarea bazelor de date ˆ ın mysql Publicat ¸iile DAL Craiova Fis ¸ier prelucrat ˆ ın data de [September 14, 2015]
Transcript

Octavian G. Mustafa

Elemente de MySQL

Programarea bazelor de dateın mysql

Publicatiile DALCraiova

Fisier prelucratın data de [September 14, 2015]

Avertisment

Acest eseu nu a fost raportat vreunui referent.In consecinta, continutul sau trebuieconsiderat “ca atare.”

Autorul va asteapta comentariile la adresa lui de e-mail1 si va multumeste anti-cipat pentru efortul depus.

Fiecare proiect de laPublicatiile DAL trebuie considerat “santier” daca nu estedeclarat altfel. Versiunea sa este cea a datei de pe pagina cutitlul.

Craiova, Mai 18, 2015 O.G.M.

1 [email protected]

v

Prefata

In materialul de fata prezentam o serie de chestiuni introductive privind programareabazelor de dateın sistemulMySQL (pe scurt,mysql).

Sistemulmysql este un ansambluclient-serveriar versiunea (de server)ın carelucram esteMySQL Community Server 5.6.26.

Presupun ca sunteti deja familiarizat(a) cu programarea bazelor de date folosindT-SQL si ca ati rasfoit tutorialul meu despre acest subiect, care este disponibil on-line la adresa [16].

Utilizarea luimysql ın sistemul LAMP [12], de catre siturile WEB bazate peplatforma WordPress [39] etc face din cunoasterea sa o necesitate pentru oricinestudiaza tehnologiile de baze de date.

Craiova,[September 14, 2015] O.G.M.

vii

Cuprins

1 Instalarea SGBD-ului. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.1 Poze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 5

2 Primele manevre cumysql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.1 Alte poze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 332.2 Injectii de date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . 392.3 Poze (din nou. . . ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 45

3 Diverse proiectemysql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533.1 O bazawp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Referinte Bibliografice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 65

ix

Lista de Figuri

1.1 Directoare pentru instalareaCustom . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Contractul de licenta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.3 Tipul de instalare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . 61.4 Componentele ce urmeaza a fi instalate . . . . . . . . . . . . . . . . . . . . . . . . . 71.5 Instalarea componenteiMySQL Server 5.6.26 . . . . . . . . . . . . . . 71.6 Elementele componenteiMySQL Server 5.6.26 . . . . . . . . . . . . . 81.7 Selectarea numelui componentei . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 81.8 FereastraAdvanced Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.9 Selectarea directorului . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 91.10 FereastraAdvanced Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.11 Selectarea directorului . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 101.12 Avertisment la recapitulare . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 111.13 Instalarea componenteiMySQL Workbench 6.3.4 . . . . . . . . . . . . 111.14 ButonulAdvanced Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.15 Selectarea directorului . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 121.16 Fereastra de avertisment:Warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.17 Instalarea componenteiMySQL Notifier 1.1.6 . . . . . . . . . . . . . 131.18 Instalarea componenteiMySQL for Visual Studio 1.2.3 . 141.19 Instalarea componenteiODBC 5.3.4 . . . . . . . . . . . . . . . . . . . . . . . . . . 141.20 Instalarea componenteiNET 6.9.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.21 Instalarea componenteiPython (3.4) 2.0.4 . . . . . . . . . . . . . . . 151.22 Instalarea componenteiC 6.1.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.23 Instalarea componenteiMySQL Documentation 5.6.26 . . . . . 161.24 Elementele componenteiSamples and Examples 5.6.26 . . . 171.25 Recapitulare, avertismente . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 171.26 Incepem executia! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 181.27 ButonulShow/Hide Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181.28 Jurnalul executiei/instalarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.29 Executia s-aıncheiat! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.30 Configurarea componentelor instalate . . . . . . . . . . . . . .. . . . . . . . . . . . . 201.31 ButonulShow Advanced Options . . . . . . . . . . . . . . . . . . . . . . . . 20

xi

xii Lista de Figuri

1.32 Parola utilizatoruluiroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211.33 Stabilirea parolei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 211.34 Serviciul WindowsMySQL56 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.35 Alegerea fisierelor de jurnal . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . 221.36 Caile fisierelor de jurnal . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 231.37 Incepem executia! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 231.38 In timpul executiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 241.39 Jurnalul executiei/configurarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.40 S-aıncheiat executia! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . 251.41 Verificarea parolei utilizatoruluiroot . . . . . . . . . . . . . . . . . . . . . . . . . . 251.42 Incepem executia! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . 261.43 In timpul executiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 261.44 Executia/configurarea s-aıncheiat! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271.45 Mai departe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 271.46 Instalarea luimysql s-aıncheiat! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281.47 Fereastra principala a programuluiMySQL Workbench . . . . . . . . . . 281.48 Prima forma a ferestrei de conectare la server . . . . . . . . . . . . . . . . . . . . 291.49 A doua forma a ferestrei de conectare la server . . . . . . . . . . . . . . . . . . . 29

2.1 Fereastra clientuluiworkbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.2 Butonul de vizualizare a ferestrelor din panoul stang . . . . . . . . . . . . . . 342.3 Butonul de executie a interogarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342.4 Rezultatul interogarii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352.5 Stergerea randurilor din fereastraOutput . . . . . . . . . . . . . . . . . . . . . . 352.6 Butonul de minimizare a panoului inferior . . . . . . . . . . . .. . . . . . . . . . . 362.7 Directorul bazei de dateintro_carti . . . . . . . . . . . . . . . . . . . . . . . . 362.8 Butonul de actualizare/sincronizare a continutului ferestrei din

panoul stang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372.9 ButonulData Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.10 Fereastra de export a datelor . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . 382.11 Jurnalul exportului de date . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 382.12 Rezultatul exportului: fisiereledump . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.13 Inchiderea ferestrei de lucru . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 392.14 Butonul ferestreiData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452.15 Butonul componenteiMySQL for Excel . . . . . . . . . . . . . . . . . . . . . 462.16 Panoul componentei atunci cand fereastra principala nu este

maximalizata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462.17 Panoul componentei atunci cand fereastra principala este

maximalizata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.18 Alegerea unui obiectconexiune. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.19 Alegerea bazei de date . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 482.20 Alegerea tabelului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . 482.21 Selectarea datelor din foaia de lucru . . . . . . . . . . . . . . .. . . . . . . . . . . . . 492.22 Maparea coloanelor de date . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 492.23 Acceptam noua mapare! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50

Lista de Figuri xiii

2.24 Butonul de inserare a datelor . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . 502.25 Rezultatul executiei . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . 51

Acronime

JDBC Java Database ConnectivityLAMP Linux – Apache – MySQL – PHP/Perl/PythonODBC Open Database ConnectivitySQL Structured Query LanguageSGBD Sistem de Gestiune a Bazelor de DateSGBDR Sistem de Gestiune a Bazelor de Date RelationaleT-SQL Transact-SQLVS Microsoft Visual Studio

xv

Capitolul 1Instalarea SGBD-ului

MySQL (sau, caın linie de comanda, mysql) este unsistem de gestiune abazelor de date relationale(SGBD, SGBDR) inventat de Michael Widenius siDavid Axmark de la MySQL AB si denumit astfel dupa My, fiica lui Widenius[17]. In prezent,mysql este dezvoltat de Oracle [21].mysql, ın versiuneaCommunity Edition, poate fi descarcat de la adresa

[18]. Descrierea care urmeaza presupune ca ati optat pentru programulcomplet,adicamysql-installer-community-5.6.26.0.msi.

Tutorialul oficial, cuprinzator, cu o multime de ilustratiihigh-definition, pentruinstalarea luimysql este disponibil on-line la adresa [20].

Lucram pe un calculatorx86 [33] cu sistemul de operare Windows 8.1 Profes-sional, asupra caruia avem drepturi deadministrator.

Pentru a putea interactionaprogramaticcu bazele de datemysql, presupun ca atiinstalat dejaın calculator versiuni de Microsoft Visual Studio (VS) [15], MicrosoftExcel [14], respectiv Python1 (py) [27].

Inaintea instalarii propriu-zise, construim un director (folder) de lucru, C:\...\instalare_MySQL, vezi elipsa albastra din Figura 1.1. Daca avetiın calculatorsi alte SGBD-uri, atunci este bine sa nu amestecati fisierele*.sql respective.Inacest director, pregatim sub-directoarele

date_mysqlde_cititinstalatjurnalrestulworkbench

Mai departe, directorulrestul va fi populat — de catre noi! — cu sub-directoarele

connectors

1 py este folosit pentruscript-uri de catre multe sistemeopen-source, d.ex. deBlender. In cadrulMySQL, programulMySQL Workbench foloseste asemenea script-uri, vezi elipsa albastra dinFigura 1.47.

1

2 1 Instalarea SGBD-ului

documentationexcelnotifiersamplesutilitiesvisual_studio

La randul sau, directorulconnectors va fi populat cu sub-directoarele

ccppjnetodbcpython

Fig. 1.1 Directoare pentru instalareaCustom

Directorulde_citit este optional.In el ati putea stoca fisiere cu notitele dvs.privind instalarea si utilizarea luimysql.

Putemıncepe instalarea. Lansam ın executie, printr-un dubluclick, instalatorulWindows [37] descarcat,mysql-installer-community-5.6.26.0.msi.

Dupa ce bifam faptul ca am citit si acceptatcontractul de licenta (elipsa albastradin Figura 1.2), apasam butonulNext din fereastra curenta a instalatorului.

Optam pentru tipul de instalareCustom, vezi Figura 1.3, ceea ce ne permite sadecidem care dintre componentele luimysql vor fi instalate si unde vor fi instalate.Pentru a selecta componentele respective, folosim butoanele din elipsa rosie din

1 Instalarea SGBD-ului 3

Figura 1.4. Exista si oscurtatura pentru ceea ce avem de facut, vezi elipsa verde dinFigura 1.4. Ea este discutata ın tutorialul oficial [20].

Prima componenta esteMySQL Server 5.6.26, vezi elipsa albastra dinFigura 1.5. Ignorati sirulX86 din titulatura componentei, pe careıl vedeti ın poza:el se datoreaza arhitecturii calculatorului meu si poate fi diferit2 de ceea ce seva afisa pe ecranul calculatorului dvs. Odata selectata componenta dorita din listaAvailable Products, apasati sageata verde din elipsa rosie —ın Figura 1.5— pentru a trece componentaın lista din dreapta,Products/Features To BeInstalled. Bifati toate3 elementele din lista situata ın elipsa albastra din Figura1.6, apoi selectati titlul componentei din elipsa rosie din Figura 1.7. Apasati bu-tonul Advanced Options, din elipsa albastra — tot ın Figura 1.7 —. Ni se vacere sa stabilim directorul deinstalare, respectiv pe cel dedate. Incepem cu direc-torul de instalare, apasand butonul· · · din elipsa rosie din Figura 1.8. Directorul deinstalare, deja construit de noi, esteC:\...\instalare_MySQL\instalat,vezi Figura 1.9. Daca instalatorul emite un avertisment — vezi elipsa albastra dinFigura 1.10 —,ıl ignoram si apasam butonul· · · din elipsa rosie pentru a alege di-rectorul de date, caın Figura 1.11. Odata inserate caile complete catre directoareleinstalat, date_mysql, este posibil ca sistemul sa emita un nou avertisment,vezi Figura 1.12.Il ignoram si pe acesta, apasand butonulOK din elipsa rosie.Inacest moment, tot continutul care trebuie instalat pentruprima componenta a fosttransmis catre instalator.

Pentru componentaMySQL Workbench 6.3.4 procedam identic, vezi Fig-urile 1.13 – 1.16.

Urmatoarele componente se instaleaza ın sub-directoare ale directoruluires-tul.

ComponentaMySQL Notifier 1.1.6:directorulrestul\notifier, Figura 1.17.

ComponentaMySQL for Excel 1.3.4:directorulrestul\excel.

ComponentaMySQL Fabric 1.5.4 & MySQL Utilities 1.5.4:directorulrestul\utilities.

ComponentaMySQL for Visual Studio 1.2.3:directorulrestul\visual_studio, Figura 1.18.

Urmeaza componente —conectori— care se instaleaza ın sub-directorulcon-nectors al directoruluirestul.

ComponentaODBC 5.3.4 — vezi [23] —:directorulrestul\connectors\odbc, Figura 1.19.

ComponentaNET 6.9.6 — .NET, vezi [22] —:directorulrestul\connectors\net, Figura 1.20.

ComponentaPython (3.4) 2.0.4:directorulrestul\connectors\python, Figura 1.21.

2 Conform [18], instalatorul Windows contine simysql-ul pentru calculatoarelex64 [32].3 Desi instalamıntregmysql-ul, aceste bifari ne permit sa vedem. . . ce anume instalam!

4 1 Instalarea SGBD-ului

ComponentaC 6.1.6:directorulrestul\connectors\c, Figura 1.22.

ComponentaC++ 1.1.6 se instaleaza ın directorulrestul\connectors\cpp.

ComponentaJ 5.1.36 — JDBC, vezi [11] — se instaleaza ın directorulrestul\connectors\j.

Revenim la directorulrestul.ComponentaMySQL Documentation 5.6.26:

directorulrestul\documentation, Figura 1.23.Aici se gasesc manualele luimysql, ın limba engleza.

ComponentaSamples and Examples 5.6.26:directorulrestul\samples, Figura 1.24.Aici se afla doua baze de date importante, si anumeSakila si World. In di-rectorulrestul\samples\Sample Databases\Sakila se gaseste fisierulsakila.mwb. Daca executati un dubluclick cu butonul stang al mouse-ului avandcursorul pozitionat pe iconita acestui fisier, el se va deschideın workbench —vezi Figura 1.47 — sub forma unei modelentitate– relatie4. De asemeni, apasandbutonul din elipsa verde — totın Figura 1.47 —, putem cautaın calculator oricefisier*.mwb.

Dupa ce am stabilit care sunt elementele sistemuluimysql pe care dorim sa leinstalam — si ne-am convins ca mesajele de avertizare, vezi elipsele rosii din parteasuperioara a Figurii 1.25, nu dezvaluie probleme nerezolvate! — putem comandaexecutiainstalarii, caın Figura 1.26.

Daca totul esteın regula (Figurile 1.27, 1.28), ajungem la Figura 1.29: instalareasistemuluimysql a fost finalizata!

Configurarea sistemuluimysql — Figura 1.30 — ne impune sa bifam casutaShow Advanced Options din Figura 1.31 si sa retinem numarul portului [26]de conectare la server:3306.

Fereastra din Figura 1.32 ne cere o parola pentru utilizatorul5 root. Lucrand pecalculatorul personal, am folosit o parola “slaba” — Figura 1.33—.

Serverul de baze de date va functiona ca unserviciu Windows[38], cu numeleMySQL56, vezi Figura 1.34. Bifand, daca nu este bifata automat, casutaStartthe MySQL Server at System Startup, ne asiguram ca serverul por-neste odata cu calculatorul.In caz ca dorim sa pornim/oprim serverulın mod pro-gramatic, putem utiliza un script asemanator celui folosit la sistemultsql [16, p.19].

Mai departe, alegem tipurile de jurnal6 care ne intereseaza — elipsele rosii dinFigura 1.35 — si NU apasam butoanele din elipsele albastre din aceeasi figura. Incampurile din elipsele albastre din Figura 1.36 scriem

C:\...\instalare_MySQL\jurnal\NumeDorit.err

4 In limba engleza,Entity-Relationship Model[9, 8].5 In limba romana,radacina. Terminologia este specifica sistemului de operare UNIX, underootıl desemneaza peadministratorul sistemului [29, p. 29].6 In limba engleza, log.

1.1 Poze 5

C:\...\instalare_MySQL\jurnal\NumeDorit.logC:\...\instalare_MySQL\jurnal\NumeDorit-slow.logC:\...\instalare_MySQL\jurnal\NumeDorit.bin

Daca totul esteın regula — Figurile 1.37 – 1.39 —, configurarea serverului debaze de date s-aıncheiat, vezi Figura 1.40, si acesta functioneaza. Testam conectareala server apasand butonulCheck din Figura 1.41.

Dupa configurarea bazelor de date “scoala” — Figurile 1.42 – 1.45 —, bifandcasuta din elipsa albastra din Figura 1.46, ne asiguram ca va fi lansatın executieclientul workbench de ındata ce apasam butonulFinish — elipsa rosie dinFigura 1.46 —.

Exista doua metode de a ne conecta la server via clientul7 MySQL Workbench(pe scurt,workbench): fie clickand cu mouse-ul pe zona din elipsa rosie din Figura1.48, fieclickand pe zona din elipsa rosie din Figura 1.49 — aceasta din urmametoda ne permite sa facem modificari ın instantaconexiunii, vezi elipsa albastradin stanga figurii —.

Un fisier important al sistemuluimysql este fisierul de configuraremy.ini —elipsa din mijlocul Figurii 1.49 —. Calea catre el esteC:\...\instalare_MySQL\date_mysql.

1.1 Poze

7 Alt client pentru serverul MySQL estephpMyAdmin [25], folosit ın sistemul XAMPP [34, 35].

6 1 Instalarea SGBD-ului

Fig. 1.2 Contractul de licenta

Fig. 1.3 Tipul de instalare

1.1 Poze 7

Fig. 1.4 Componentele ce urmeaza a fi instalate

Fig. 1.5 Instalarea componenteiMySQL Server 5.6.26

8 1 Instalarea SGBD-ului

Fig. 1.6 Elementele componenteiMySQL Server 5.6.26

Fig. 1.7 Selectarea numelui componentei

1.1 Poze 9

Fig. 1.8 FereastraAdvanced Options

Fig. 1.9 Selectarea directorului

10 1 Instalarea SGBD-ului

Fig. 1.10 FereastraAdvanced Options

Fig. 1.11 Selectarea directorului

1.1 Poze 11

Fig. 1.12 Avertisment la recapitulare

Fig. 1.13 Instalarea componenteiMySQL Workbench 6.3.4

12 1 Instalarea SGBD-ului

Fig. 1.14 ButonulAdvanced Options

Fig. 1.15 Selectarea directorului

1.1 Poze 13

Fig. 1.16 Fereastra de avertisment:Warning

Fig. 1.17 Instalarea componenteiMySQL Notifier 1.1.6

14 1 Instalarea SGBD-ului

Fig. 1.18 Instalarea componenteiMySQL for Visual Studio 1.2.3

Fig. 1.19 Instalarea componenteiODBC 5.3.4

1.1 Poze 15

Fig. 1.20 Instalarea componenteiNET 6.9.6

Fig. 1.21 Instalarea componenteiPython (3.4) 2.0.4

16 1 Instalarea SGBD-ului

Fig. 1.22 Instalarea componenteiC 6.1.6

Fig. 1.23 Instalarea componenteiMySQL Documentation 5.6.26

1.1 Poze 17

Fig. 1.24 Elementele componenteiSamples and Examples 5.6.26

Fig. 1.25 Recapitulare, avertismente

18 1 Instalarea SGBD-ului

Fig. 1.26 Incepem executia!

Fig. 1.27 ButonulShow/Hide Details

1.1 Poze 19

Fig. 1.28 Jurnalul executiei/instalarii

Fig. 1.29 Executia s-aıncheiat!

20 1 Instalarea SGBD-ului

Fig. 1.30 Configurarea componentelor instalate

Fig. 1.31 ButonulShow Advanced Options

1.1 Poze 21

Fig. 1.32 Parola utilizatoruluiroot

Fig. 1.33 Stabilirea parolei

22 1 Instalarea SGBD-ului

Fig. 1.34 Serviciul WindowsMySQL56

Fig. 1.35 Alegerea fisierelor de jurnal

1.1 Poze 23

Fig. 1.36 Caile fisierelor de jurnal

Fig. 1.37 Incepem executia!

24 1 Instalarea SGBD-ului

Fig. 1.38 In timpul executiei

Fig. 1.39 Jurnalul executiei/configurarii

1.1 Poze 25

Fig. 1.40 S-aıncheiat executia!

Fig. 1.41 Verificarea parolei utilizatoruluiroot

26 1 Instalarea SGBD-ului

Fig. 1.42 Incepem executia!

Fig. 1.43 In timpul executiei

1.1 Poze 27

Fig. 1.44 Executia/configurarea s-aıncheiat!

Fig. 1.45 Mai departe

28 1 Instalarea SGBD-ului

Fig. 1.46 Instalarea luimysql s-aıncheiat!

Fig. 1.47 Fereastra principala a programuluiMySQL Workbench

1.1 Poze 29

Fig. 1.48 Prima forma a ferestrei de conectare la server

Fig. 1.49 A doua forma a ferestrei de conectare la server

Capitolul 2Primele manevre cumysql

Construim un director (folder) destinat viitoarelor programe SQL,C:\ProiecteleMele_MySQL. Acestea vor fi elaborate cu ajutorul SGBD-ului1 mysql— Figura 2.1 —.

Fig. 2.1 Fereastra clientuluiworkbench

Butonul din elipsa rosie situata ın partea dreapta a Figurii 2.1 ne permite sa mo-dificam setarile editorului de text (culori,font-uri, etc). Panourile2 Navigator,Output si SQLAdditions pot fi activate/dezactivate prin meniulView din

1 Folosim,ın mod liber, termenulSGBD pentru a ne referi la oricare dintre partile sistemului client-server [31].2 In limba engleza,panel(sing.).

31

32 2 Primele manevre cumysql

elipsa albastra. Alta metoda de a opera cu panourile este sa apelati la butoanelegrupateın jurul elipsei rosii din Figura 2.6.

Folosind butonul din elipsa rosie din partea stanga a Figurii 2.1, deschidem fe-reastra unei interogari — Figura 2.3 —.

diverse_comenzi_1.sql

1 SELECT ve rs i on() AS ‘versiune‘, -- versiunea serverului2 cu r ren t da te() AS ‘data curenta‘,3 now() AS ‘momentul curent‘,4 user() AS ‘utilizator‘;5 SHOW DATABASES;6 SELECT host,7 user FROM mysql.user; /* numele calificat: numele-bazei.ց

(cont.)numele-tabelului*/8 SELECT database();/* la ce baza sunt conectat */

Manualulon-line al sistemuluimysql, ce include comenzile SQL disponibile,poate fi consultat la adresa [19].

Comentariile, esentialeıntr-un program complicat, se fac fie pe cate un rand,folosind simbolul “--” — vezi randul 1 al script-ului —, fieıntr-un paragraf, cuajutorul delimitatorilor/*, */.

Spre deosebire detsql [16, p. 18], nu folosim comandaGO. Pentru finalulinstructiunilor trebuie utilizat simbolul “;”.

Codul poate fi selectat si apoi executatpe portiuni. Executia se comanda cu bu-tonul din elipsa rosie din Figura 2.3. Rezultatul unei asemenea executii se poate ob-servaın Figura 2.4. Executia este jurnalizata ın fereastra din panoulOutput. Pen-tru a sterge continutul acesteia, ne pozitionam cu cursorul pe oricare din randurileferestrei,ıl selectam si, apasand butonuldrept al mouse-ului, alegem din meniul(contextual) care se formeaza elementulClear, vezi elipsa rosie din Figura 2.5.

Ferestrele panoului stang alworkbench-ului pot fi maximizate/minimizate cubutonul din elipsele albastre din Figura 2.2.

In continuare, construiesc o baza de date — sauschema ın mysql, vezi [36, p.630], [30] —ın care sa stochez numarul cartilor pe care le inserezıntr-o anumita ziın programul Biblioteca [2]. Aceste informatii ne permit sa construimserii cronolo-gice[28, p. 337 si urm.] interesante.

inserare_de_carti.sql

1 /*****************************2 stochez datele cand inserez carti3 ******************************/4 CREATE DATABASE IF NOT EXISTS ‘intro_carti‘;5 USE ‘intro_carti‘;6 /* testez folosirea bazei corecte */7 SELECT database();8

9 USE ‘intro_carti‘;10 CREATE TABLE IF NOT EXISTS11 ‘insertii‘(‘contor‘ INT NOT NULL AUTO INCREMENT PRIMARY KEY ,12 ‘momentul‘ DATETIME NOT NULL ,13 ‘numarul_de_carti‘ INT NULL )

2.1 Alte poze 33

14 ENGINE = InnoDB; -- motorul este optional (InnoDB e default...)15 /* verificam numele coloanelor, tipul datelor, etc */16 DESCRIBE ‘intro_carti‘.‘insertii‘;17

18 USE ‘intro_carti‘;19 INSERT INTO ‘insertii‘(‘momentul‘,‘numarul_de_carti‘)20 VALUES(now(),2);21 INSERT INTO ‘insertii‘(‘momentul‘,‘numarul_de_carti‘)22 VALUES(now(),12);23 /*24 putem evita scrierea numelor de coloane punand25 NULL la valorile cu auto-increment26 (vezi http://dev.mysql.com/doc/refman/5.6/en/example-ց

(cont.)foreign-keys.html)27 */28 INSERT INTO ‘insertii‘ VALUES(NULL,now(),4);29 SELECT * FROM ‘insertii‘;30 SELECT LAST INSERT ID(); /* sa vedem ultima valoare a auto-ց

(cont.)incrementului */31 INSERT INTO ‘insertii‘ VALUES(NULL,now(),25);

Fisierele noii baze de date vor fi stocateın directorul — construit demysql —instalare_MySQL\date_mysql\data,vezi Figura 2.7. Folosind butonul de actualizare/sincronizare a continutului ferestre-lor din panoul stang alworkbench-ului — elipsa rosie din Figura 2.8 —, facemvizibile detaliile bazei de dateintro_carti, vezi elipsa albastra din aceeasi ima-gine.

Sa presupunem ca avem dejaın SGBD o baza de date cu numeroase informatiiimportante. Dorim sa o exportam3 pentru a o putea folosi indepedent demysql.Vom folosi, ın acest scop, butonulData Export din meniulServer — elipsarosie din Figura 2.9 —.In fereastra de export a datelor, vezi Figura 2.10, casutele,respectiv butonul din elipsele albastre reprezinta diverse optiuni de export pen-tru aceasta baza de date. Odata hotarate aceste variante, apasam butonulStartExport din elipsa rosie din josul figurii. Jurnalul de executie, respectiv fisierelerezultateın urma exportului pot fi observateın Figurile 2.11, 2.12.

Fereastra de lucru aworkbench-ului se poateınchide — vom reveni la Figura1.47 — fie apasand butonulClose Connection Tab din meniulFile dinFigura 2.13, fie utilizand butonulx din elipsa albastra situata ın aceeasi figura.

2.1 Alte poze

3 In limba engleza,database dump[10].

34 2 Primele manevre cumysql

Fig. 2.2 Butonul de vizualizare a ferestrelor din panoul stang

Fig. 2.3 Butonul de executie a interogarii

2.1 Alte poze 35

Fig. 2.4 Rezultatul interogarii

Fig. 2.5 Stergerea randurilor din fereastraOutput

36 2 Primele manevre cumysql

Fig. 2.6 Butonul de minimizare a panoului inferior

Fig. 2.7 Directorul bazei de dateintro_carti

2.1 Alte poze 37

Fig. 2.8 Butonul de actualizare/sincronizare a continutului ferestrei din panoul stang

Fig. 2.9 ButonulData Export

38 2 Primele manevre cumysql

Fig. 2.10 Fereastra de export a datelor

Fig. 2.11 Jurnalul exportului de date

2.2 Injectii de date 39

Fig. 2.12 Rezultatul exportului: fisiereledump

Fig. 2.13 Inchiderea ferestrei de lucru

2.2 Injectii de date

Revenim la programul Biblioteca [2], cu ajutorul caruia am catalogat peste 500de carti ın format electronic — tratate de matematica, informatica etc —. Un fisier*.txt cu dateleın cauza poate fi descarcat de la adresa [4].

40 2 Primele manevre cumysql

Codurile listateın continuareımi permit sa inserez aceste informatiiıntr-o bazade datemysql . Incep cu constructia bazei de date.

baza_biblioteca.sql

1 /**********************2 Lista cartilor din programul Biblioteca_20123 ***********************/4 CREATE DATABASE IF NOT EXISTS ‘biblioteca_mea‘;5 USE ‘biblioteca_mea‘;6 CREATE TABLE IF NOT EXISTS7 ‘cartile‘(‘contor‘ INT NOT NULL AUTO INCREMENT PRIMARY KEY ,8 ‘fisierul_sursa‘ CHAR(10) NOT NULL DEFAULT ’000000.txt’,9 ‘domeniul‘ ENUM(’0’,’1’,’2’) NOT NULL DEFAULT ’0’,

10 ‘numele‘ VARCHAR(100) NOT NULL,11 ‘prenumele‘ CHAR(1) NOT NULL,12 ‘titlul‘ VARCHAR(300) NOT NULL,13 ‘editura‘ VARCHAR(100),14 ‘orasul‘ VARCHAR(100),15 ‘anul‘ CHAR(4) DEFAULT ’1900’,16 ‘comentarii‘ VARCHAR(400) NOT NULL )17 ENGINE = InnoDB;18 /* verificam numele coloanelor, tipul datelor, etc */19 DESCRIBE ‘biblioteca_mea‘.‘cartile‘;

Desi folosirea valoriiNULL este permisa la coloana cuAUTO_INCREMENT, vezi[1], sistemul va emite avertismenteın fereastra din panoulOutput la executareacodului urmator — datele vor fiınsa ıncarcate fara probleme —.

incarcarea_datelor.sql

1 USE biblioteca_mea;2 /*********************3 Vezi postarea lui "John Best"4 de pe "http://dev.mysql.com/doc/refman/5.6/en/loading-tables.ց

(cont.)html"5 si informatia despre utilizarea lui NULL la AUTO_INCREMENT din6 "http://dev.mysql.com/doc/refman/5.6/en/example-auto-increment.ց

(cont.)html"7 **********************/8 LOAD DATA LOCAL INFILE ’C:/Users/Octavian/Desktop/biblioteca_bd.ց

(cont.)txt’9 INTO TABLE ‘biblioteca_mea‘.‘cartile‘

10 FIELDS TERMINATED BY ’,’11 LINES TERMINATED BY ’\r\n’;12

13 /* Am carti de la editura Springer? */14 SELECT * FROM ‘biblioteca_mea‘.‘cartile‘15 WHERE ‘editura‘ LIKE ’Springe%’;

In cazul de fata, avertismentele pot fi evitate caci nu avem neaparat nevoiede introducerea unui contorın tabelulcartile. Aceasta pentru ca programulBiblioteca asigura unicitatearandurilor de date4 cu ajutorul valorilor din coloana

4 In limba engleza,data rows.

2.2 Injectii de date 41

fisierul_sursa. Totusi, trebuie adesea sa introducem volume mari de datefara randuri uniceın mysql iar utilizarea luiNULL ne scuteste de generareaınafara SGBD-ului a valorilor “automate”.

Pentru a colecta datele [4] dincatalogulprogramului Biblioteca, am utilizat unscript Perl (pl) [24].

preparator_biblioteca.pl

1 ################################2 # Programul biblioteca_2012 salveaza intrarile in fisiere cu ց

(cont.)urmatorul continut:3 # (rand gol)4 # ++++++++++++++++++++++++++++++++++++++++5 # O noua inregistrare6 # ++++++++++++++++++++++++++++++++++++++++7 # --> Domeniu: 08 # --> Nume: Bass9 # --> Prenume: M

10 # --> Titlul: Handbook of Optics Volume III Classical ց

(cont.)Optics, Vision...11 # --> Editura: McGraw-Hill, INC.12 # --> Orasul: New York13 # --> Anul: 200014 # --> Comentarii: setul_de_carti_2015, 2015_Bass_M_3.pdf15 # ++++++++++++++++++++++++++++++++++++++++16 # Finalul inregistrarii17 # ++++++++++++++++++++++++++++++++++++++++18 # Script-ul urmator citeste toate aceste fisiere si extrage ց

(cont.)datele.19 # Datele sunt separate prin virgule.20 # Pentru a nu se produce deformari ale datelor (daca, d.ex., ց

(cont.)titlul unei carti are virgule...),21 # in fiecare atom de date vor fi cautate virgulele si inlocuite ց

(cont.)cu ";", respectiv "NUMELE FISIERULUI "22 # (pentru virgula de la "-->Comentarii").23 # Rezultatul va fi salvat in "biblioteca_bd.txt", pe Desktop,24 # in care fiecare rand este un sir de date (continutul unui ց

(cont.)fisier).25 ################################26 # Fisierul obtinut va fi inserat intr-o baza de date MySQL.27 ################################28

29 use 5.010;30 use s t r i c t;31 use warnings;32

33 my $fisierul_cu_indexul_fisierelor = ’C:/Biblioteca_mea_2012/ց

(cont.)Catalog/catalog_sortat.txt’;34 my $director_fisiere = ’C:/Biblioteca_mea_2012/’;35 my $numar_de_fisiere = 0; #contorizam randurile din fisierul-cu-ց

(cont.)indexul-fisierelor36 my @indexul_fisierelor = (); #randurile din fisierul-cu-indexul-ց

(cont.)fisierelor37 my $nume_fisier_curent = undef;

42 2 Primele manevre cumysql

38

39 ###citirea indexului:40 my $fisier_index = undef;41 open($fisier_index,’<:encoding(UTF-8)’,ց

(cont.)$fisierul_cu_indexul_fisierelor) or d ie ("Eroare la ց

(cont.)index: $!");42 whi le (my $randul_curent_index = <$fisier_index>){43 chomp $randul_curent_index;44 $indexul_fisierelor[$numar_de_fisiere++] = $randul_curent_indexց

(cont.);45 #forma intrarilor in fisierul-index este: 0HG234.txt (10 litereց

(cont.))46 i f (10!= l eng th($randul_curent_index)){47 d ie ("Probleme cu randurile din fisierul-de-index! Eroare ց

(cont.)la randul: $numar_de_fisiere");48 }49 }50 c l o s e($fisier_index);51

52 ###prelucrarea fisierelor din index:53 my $continutul_bazei_de_date = ’’;54 my @continut_fisier_curent = ();55 my $numarul_de_randuri = 0;56 my $fisier = undef;57 my $randul_curent = undef;58 f o r (my $i = 0; $i <= $#indexul_fisierelor; $i++){59 #construim calea absoluta la fisierul curent:60 $nume_fisier_curent = $director_fisiere . $indexul_fisierelorց

(cont.)[$i];61

62 #preluarea fisierului curent:63 @continut_fisier_curent = ();64 $numarul_de_randuri = 0;65 $fisier = undef;66 open($fisier,’<:encoding(UTF-8)’,$nume_fisier_curent) or d ie (ց

(cont.)"Eroare la deschiderea fisierului $indexul_fisierelor[$iց

(cont.)]");67 whi le ($randul_curent = <$fisier>){68 chomp $randul_curent;69 $continut_fisier_curent[$numarul_de_randuri++] = ց

(cont.)$randul_curent;70 }71 #fisierele incep cu un rand gol si au 15 randuri (1 gol + 14 ց

(cont.)scrise)72 i f (15 != $numarul_de_randuri){73 d ie ("Probleme cu randurile din fisierul curent! Eroare la ց

(cont.)fisierul $indexul_fisierelor[$i]");74 }75 c l o s e($fisier);76

77 #preluarea datelor din fisierul curent:78 my @obtinerea_domeniului = s p l i t ("--> Domeniu: ",ց

(cont.)$continut_fisier_curent[4]);

2.2 Injectii de date 43

79 my @obtinerea_numelui = s p l i t ("--> Nume: ",ց

(cont.)$continut_fisier_curent[5]);80 my @obtinerea_prenumelui = s p l i t ("--> Prenume: ",ց

(cont.)$continut_fisier_curent[6]);81 my @obtinerea_titlului = s p l i t ("--> Titlul: ",ց

(cont.)$continut_fisier_curent[7]);82 my @obtinerea_editurii = s p l i t ("--> Editura: ",ց

(cont.)$continut_fisier_curent[8]);83 my @obtinerea_orasului = s p l i t ("--> Orasul: ",ց

(cont.)$continut_fisier_curent[9]);84 my @obtinerea_anului = s p l i t ("--> Anul: ",ց

(cont.)$continut_fisier_curent[10]);85 my @obtinerea_comentariilor = s p l i t ("--> Comentarii: ",ց

(cont.)$continut_fisier_curent[11]);86

87 #prelucrarea datelor:88 #primele doua coloane se folosesc pentru a putea insera ց

(cont.)rezultatul intr-o baza de date mysql:89 $continutul_bazei_de_date .= ’NULL,’.$indexul_fisierelor[$i].’ց

(cont.),’;90 #domeniul: (adaug o virgula la final)91 $continutul_bazei_de_date .= curatare_date(ց

(cont.)$obtinerea_domeniului[1],";").’,’;92 #numele: (adaug o virgula la final)93 $continutul_bazei_de_date .= curatare_date($obtinerea_numeluiց

(cont.)[1],";").’,’;94 #prenumele: (adaug o virgula la final)95 $continutul_bazei_de_date .= curatare_date(ց

(cont.)$obtinerea_prenumelui[1],";").’,’;96 #titlul: (adaug o virgula la final)97 $continutul_bazei_de_date .= curatare_date($obtinerea_titluluiց

(cont.)[1],";").’,’;98 #editura: (adaug o virgula la final)99 $continutul_bazei_de_date .= curatare_date($obtinerea_edituriiց

(cont.)[1],";").’,’;100 #orasul: (adaug o virgula la final)101 $continutul_bazei_de_date .= curatare_date($obtinerea_orasuluiց

(cont.)[1],";").’,’;102 #anul: (adaug o virgula la final)103 $continutul_bazei_de_date .= curatare_date($obtinerea_anuluiց

(cont.)[1],";").’,’;104 #comentariile: (NU adaug o virgula la final)105 $continutul_bazei_de_date .= curatare_date(ց

(cont.)$obtinerea_comentariilor[1],"NUMELE FISIERULUI ");106

107 #randul nou:108 $continutul_bazei_de_date .= "\n";109 }#final pt. for my $i...110

111 #salvarea bazei de date, in format CSV:112 my $fisierul_bazei_de_date = ’C:/Users/Octavian/Desktop/ց

(cont.)biblioteca_bd.txt’;113 $fisier = undef;

44 2 Primele manevre cumysql

114 open($fisier,’>:encoding(UTF-8)’,$fisierul_bazei_de_date) or d ieց

(cont.) ("Eroare la deschiderea fisierului \[ց

(cont.)$fisierul_bazei_de_date\]");115 p r i n t $fisier ($continutul_bazei_de_date);116 c l o s e($fisier);117

118 sub curatare_date {119 ###############################120 # -- muncitor : aici preluam expresia de prelucrat;121 # -- expresie : aici preluam expresia ce va inlocui, in ց

(cont.)muncitor,122 # semnele ",";123 ###############################124 my $muncitor = $_[0];125 my $expresie = $_[1];126 chomp $muncitor;127 $muncitor =∼ s/,/$expresie/g;128 re turn $muncitor;129 }

Mai departe, vom folosi componenta [6]mysql – excel pentru inserareaacelorasi informatiiın baza de datebiblioteca_mea. Utilizez MicrosoftOffice Excel 2007 (pe scurt,excel). Chestiunea cu datele5 NULL necesitamodificarea definitiei tabeluluicartile.

tabelul_cartile2.sql

1 USE ‘biblioteca_mea‘;2 CREATE TABLE IF NOT EXISTS3 ‘cartile2‘(‘contor‘ VARCHAR(4) DEFAULT ’0’, -- date nullabile!4 ‘fisierul_sursa‘ CHAR(10) NOT NULL DEFAULT ’000000.txt’,5 ‘domeniul‘ CHAR(1) NOT NULL DEFAULT ’0’,6 ‘numele‘ VARCHAR(100) NOT NULL,7 ‘prenumele‘ CHAR(1) NOT NULL,8 ‘titlul‘ VARCHAR(300) NOT NULL,9 ‘editura‘ VARCHAR(100),

10 ‘orasul‘ VARCHAR(100),11 ‘anul‘ CHAR(4) DEFAULT ’1900’,12 ‘comentarii‘ VARCHAR(400) NOT NULL )13 ENGINE = InnoDB;14 /* verificam numele coloanelor, tipul datelor, etc */15 DESCRIBE ‘biblioteca_mea‘.‘cartile2‘;

Folosim datele [3],ın format CSV6 [7].Deschidemınexcel fisierul CSV descarcat si, utilizand butonul din elipsa rosie

din Figura 2.14, trecemın fereastraData. Cu ajutorul butonului pentru componen-ta, vezi elipsa rosie din Figura 2.15, afisam panoul componentei. Din acesta, alegemsectiuneaOpen a MySQL Connection— elipsele rosii din Figurile 2.16, 2.17—. Clickam obiectul din elipsa rosie din Figura 2.18 dupa care selectam schemabiblioteca_mea din Figura 2.19 si apasam butonulNext, situatın elipsa rosiedin aceeasi imagine.

5 Vezi discutia de la pagina 40.6 Un fisier*.txt bine organizat poate fi salvat ca*.csv fara pierderea structurii datelor.

2.3 Poze (din nou. . . ) 45

Mai departe, optam pentru tabelulcarti2, vezi Figura 2.20, si, din foaia de lu-cru, selectam randurile cu date pe care dorim sa le inseram ın sistemulmysql.Apoi, apasam butonulAppend Excel Data to Table — elipsa rosie dincoltul dreapta-jos al Figurii 2.21 —.

Am ajuns la Figura 2.22 care contine fereastrapop-uppentru maparea7 coloanelorde date. Ne pozitionam cu cursorul pe titlul (verde) al uneia dintre coloanele dinrandul de sus — aici se gasesc coloanele selectate de noi din foaia de lucru;numarul lor trebuie sa ıi corespunda celui al coloanelor tabelului dinmysql! —si, tinand apasat butonulstang al mouse-ului, urmam sagetile rosii din imagine.Folosim bara de derulare8 orizontala — din elipsa albastra — pentru a ajunge latoate coloanele selectate din foaia de lucru. Deoareceexcel-ul a facut, ın modautomat, niste mapari, maparile noastre trebuie confirmate prin apasarea butonuluiYes din Figura 2.23 — la fiecare mapare! —. Dupa ce ne asiguram ca maparile suntcorecte, apasam butonulAppend, vezi Figura 2.24. Finalul executiei este anuntatde fereastra pop-up din Figura 2.25. Folosind butonulShow Details din elipsaalbastra din Figura 2.25 putem afla, d.ex., cate randuri de date au fost inserateıntabelulcartile2. Injectia de date s-aıncheiat.

2.3 Poze (din nou. . . )

Fig. 2.14 Butonul ferestreiData

7 In limba engleza,mapping. Vezi [13].8 In limba engleza,scrollbar.

46 2 Primele manevre cumysql

Fig. 2.15 Butonul componenteiMySQL for Excel

Fig. 2.16 Panoul componentei atunci cand fereastra principala nu este maximalizata

2.3 Poze (din nou. . . ) 47

Fig. 2.17 Panoul componentei atunci cand fereastra principala este maximalizata

Fig. 2.18 Alegerea unui obiectconexiune

48 2 Primele manevre cumysql

Fig. 2.19 Alegerea bazei de date

Fig. 2.20 Alegerea tabelului

2.3 Poze (din nou. . . ) 49

Fig. 2.21 Selectarea datelor din foaia de lucru

Fig. 2.22 Maparea coloanelor de date

50 2 Primele manevre cumysql

Fig. 2.23 Acceptam noua mapare!

Fig. 2.24 Butonul de inserare a datelor

2.3 Poze (din nou. . . ) 51

Fig. 2.25 Rezultatul executiei

Capitolul 3Diverse proiectemysql

3.1 O baza wp

Program:> Sa presupunem ca ne-am instalat unblog [5], folosind solutia WordPress1 (pescurt,wp). Acesta utilizeaza o baza de datemysql ın careısi stocheaza continu-tul: paginile meniului principal, postarile, comentariile, etc. Chiar de la instalareablogului, baza de date — numita, de obicei,wp_NumeDorit — contine mode-le de pagini, de postari si de mesaje. Folosind SGBD-ulphpMyAdmin, facem undumpal acestei baze de date si obtinem codul urmator, careıi defineste structura.

Codul bazei de datewp poate fi descarcat de la adresa [40].

baza_wp_1.sql

1 /*******************************2 Copyright 2015: contributors to WordPress3 ********************************/4

5 CREATE DATABASE IF NOT EXISTS ‘baza_de_date_wordpress_studiu‘6 DEFAULT CHARACTER SET =latin17 COLLATE =latin1_swedish_ci;8

9 USE ‘baza_de_date_wordpress_studiu‘;10

11 --12 -- Table structure for table ‘wp_commentmeta‘13 --14 CREATE TABLE IF NOT EXISTS ‘wp_commentmeta‘ (15 ‘meta_id‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,16 ‘comment_id‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,17 ‘meta_key‘ varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT ց

(cont.)NULL,18 ‘meta_value‘ l o n g t e x t COLLATE utf8mb4_unicode_ci,19 PRIMARY KEY (‘meta_id‘),

1 Varianta4.3, revizia33553, dintrunk.

53

54 3 Diverse proiectemysql

20 KEY ‘comment_id‘ (‘comment_id‘),21 KEY ‘meta_key‘ (‘meta_key‘(191))22 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci AUTO INCREMENT =1;23

24 --25 -- Table structure for table ‘wp_comments‘26 --27 CREATE TABLE IF NOT EXISTS ‘wp_comments‘ (28 ‘comment_ID‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,29 ‘comment_post_ID‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,30 ‘comment_author‘ t i n y t e x t COLLATE utf8mb4_unicode_ci NOT NULL,31 ‘comment_author_email‘ varchar(100) COLLATE utf8mb4_unicode_ciց

(cont.) NOT NULL DEFAULT ’’,32 ‘comment_author_url‘ varchar(200) COLLATE utf8mb4_unicode_ci ց

(cont.)NOT NULL DEFAULT ’’,33 ‘comment_author_IP‘ varchar(100) COLLATE utf8mb4_unicode_ci ց

(cont.)NOT NULL DEFAULT ’’,34 ‘comment_date‘ date t ime NOT NULL DEFAULT ’0000-00-00 00:00:00’ց

(cont.),35 ‘comment_date_gmt‘ date t ime NOT NULL DEFAULT ’0000-00-00 ց

(cont.)00:00:00’,36 ‘comment_content‘ t e x t COLLATE utf8mb4_unicode_ci NOT NULL,37 ‘comment_karma‘ i n t (11) NOT NULL DEFAULT ’0’,38 ‘comment_approved‘ varchar(20) COLLATE utf8mb4_unicode_ci NOT ց

(cont.)NULL DEFAULT ’1’,39 ‘comment_agent‘ varchar(255) COLLATE utf8mb4_unicode_ci NOT ց

(cont.)NULL DEFAULT ’’,40 ‘comment_type‘ varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.) DEFAULT ’’,41 ‘comment_parent‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,42 ‘user_id‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,43 PRIMARY KEY (‘comment_ID‘),44 KEY ‘comment_post_ID‘ (‘comment_post_ID‘),45 KEY ‘comment_approved_date_gmt‘ (‘comment_approved‘,‘ց

(cont.)comment_date_gmt‘),46 KEY ‘comment_date_gmt‘ (‘comment_date_gmt‘),47 KEY ‘comment_parent‘ (‘comment_parent‘),48 KEY ‘comment_author_email‘ (‘comment_author_email‘(10))49 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci AUTO INCREMENT =2;50

51 --52 -- Table structure for table ‘wp_links‘53 --54 CREATE TABLE IF NOT EXISTS ‘wp_links‘ (55 ‘link_id‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,56 ‘link_url‘ varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,57 ‘link_name‘ varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,58 ‘link_image‘ varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,

3.1 O bazawp 55

59 ‘link_target‘ varchar(25) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,60 ‘link_description‘ varchar(255) COLLATE utf8mb4_unicode_ci NOTց

(cont.) NULL DEFAULT ’’,61 ‘link_visible‘ varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.) DEFAULT ’Y’,62 ‘link_owner‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’1’,63 ‘link_rating‘ i n t (11) NOT NULL DEFAULT ’0’,64 ‘link_updated‘ date t ime NOT NULL DEFAULT ’0000-00-00 00:00:00’ց

(cont.),65 ‘link_rel‘ varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,66 ‘link_notes‘ mediumtext COLLATE utf8mb4_unicode_ci NOT NULL,67 ‘link_rss‘ varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,68 PRIMARY KEY (‘link_id‘),69 KEY ‘link_visible‘ (‘link_visible‘)70 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci AUTO INCREMENT =1;71

72 --73 -- Table structure for table ‘wp_options‘74 --75 CREATE TABLE IF NOT EXISTS ‘wp_options‘ (76 ‘option_id‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,77 ‘option_name‘ varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,78 ‘option_value‘ l o n g t e x t COLLATE utf8mb4_unicode_ci NOT NULL,79 ‘autoload‘ varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’yes’,80 PRIMARY KEY (‘option_id‘),81 UNIQUE KEY ‘option_name‘ (‘option_name‘)82 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci AUTO INCREMENT =141;83

84 --85 -- Table structure for table ‘wp_postmeta‘86 --87 CREATE TABLE IF NOT EXISTS ‘wp_postmeta‘ (88 ‘meta_id‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,89 ‘post_id‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,90 ‘meta_key‘ varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT ց

(cont.)NULL,91 ‘meta_value‘ l o n g t e x t COLLATE utf8mb4_unicode_ci,92 PRIMARY KEY (‘meta_id‘),93 KEY ‘post_id‘ (‘post_id‘),94 KEY ‘meta_key‘ (‘meta_key‘(191))95 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci AUTO INCREMENT =22;96

97 --98 -- Table structure for table ‘wp_posts‘99 --

100 CREATE TABLE IF NOT EXISTS ‘wp_posts‘ (

56 3 Diverse proiectemysql

101 ‘ID‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,102 ‘post_author‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,103 ‘post_date‘ date t ime NOT NULL DEFAULT ’0000-00-00 00:00:00’,104 ‘post_date_gmt‘ date t ime NOT NULL DEFAULT ’0000-00-00 00:00:00ց

(cont.)’,105 ‘post_content‘ l o n g t e x t COLLATE utf8mb4_unicode_ci NOT NULL,106 ‘post_title‘ t e x t COLLATE utf8mb4_unicode_ci NOT NULL,107 ‘post_excerpt‘ t e x t COLLATE utf8mb4_unicode_ci NOT NULL,108 ‘post_status‘ varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’publish’,109 ‘comment_status‘ varchar(20) COLLATE utf8mb4_unicode_ci NOT ց

(cont.)NULL DEFAULT ’open’,110 ‘ping_status‘ varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’open’,111 ‘post_password‘ varchar(20) COLLATE utf8mb4_unicode_ci NOT ց

(cont.)NULL DEFAULT ’’,112 ‘post_name‘ varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,113 ‘to_ping‘ t e x t COLLATE utf8mb4_unicode_ci NOT NULL,114 ‘pinged‘ t e x t COLLATE utf8mb4_unicode_ci NOT NULL,115 ‘post_modified‘ date t ime NOT NULL DEFAULT ’0000-00-00 00:00:00ց

(cont.)’,116 ‘post_modified_gmt‘ date t ime NOT NULL DEFAULT ’0000-00-00 ց

(cont.)00:00:00’,117 ‘post_content_filtered‘ l o n g t e x t COLLATE utf8mb4_unicode_ci ց

(cont.)NOT NULL,118 ‘post_parent‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,119 ‘guid‘ varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,120 ‘menu_order‘ i n t (11) NOT NULL DEFAULT ’0’,121 ‘post_type‘ varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’post’,122 ‘post_mime_type‘ varchar(100) COLLATE utf8mb4_unicode_ci NOT ց

(cont.)NULL DEFAULT ’’,123 ‘comment_count‘ b i g i n t (20) NOT NULL DEFAULT ’0’,124 PRIMARY KEY (‘ID‘),125 KEY ‘post_name‘ (‘post_name‘(191)),126 KEY ‘type_status_date‘ (‘post_type‘,‘post_status‘,‘post_dateց

(cont.)‘,‘ID‘),127 KEY ‘post_parent‘ (‘post_parent‘),128 KEY ‘post_author‘ (‘post_author‘)129 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci AUTO INCREMENT =8;130

131 --132 -- Table structure for table ‘wp_term_relationships‘133 --134 CREATE TABLE IF NOT EXISTS ‘wp_term_relationships‘ (135 ‘object_id‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,136 ‘term_taxonomy_id‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,137 ‘term_order‘ i n t (11) NOT NULL DEFAULT ’0’,138 PRIMARY KEY (‘object_id‘,‘term_taxonomy_id‘),139 KEY ‘term_taxonomy_id‘ (‘term_taxonomy_id‘)

3.1 O bazawp 57

140 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci;141

142 --143 -- Table structure for table ‘wp_term_taxonomy‘144 --145 CREATE TABLE IF NOT EXISTS ‘wp_term_taxonomy‘ (146 ‘term_taxonomy_id‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT ց

(cont.),147 ‘term_id‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,148 ‘taxonomy‘ varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,149 ‘description‘ l o n g t e x t COLLATE utf8mb4_unicode_ci NOT NULL,150 ‘parent‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,151 ‘count‘ b i g i n t (20) NOT NULL DEFAULT ’0’,152 PRIMARY KEY (‘term_taxonomy_id‘),153 UNIQUE KEY ‘term_id_taxonomy‘ (‘term_id‘,‘taxonomy‘),154 KEY ‘taxonomy‘ (‘taxonomy‘)155 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci AUTO INCREMENT =3;156

157 --158 -- Table structure for table ‘wp_terms‘159 --160 CREATE TABLE IF NOT EXISTS ‘wp_terms‘ (161 ‘term_id‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,162 ‘name‘ varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,163 ‘slug‘ varchar(200) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,164 ‘term_group‘ b i g i n t (10) NOT NULL DEFAULT ’0’,165 PRIMARY KEY (‘term_id‘),166 KEY ‘slug‘ (‘slug‘(191)),167 KEY ‘name‘ (‘name‘(191))168 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci AUTO INCREMENT =3;169

170 --171 -- Table structure for table ‘wp_usermeta‘172 --173 CREATE TABLE IF NOT EXISTS ‘wp_usermeta‘ (174 ‘umeta_id‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,175 ‘user_id‘ b i g i n t (20) unsigned NOT NULL DEFAULT ’0’,176 ‘meta_key‘ varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT ց

(cont.)NULL,177 ‘meta_value‘ l o n g t e x t COLLATE utf8mb4_unicode_ci,178 PRIMARY KEY (‘umeta_id‘),179 KEY ‘user_id‘ (‘user_id‘),180 KEY ‘meta_key‘ (‘meta_key‘(191))181 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci AUTO INCREMENT =21;182

183 --184 -- Table structure for table ‘wp_users‘

58 3 Diverse proiectemysql

185 --186 CREATE TABLE IF NOT EXISTS ‘wp_users‘ (187 ‘ID‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,188 ‘user_login‘ varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,189 ‘user_pass‘ varchar(64) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,190 ‘user_nicename‘ varchar(50) COLLATE utf8mb4_unicode_ci NOT ց

(cont.)NULL DEFAULT ’’,191 ‘user_email‘ varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,192 ‘user_url‘ varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL ց

(cont.)DEFAULT ’’,193 ‘user_registered‘ date t ime NOT NULL DEFAULT ’0000-00-00 ց

(cont.)00:00:00’,194 ‘user_activation_key‘ varchar(60) COLLATE utf8mb4_unicode_ci ց

(cont.)NOT NULL DEFAULT ’’,195 ‘user_status‘ i n t (11) NOT NULL DEFAULT ’0’,196 ‘display_name‘ varchar(250) COLLATE utf8mb4_unicode_ci NOT ց

(cont.)NULL DEFAULT ’’,197 PRIMARY KEY (‘ID‘),198 KEY ‘user_login_key‘ (‘user_login‘),199 KEY ‘user_nicename‘ (‘user_nicename‘)200 ) ENGINE=InnoDB DEFAULT CHARSET =utf8mb4 COLLATE =ց

(cont.)utf8mb4_unicode_ci AUTO INCREMENT =2;201

202 --203 -- Table structure for table ‘cds‘204 --205 CREATE TABLE IF NOT EXISTS ‘cds‘ (206 ‘titel‘ varchar(200) COLLATE latin1_general_ci DEFAULT NULL ,207 ‘interpret‘ varchar(200) COLLATE latin1_general_ci DEFAULT ց

(cont.)NULL,208 ‘jahr‘ i n t (11) DEFAULT NULL ,209 ‘id‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,210 PRIMARY KEY (‘id‘)211 ) ENGINE=MyISAM DEFAULT CHARSET =latin1 COLLATE =ց

(cont.)latin1_general_ci AUTO INCREMENT =7;212

213 --214 -- Table structure for table ‘pma_bookmark‘215 --216 CREATE TABLE IF NOT EXISTS ‘pma_bookmark‘ (217 ‘id‘ i n t (11) NOT NULL AUTO INCREMENT,218 ‘dbase‘ varchar(255) COLLATE utf8_bin NOT NULL DEFAULT ’’,219 ‘user‘ varchar(255) COLLATE utf8_bin NOT NULL DEFAULT ’’,220 ‘label‘ varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT ’’,221 ‘query‘ t e x t COLLATE utf8_bin NOT NULL,222 PRIMARY KEY (‘id‘)223 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)Bookmarks’ AUTO INCREMENT =1;224

225 --226 -- Table structure for table ‘pma_column_info‘

3.1 O bazawp 59

227 --228 CREATE TABLE IF NOT EXISTS ‘pma_column_info‘ (229 ‘id‘ i n t (5) unsigned NOT NULL AUTO INCREMENT,230 ‘db_name‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,231 ‘table_name‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,232 ‘column_name‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’ց

(cont.),233 ‘comment‘ varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT ’’,234 ‘mimetype‘ varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT ’’ց

(cont.),235 ‘transformation‘ varchar(255) COLLATE utf8_bin NOT NULL ց

(cont.)DEFAULT ’’,236 ‘transformation_options‘ varchar(255) COLLATE utf8_bin NOT ց

(cont.)NULL DEFAULT ’’,237 PRIMARY KEY (‘id‘),238 UNIQUE KEY ‘db_name‘ (‘db_name‘,‘table_name‘,‘column_name‘)239 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)Column information for phpMyAdmin’ AUTO INCREMENT =1;240

241 --242 -- Table structure for table ‘pma_designer_coords‘243 --244 CREATE TABLE IF NOT EXISTS ‘pma_designer_coords‘ (245 ‘db_name‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,246 ‘table_name‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,247 ‘x‘ i n t (11) DEFAULT NULL ,248 ‘y‘ i n t (11) DEFAULT NULL ,249 ‘v‘ tinyint(4) DEFAULT NULL ,250 ‘h‘ tinyint(4) DEFAULT NULL ,251 PRIMARY KEY (‘db_name‘,‘table_name‘)252 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)Table coordinates for Designer’;253

254 --255 -- Table structure for table ‘pma_history‘256 --257 CREATE TABLE IF NOT EXISTS ‘pma_history‘ (258 ‘id‘ b i g i n t (20) unsigned NOT NULL AUTO INCREMENT,259 ‘username‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,260 ‘db‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,261 ‘table‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,262 ‘timevalue‘ t imestamp NOT NULL DEFAULT CURRENT TIMESTAMP ON ց

(cont.)UPDATE CURRENT TIMESTAMP ,263 ‘sqlquery‘ t e x t COLLATE utf8_bin NOT NULL,264 PRIMARY KEY (‘id‘),265 KEY ‘username‘ (‘username‘,‘db‘,‘table‘,‘timevalue‘)266 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)SQL history for phpMyAdmin’ AUTO INCREMENT =1;267

268 --269 -- Table structure for table ‘pma_pdf_pages‘270 --271 CREATE TABLE IF NOT EXISTS ‘pma_pdf_pages‘ (272 ‘db_name‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,

60 3 Diverse proiectemysql

273 ‘page_nr‘ i n t (10) unsigned NOT NULL AUTO INCREMENT,274 ‘page_descr‘ varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT ’ց

(cont.)’,275 PRIMARY KEY (‘page_nr‘),276 KEY ‘db_name‘ (‘db_name‘)277 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)PDF relation pages for phpMyAdmin’ AUTO INCREMENT =1;278

279 --280 -- Table structure for table ‘pma_recent‘281 --282 CREATE TABLE IF NOT EXISTS ‘pma_recent‘ (283 ‘username‘ varchar(64) COLLATE utf8_bin NOT NULL,284 ‘tables‘ t e x t COLLATE utf8_bin NOT NULL,285 PRIMARY KEY (‘username‘)286 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)Recently accessed tables’;287

288 --289 -- Table structure for table ‘pma_relation‘290 --291 CREATE TABLE IF NOT EXISTS ‘pma_relation‘ (292 ‘master_db‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,293 ‘master_table‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’ց

(cont.)’,294 ‘master_field‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’ց

(cont.)’,295 ‘foreign_db‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,296 ‘foreign_table‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ց

(cont.)’’,297 ‘foreign_field‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ց

(cont.)’’,298 PRIMARY KEY (‘master_db‘,‘master_table‘,‘master_field‘),299 KEY ‘foreign_field‘ (‘foreign_db‘,‘foreign_table‘)300 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)Relation table’;301

302 --303 -- Table structure for table ‘pma_table_coords‘304 --305 CREATE TABLE IF NOT EXISTS ‘pma_table_coords‘ (306 ‘db_name‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,307 ‘table_name‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,308 ‘pdf_page_number‘ i n t (11) NOT NULL DEFAULT ’0’,309 ‘x‘ f l o a t unsigned NOT NULL DEFAULT ’0’,310 ‘y‘ f l o a t unsigned NOT NULL DEFAULT ’0’,311 PRIMARY KEY (‘db_name‘,‘table_name‘,‘pdf_page_number‘)312 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)Table coordinates for phpMyAdmin PDF output’;313

314 --315 -- Table structure for table ‘pma_table_info‘316 --317 CREATE TABLE IF NOT EXISTS ‘pma_table_info‘ (

3.1 O bazawp 61

318 ‘db_name‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,319 ‘table_name‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ’’,320 ‘display_field‘ varchar(64) COLLATE utf8_bin NOT NULL DEFAULT ց

(cont.)’’,321 PRIMARY KEY (‘db_name‘,‘table_name‘)322 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)Table information for phpMyAdmin’;323

324 --325 -- Table structure for table ‘pma_table_uiprefs‘326 --327 CREATE TABLE IF NOT EXISTS ‘pma_table_uiprefs‘ (328 ‘username‘ varchar(64) COLLATE utf8_bin NOT NULL,329 ‘db_name‘ varchar(64) COLLATE utf8_bin NOT NULL,330 ‘table_name‘ varchar(64) COLLATE utf8_bin NOT NULL,331 ‘prefs‘ t e x t COLLATE utf8_bin NOT NULL,332 ‘last_update‘ t imestamp NOT NULL DEFAULT CURRENT TIMESTAMP ON ց

(cont.)UPDATE CURRENT TIMESTAMP ,333 PRIMARY KEY (‘username‘,‘db_name‘,‘table_name‘)334 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)Tables’’ UI preferences’;335

336 --337 -- Table structure for table ‘pma_tracking‘338 --339 CREATE TABLE IF NOT EXISTS ‘pma_tracking‘ (340 ‘db_name‘ varchar(64) COLLATE utf8_bin NOT NULL,341 ‘table_name‘ varchar(64) COLLATE utf8_bin NOT NULL,342 ‘version‘ i n t (10) unsigned NOT NULL,343 ‘date_created‘ date t ime NOT NULL,344 ‘date_updated‘ date t ime NOT NULL,345 ‘schema_snapshot‘ t e x t COLLATE utf8_bin NOT NULL,346 ‘schema_sql‘ t e x t COLLATE utf8_bin,347 ‘data_sql‘ l o n g t e x t COLLATE utf8_bin,348 ‘tracking‘ s e t(’UPDATE’,’REPLACE’,’INSERT’,’DELETE’,’TRUNCATE’ց

(cont.),’CREATE DATABASE’,’ALTER DATABASE’,’DROP DATABASE’,’ց

(cont.)CREATE TABLE’,’ALTER TABLE’,’RENAME TABLE’,’DROP TABLE’,ց

(cont.)’CREATE INDEX’,’DROP INDEX’,’CREATE VIEW’,’ALTER VIEW’,’ց

(cont.)DROP VIEW’) COLLATE utf8_bin DEFAULT NULL ,349 ‘tracking_active‘ i n t (1) unsigned NOT NULL DEFAULT ’1’,350 PRIMARY KEY (‘db_name‘,‘table_name‘,‘vers ion‘)351 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin ROW FORMATց

(cont.)=COMPACT COMMENT =’Database changes tracking for ց

(cont.)phpMyAdmin’;352

353 --354 -- Table structure for table ‘pma_userconfig‘355 --356 CREATE TABLE IF NOT EXISTS ‘pma_userconfig‘ (357 ‘username‘ varchar(64) COLLATE utf8_bin NOT NULL,358 ‘timevalue‘ t imestamp NOT NULL DEFAULT CURRENT TIMESTAMP ON ց

(cont.)UPDATE CURRENT TIMESTAMP ,359 ‘config_data‘ t e x t COLLATE utf8_bin NOT NULL,360 PRIMARY KEY (‘username‘)

62 3 Diverse proiectemysql

361 ) ENGINE=MyISAM DEFAULT CHARSET =utf8 COLLATE =utf8_bin COMMENT=’ց

(cont.)User preferences storage for phpMyAdmin’;362

363 --364 -- Table structure for table ‘user_pwd‘365 --366 CREATE TABLE IF NOT EXISTS ‘user_pwd‘ (367 ‘name‘ char(30) COLLATE latin1_general_ci NOT NULL DEFAULT ’’,368 ‘pass‘ char(32) COLLATE latin1_general_ci NOT NULL DEFAULT ’’,369 PRIMARY KEY (‘name‘)370 ) ENGINE=MyISAM DEFAULT CHARSET =latin1 COLLATE =latin1_general_ciց

(cont.);

Datele pentru popularea bazeiwp sunt disponibile on-line la adresa [41].

VA URMA

Referinte Bibliografice

1. AUTO_INCREMENT, folosirea luiNULL,http://dev.mysql.com/doc/refman/5.6/en/example-auto-increment.html

2. Biblioteca (How to query a list of books),http://www.octag.ro/pag/pages/software.php

3. Biblioteca, baza de date (csv),http://www.octag.ro/pag/files/biblioteca_bd.csv

4. Biblioteca, baza de date (txt),http://www.octag.ro/pag/files/biblioteca_bd.txt

5. Blog,http://codex.wordpress.org/Introduction_to_Blogging

6. Componenta,software,https://en.wikipedia.org/wiki/Plug-in_%28computing%29

7. CSV, format de fisiere,https://en.wikipedia.org/wiki/Comma-separated_values

8. EER, model,https://en.wikipedia.org/wiki/Enhanced_entity%E2%80%93relationship_model

9. ER, model,https://en.wikipedia.org/wiki/Entity%E2%80%93relationship_model

10. Exportul datelor,https://en.wikipedia.org/wiki/Database_dump

11. JDBC,https://en.wikipedia.org/wiki/Java_Database_Connectivity

12. LAMP,https://en.wikipedia.org/wiki/LAMP_%28software_bundle%29

13. Mapare, date,https://en.wikipedia.org/wiki/Data_mapping

14. Microsoft Excel,https://en.wikipedia.org/wiki/Microsoft_Excel

15. Mustafa, O.G.: Note de laborator: C++, Vers. 2.0. DAL, Craiova (2012)On-line la adresa:under construction

16. Mustafa, O.G.: Elemente de Transact-SQL, Programarea bazelor de dateın tsql. DAL,Craiova (2012)On-line la adresa:http://www.octag.ro/pag/files/tsql.pdf

17. MySQL,https://en.wikipedia.org/wiki/MySQL

63

64 Referinte Bibliografice

18. MySQL, descarcarea sistemului,http://dev.mysql.com/downloads/windows/installer/5.6.html

19. MySQL, manualul oficial (versiunea5.6) on-line,http://dev.mysql.com/doc/refman/5.6/en/index.html

20. MySQL, tutorial de instalare,http://dev.mysql.com/doc/refman/5.7/en/mysql-installer-gui.html

21. MySQL, Oracle,http://www.oracle.com/us/products/mysql/overview/index.html

22. .NET,https://en.wikipedia.org/wiki/.NET_Framework

23. ODBC,https://en.wikipedia.org/wiki/Open_Database_Connectivity

24. Perl,https://en.wikipedia.org/wiki/Perl

25. phpMyAdmin,https://en.wikipedia.org/wiki/PhpMyAdmin

26. Port, conectare la server,https://en.wikipedia.org/wiki/Port_%28computer_networking%29

27. Python, descarcare,https://www.python.org/downloads/

28. Radu, C., Ionascu, C.M., Murarita, I.: Statistica teoretica, Editia a II-a revizuita. Ed. Univer-sitaria, Craiova (2013)

29. Ray, D.S., Ray, E.J.: UNIXın imagini. Teora, Bucuresti (2004)30. SCHEMA,

http://dev.mysql.com/doc/refman/5.6/en/create-database.html31. SGBD,

https://en.wikipedia.org/wiki/Database32. x64, arhitectura,

https://en.wikipedia.org/wiki/X86-6433. x86, arhitectura,

https://en.wikipedia.org/wiki/X8634. XAMPP,

https://en.wikipedia.org/wiki/XAMPP35. XAMPP, descarcare,

https://www.apachefriends.org/index.html36. Widenius, M., Axmark, D.: MySQL reference manual, Documentation from the source.

O’Reilly, Beijing (2003)37. Windows, instalator,

https://en.wikipedia.org/wiki/Windows_Installer38. Windows, serviciu,

https://en.wikipedia.org/wiki/Windows_service39. WordPress,

https://wordpress.org40. WP, baza, structura,

http://www.octag.ro/pag/files/baza_wp.sql41. WP, baza, populare,

http://www.octag.ro/pag/files/baza_wp_date.sql

Index

Axmark, David, 1

client, viicomentariu, 32componenta, 44conector, 3CSV, 44

excel, 44, 45

JDBC, 4

manualele MySQL, 4model entitate-relatie, 4MySQL, viimysql, vii, 1–5, 31–33, 40, 44, 45, 53

.NET, 3

ODBC, 3

Perl, 41

pl, 41port, 4py, 1Python, 1, 3

root, 4

Sakila, 4server, viiSGBD, 31, 53SQL, 32

tehnologii de baze de date, viitsql, 4, 32

Widenius, Michael, 1WordPress, vii, 53workbench, 4, 5, 31Workbench, 3World, 4wp, 53

65


Recommended