Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


MySQL - Ce este MySQL? - comenzi SQL

sql



+ Font mai mare | - Font mai mic



MySQL

Ce este MySQL?



Inca inaintea erei calculatoarelor oamenii foloseau baze de date precum lista cu numerele de telefon, datele unei firme. Astazi bazele de date sunt computerizate incepand cu cele personale si pana la cele ale firmelor. Din aceste motive industria bazelor de date s-a dezvoltat la fel de mult ca si restul domeniilor din industria calculatoarelor.

In anii '60 Edgar F. Codd, cercetator la I.B.M. a studiat posibilitatea ameliorarii modului de stocare a datelor in fisiere, deoarece existenta informatiilor redundante predispunea la erori greu de depistat. In 1970 a publicat un articol deosebit de important, pentru ca a deschis noi orizonturi in stocarea bazelor de date si mai ales a schimbat complet conceptiile privind structura acestora, "A Relational Model of Data for Large Shared Databooks"

MySQL a fost dezvoltat de catre TcX in 1996. L-au creat pentru ca aveau nevoie de o baza de date relationala care sa gestioneze cantitati mari de date pe un sistem hard relativ ieftin. Nimic din ce exista nu le-a oferit solutii pentru problemele lor.

Deseori se confunda MySQL cu SQL (Structured Query Language) dezvoltat de catre IBM. Nu este o forma a acestui limbaj, dar este un sistem ce foloseste un limbaj de interogare structurat (SQL) pentru manipularea, crearea, si afisarea datelor. MyQSL este un program ce gestioneaza bazele de date. SQL este un limbaj de programare ce este folosit de catre MySQL pentru lucrul cu bazele de date, la fel cum Excel foloseste Visual Basic.

Alte aplicatii care gestioneaza baze de date sunt SQL Server de la Microsoft, Sybase Adaptive Server, DB2.

MySQL este mai mult decat o baza de date. Este un sistem de gestiune a bazelor de date, controleaza cine si in ce fel poate accesa datele.

MySQL este o aplicatie de tip server care este capabila sa execute un numar mare de comenzi SQL. Ceea ce e foarte avantajos este faptul ca este gratuita si poate fi instalata pe calculatoare functionand sub diferite sisteme de operare (Windows, Linux, Unix etc.)

Operatiile care se efectueaza cel mai des intr-un asemenea sistem de gestiune de baze de date relationale sunt:

conectarea la server - utilizatorii se conecteaza la serverul de baze de date si trimit cereri

afisarea bazelor de date existente

selectarea unei baze de date cu care trebuie sa lucreze

afisarea tabelelor continute intr-o baza de date

crearea unei baze de date

crearea tabelelor dintr-o baze de date si precizarea campurilor acestor tabele

popularea tabelelor cu date

inserarea, modificarea, regasirea sau stergerea datelor din tabele

efectuarea de interogari

deconectarea de la serverul de baze de date

Serverul interogheaza bazele de date si formuleaza raspunsul pe care-l trimite utilizatorilor.

Setul de comenzi SQL - scurta prezentare

Acest subcapitol contine o scurta prezentare a celor mai uzuale comenzi SQL, cele pe care le-am folosit cel mai mult.

SELECT - este comanda cea mai utilizata, este folosita pentru obtinerea datelor din bazele de date.

INSERT - utilizata pentru a introduce noi inregistrari in baza de date.

UPDATE - utilizata pentru a schimba inregistrari existente.

DELETE - utilizata pentru a sterge inregistrarile nedorite din tabelele bazelor de date respective.

CREATE - utilizata pentru a crea o baza de date sau un tabel.

Acestea sunt o parte a comenzilor SQL. Pentru o lista mai completa de comenzi se recomanda - https://www.mysql.com/

Descrierea pe scurt a comenzilor

1. SELECT

Sintaxa

SELECT [DISTINCT | ALL] <select_list>

[FROM <table_source>

[WHERE <search_condition> ]

[ORDER BY order_by_expression [ASC | DESC] ]

In realitate sintaxa este mult mai cuprinzatoare, dar ne vom referi doar la cateva din clauzele SELECT.

ALL - specifica ca liniile duplicate pot aparea in setul de rezultate. ALL este valoarea implicita.

DISTINCT - specifica ca numai liniile unice pot aparea in setul de rezultate.

<select_list> - coloanele care vor fi selectate pentru setul de rezultate. Lista selectata este o serie de expresii separate de virgule.

FROM specifica tabela (tabelele) din care se selecteaza linii. Clauza FROM este obligatorie cu exceptia cand lista selectata contine doar constrangeri, constante, variabile si expresii aritmetice (nu nume de coloane). Argumentul lui FROM este <table_source> care specifica tabele, view-urile, tabelele derivate si tabelele unite pentru instructiunea SELECT.

WHERE - specifica o conditie de cautare pentru a restrictiona liniile returnate. Are ca si argument <search_condition> care restrictioneaza liniile returnate in setul de rezultate prin folosirea predicatelor. Nu exista limite in numarul predicatelor care pot fi incluse intr-o conditie de cautare.

ORDER BY specifica sortarea pentru setul de rezultate. Definitiile subquery-urilor si view-urilor nu pot include o clauza ORDER BY. Argumentele acestei clauze sunt order_by_expression, ASC si DESC. Argumentul order_by_expression specifica coloana pe care sa se sorteze datele. O coloana de sort poate fi specificata ca un nume sau alias de coloana, o expresie, sau un intreg pozitiv reprezentand pozitia numelui, aliasului sau expresiei in lista selectata. Pot fi specificate mai multe coloane de sortat. Ordinea coloanelor de sortat in clauza ORDER BY defineste organizarea setului de rezultate sortat. Coloanele ntext, text sau image nu pot fi folosite intr-o clauza ORDER BY. Argumentul ASC specifica ca valorile dintr-o coloana specificata trebuie sortate in ordine crescatoare. Argumentul DESC specifica ca valorile dintr-o coloana specificata trebuie sortate in ordine descrescatoare. Valorile nule sunt tratate ca cele mai mici valori posibile.

Ordinea clauzelor in instructiunea SELECT este semnificativa. Oricare din clauzele optionale pot fi omise, dar cand sunt folosite, ele trebuie sa apara in ordinea descrisa in sintaxa.

2. INSERT

Sintaxa

INSERT [INTO] table_name [(column_list)]

VALUES (column_list )

Argumentele acestei comenzi sunt :

[INTO] cuvant cheie optional care poate fi folosit intre INSERT si tabela tinta.

table_name numele unei tabele care receptioneaza date.

(column_list) o lista de una sau mai multe coloane in care se insereaza date. column_list trebuie sa fie incluse in paranteze si delimitate de virgule.

VALUES - introduce lista de valori a datelor pentru a fi inserate. Trebuie sa fie o valoare a datei pentru fiecare coloana in column_list (daca este specificata) sau in tabela. Lista de valori trebuie inclusa in paranteze.

3. UPDATE

Sintaxa

UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1=expr1, [column_name2=expr2, ][WHERE where_definition][LIMIT #]

Argumentele acestei comenzi sunt :

table_name - numele tabelei care se modifica.

SET - specifica lista numelor coloanei sau variabilei pentru a fi modificate.

column_name1 - este o coloana care contine date pentru a fi modificate.

expr1, expr2, sunt variabile, valori literale, expresii sau o instructiuni incluse in paranteze returneaza fiecare cate o singura valoare. Valoarea returnata inlocuieste valoarea existenta in column_name.

DELETE

Sintaxa

DELETE FROM table_name [WHERE where_definition]

Argumentele acestei comenzi sunt :

table_name - este numele tabelei din care sunt sterse linii.

WHERE - specifica conditiile folosite pentru a limita numarul de linii care sa fie sterse. Daca clauza WHERE nu este furnizata, DELETE sterge toate liniile din tabela. Exista doua forme a operatiei de stergere bazate pe ce este specificat in clauza WHERE.

5. CREATE

Sintaxa

1. CREATE TABLE table_name [(create_definition)] - creaza o noua tabela in baza de date selectata.

2. CREATE DATABASE database_name - creaza o baza de date noua.

Argumentele acestei comenzi sunt :

Table_name - numele tabelei care se creaza

create_definition - definirea campurilor

database_name - numele bazei de date ce se creaza.

Comenzile au fost descrise pe scurt, in realitate ele sunt mult mai vaste. M-am oprit aici doar la minimul necesar pentru realizarea unei aplicatii simple. In aplicatie am utilizat doar o parte din aceste comenzi si numai cu optiunile specificate mai sus.

3. Baza de date relationala

O baza de date relationala este formata din tabele care sunt legate intre ele prin anumite relatii. Aceste relatii sunt bazate pe o cheie ce este inregistrata intr-una dintre coloanele tabelului. De exemplu daca avem un tabel numit Comenzi unde sunt salvate datele necesare pentru o comanda, cum ar fi numarul comenzii, data la care s-a facut comanda, produsele comandate. O alta tabela numita Clienti care contine datele referitoare la un client, cum ar fi numele si adresa. Aceste doua tabele pot fi relationate.

Modelul de baza de data relationala a fost dezvoltat de catre E.F. Codd in 1970, lucru amintit putin mai sus. El a propus ca datele dintr-o baza de date sa fie stocate pe coloane in tabele care sa fie relationate unele de altele. Acest mod de gandire a fost foarte diferit de ceea ce se utiliza la vremea respectiva si a revolutionat crearea si utilizarea bazelor de date.

Sunt trei tipuri de relatii:

unu la unu

unu la mai multe

mai multe la mai multe.

Relatii unu la unu (1↔1)

Intr-o relatie de unu la unu fiecarei inregistrari din primul tabel ii corespunde o inregistrare din al doilea tabel si fiecarei inregistrari din al doilea ii corespunde o inregistrare din prima.


Relatii unu la mai multe (1→∞)

In acest caz, unei inregistrari din prima tabela ii corespund mai multe inregistrari din a doua, iar mai multor inregistrari din a doua ii corespund doar o inregistrare din prima tabela.

Relatii mai multe la mai multe (∞↔∞)

Astfel de relatii exista atunci cand pentru o inregistrare din primul tabel ii corespund mai multe din al doilea si pentru o inregistrare din al doilea ii corespund mai multe din prima.


4. Normalizarea bazei de date

Atunci cand se proiecteaza o baza de date punerea coloanelor in tabelele potrivite poate fi destul de greu si in final poate se obtin probleme de logica. Ideea veche de a tine toate datele intr-o singura tabela nu mai este eficienta intr-o baza de data relationala. A fost definit un set de reguli pentru a veni in ajutorul celor care proiecteaza baze de date. Aplicand aceste reguli asupra structurii se numeste normalizare.

Normalizarea face lucrurile mai usor de inteles. Oamenii au tendinta de a de a imparti ceva complicat in parti mai mici si mai simplu de intes. Acelasi lucru se intampla si in timpul normalizarii, structura este impartita in mai multe si mai simple. Un alt avantaj al normalizarii este spatiul. O baza de date normalizata ocupa mai putin spatiu pentru ca exista mai putina repetitie a datelor. Cel mai mare dezavantaj al normalizarii este timpul pe care il necesita. Multi considera ca nu am timpul necesar pentru a aduce baza de date la o forma normala, dar in cazul unei erori vor pierde mult mai mult timp pentru a face corectiile decat in cazul celei normalizate.

Sunt trei nivele in normalizare, la fiecare nivel baza de date se conformeaza unei forme normale.

Aceste forme se numesc:

forma normala unu

forma normala doi

forma normala trei

Daca o baza de date se incadreaza in regulile unei forme normale atunci spunem ca este normalizata la nivelul respectiv. De exemplu daca indeplineste regulile de la nivelul doi atunci spunem ca baza de date este de forma normala doi. Cateodata nu este o idee buna sa normalizam pana la cel mai inalt nivel pentru ca odata cu cresterea nivelului creste si complexitatea.

Forma normala unu

Sa presupunem ca avem un singur tabel in care retinem toate datele de care avem nevoie. Regula pentru forma normala unu este de a pune intr-o tabela separata acele coloane care se repeta. Aceasta regula este usor de urmat. Sa presupunem ca avem un tabel ce apartine unui magazin coloanele nume_produs1, pret_produs1, produs2, pret_produs2, produs3 si pret_produs3. Atunci vom crea un tabel separat numit Produse cu coloanele produs si pret, ce va fi legat printr-o relatie de unu la mai multe de tabelul principal.

Forma normala doi

Regula acestei forme se refera la separarea in alte tabele a datelor partial dependente, adica acele date care nu depind direct de cheia primara a tabelului.

Forma normala trei

Forma normala trei presupune eliminarea din tabele a acelor date care nu sunt identificate unic de cheia primara si crearea de noi tabele pentru ele astfel incat in fiecare tabel datele sa fie identificate unic de cheia primara.

O baza de date normalizata de forma a treia este flexibila, nu contine repetitii de date, este usor de folosit si de extins daca este cazul.

5. De ce MySQL?

MySQL este cel mai rapid sistem de gestiune a bazelor de date. Facand parte din categoria produselor "open source", deci pana ce nu se foloseste in scop comercial nu trebuie platit licenta pentru el.

MySQL este un server multifir. Multifir inseamna ca de fiecare data cand un utilizator stabileste o conexiune la server este creat un fir sau un proces pentru a deservi cererile clientului, astfel se obtine un server extrem de rapid.

Un alt avantaj al MySQL-ului este portabilitatea. A fost dezvoltat pentru aproape toate platformele, ceea ce inseamna ca nu trebuie schimbat nimic pentru a beneficia de avantajele disponibile cand se trece de la un sistem la altul.

6. Administrarea bazelor de date MySQL cu aplicatia phpMyAdmin

Crearea si administrarea bazelor de date de pe serverele SQL folosind comenzi SQL sunt operatii dificile, dificultatiile si sansele de a gresi fiind destul de mari. Mai mult, un client MySQL care ofera doar o interfata tip linie de comanda nu permite o privire de ansamblu asupra bazelor de date existente si asupra tabelelor, de aceea am ales aplicatia phpMyAdmin, astfel voi exemplifica mai jos, schitat, modul de folosire al acesteia.

6.1. Realizarea unei baze de date folosind phpMyAdmin

Dificultatile legate de crearea si administrarea unei baze de date folosind comenzi SQL sunt evidente si ele devin si mai mari in cazul scrierii comenzilor select. Scrierea comenzilor se realizeaza mai usor daca se foloseste o aplicatie dedicata dispunand de o interfata prietenoasa. Pentru serverul de baze de date MySQL, o astfel de aplicatie este phpMyAdmin.

Lucrul cu phpMyAdmin urmeaza etapele prezentate in continuare:

Interfata aplicatiei phpMyAdmin

Crearea sau selectarea unei baze de date

Dupa pornirea aplicatiei phpMyAdmin se indica numele noii baze de date si se apasa butonul Create pentru crearea unei noi baze de date sau seselecteaza in cadrul din stanga numele bazei active.

Crearea unei baze de date

Crearea tabelelor bazei de date

Crearea unui tabel in baza de date

In formularul de mai sus, test este numele noului tabel, iar 4 este numarul de campuri ale noului tabel. Dupa apasarea butonului Go, aplicatia afiseaza interfata necesara definirii campurilor tabelului.

Structura tabelului test

Dupa indicarea numelor campurilor, a tipului si a dimensiunilor acestora, se apasa butonul Save, rezultatul fiind crearea tabelului si afisarea frazei CREATE TABLE generata :

Afisarea frazei SQL si a structurii tabelului creat

Adaugarea de inregistrari

Odata tabelele create, folosind comanda Insert se pot adauga inregistrari intr-un tabel selectat in panoul din stanga. Rezultatul este crearea unei comenzi Insert, afisata de altfel si in fereastra corespunzatoare din phpMyAdmin

Adaugarea inregistrarilor

Vizualizarea frazei insert

Scrierea comenzilor SELECT

Complexitatea comenzii SELECT, mai ales in cazul selectarii dintr-o multime de tabele legate prin relatii, face scrierea acesteia deosebit de dificila. Fereastra afisata de phpMyAdmin poate insa servi la scrierea si testarea acestor comenzi. Odata testul reusit, comanda SQL afisata poate fi copiata intr-un fisier separat in vederea folosirii ei la scrierea scripturilor CGI.

Interfata pentru scrierea frazelor select

Modul de lucru cu phpMyAdmin a fost descris pe scurt, pentru a face doar o imagine a ceea ce inseamna aceasta aplicatie. In continuare voi prezenta descrierea realizarii site-ului "Turism in MARAMURESUL istoric"



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 2598
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved