Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Php


Qdidactic » stiinta & tehnica » informatica » php
MySql



MySql


MySql



MySQL este un sistem de gestiune a bazelor de date relational, produs de compania suedeza MySQLAB si distribuit sub Licenta Publica Generala GNU. Este cel mai popular SGBD open-source la ora actuala, fiind o componenta cheie a stivei LAMP (Linux, Apache, MySQL, PHP).

MySQL este componenta integrata a platformelor LAMP sau WAMP (Linux/Windows-Apache-MySQL-PHP/Perl/Python). Popularitatea sa ca aplicatie web este strans legata de cea a PHP-ului care este adesea combinat cu MySQL si denumit Duo-ul Dinamic. In multe carti de specialitate este precizat faptul ca MySQL este mult mai usor de invatat si folosit decat multe din aplicatiile de gestiune a bazelor de date, ca exemplu comanda de iesire fiind una simpla si evidenta: „exit” sau „quit”.




A.     Tipuri de date


Valori numerice:



Tip

De la:

Pana la:



TINYINT



SMALLINT



MEDIUMINT   



INT



BIGINT





Toate tipurile de mai sus au un atribut optional (nestandard), UNSIGNED. Se poate folosi acest atribut in definirea tipului de date al unei coloane atunci cand se doreste ca acel camp sa contina doar valori pozitive. Un camp de tip TINYINT va putea contine numere intre -128 si 127 in timp ce alt camp, TINYINT UNSIGNED va putea avea valori intre 0 si 255. La fel, pentru SMALLINT valorile sunt de la -32768 pana la 32767 in timp ce pentru SMALLINT UNSIGNED ele pot fi intre 0 si 65535.

Daca intr-un camp TINYINT care are valori intre -128 si 127 se introduce o valoare mai mica de -128 ea va fi convertita in cea mai mica valoare admisa.



Valori de tipul data / timp:



Tip

Format

DATETIME

'YYYY-MM-DD hh:mm:ss'

DATE

'YYYY-MM-DD'

TIMESTAMP

YYYYMMDDhhmmss

TIME

'hh:mm:ss'

YEAR  

'YYYY'



Tipul de camp TIMESTAMP ofera posibilitatea de a data automat operatiile de tip INSERT si UPDATE.


Valori de tip sir de caractere(string):



Tip

Marime maxima

Bytes

TINYTEXT sau TINYBLOB

-2^8-1

-255 bytes

TEXT sau BLOB

-2^16-1 (64K-1)

-65535 bytes

MEDIUMTEXT    sau MEDIUMBLOB

-2^24-1 (16M-1)

-16777215 bytes


LONGBLOB

-2^32-1 (4G-1)

-4294967295 bytes



Campul de tip BLOB poate contine o cantitate variabila de informatie, similar cu TEXT insa diferit printr-un singur aspect: cautarea intr-un camp BLOB este case sensitive (se face diferenta intre majuscule si minuscule), iar intr-un camp TEXT nu este. Tipul VARCHAR este similar tipului TEXT cu deosebirea ca intr-o coloana de tip VARCHAR putem specifica numarul maxim de caractere admis.




B.     Tipuri de tabele


Aplicatia pentru baze de date MySql accepta diferite tipuri de tabele (tipul unui tabel este denumit si motor de stocare). Desi fiecare tip de tabel are diferite caracteristici, modul in care se interactioneaza cu tabelele ramane, in general neschimbat.

Tipul:


o      MyISAM - tabelele de acest tip sunt potrivite pentru majoritatea aplicatiilor, deoarece permit rularea rapida a interogarilor SELECT si INSERT. Acest motor de stocare nu permite insa folosirea tranzactiilor.


o      InnoDB - accepta tranzactiile si ruleaza rapid actualizarile, dar foloseste mai mult spatiu pe server.



o      MEMORY (HEAP) - asigura cele mai bune performante deoarece stocheaza toate datele in memorie, nu in fisiere. Insa au dezavantaje foarte mari cum ar fi faptul ca pot contine numai coloane cu lungime fixa, nu permit folosirea optiunii AUTO_INCREMENT si datele se pierd in cazul caderii sistemului.


Pentru specificarea motorului de stocare la definirea unui tabel se adauga clauza ENGINE la sfarsitul instructiunii de creare:


CREATE TABLE nume_tabel (col1  tip_col, col2 tip-col ) ENGINE = INNODB;


Pentru a schimba tipul unui tabel existent se foloseste comanda ALTER:


ALTER TABLE nume_tabel ENGINE=MYISAM;




C.     Chei si indecsi


O cheie dintr-un tabel al bazei de date face parte din procesul de normalizare folosit pentru proiectarea bazelor de date mai complexe. Exista doua tipuri de chei: primare si straine. Fiecare tabel trebuie sa contina o singura cheie primara care poate fi legata de o cheie straina dintr-un alt tabel.

Cheia primara a unui tabel este o modalitate artificiala de referire a unei inregistrari si trebuie sa respecte urmatoarele reguli:


o      Trebuie sa aiba intotdeauna o valoare

o      Valoarea trebuie sa nu se schimbe niciodata

o      Valoarea trebuie sa fie unica pentru fiecare inregistrare din tabel


Indexul este un sistem special folosit de bazele de date pentru cresterea performantelor. Prin stabilirea unui index intr-un tabel putem spune ca cerem aplicatiei MySql sa acorde o atentie speciala coloanei respective. MySql creeaza fisiere suplimentare pentru stocarea si urmarirea eficienta a indecsilor. MySql permite folosirea a 16 indexuri pentru fiecare tabel (insa numarul maxim depinde si de tipul de tabel) , iar fiecare index poate include pana la 15 coloane.

Indecsii cresc viteza la citirile din bazele de date, dar scad viteza la actualizarea datelor, deoarece toate modificarile trebuie sa fie inregistrate si in indexuri. Se vor crea indecsi pentru coloanele folosite frecvent ca punct central pentru o uniune, folosite frecvent in clauzele WHERE si ORDER BY a interogarilor sau pentru coloanele care contin multe valori diferite, pe cand coloanele cu multe valori repetate nu ar trebui indexate.




D.     Comenzi MySql:



Comanda

Semnificatie

SHOW DATABASES

-afiseaza o lista cu numele bazelor de date existente

USE nume_bazei_de_date; 


SHOW TABLES;         

- afiseaza tabelele existente in baza curenta

SHOW COLUMNS;     


afiseaza informatii despre coloanele unui tabel

CREATE DATABASE numele_bazei;   

- creaza o baza de date cu numele respectiv


CREATE TABLE tabel_unu (camp_a TEXT);

creaza tabelul 'tabel_unu' cu un camp numit 'camp_a' al carui tip este TEXT

CREATE TABLE tabel_unu (camp_a TEXT, camp_b INT, camp_c TINYINT);           


creaza tabelul 'tabel_unu' cu un camp numit 'camp_a' al carui tip este TEXT, un camp numit 'camp_b' in care datele de pe coloana respectiva vor fi numere intregi si in campul 'camp_c' vor fi introduse doar numere intre -128 si 127

DROP TABLE tabel_unu;       

- sterge tabelul numit 'tabel_unu'

DROP DATABASE numele_bazei;      

sterge baza de date cu numele 'numele_bazei'

INSERT INTO tabel (camp1, camp2, camp3) VALUES (valoarea1, valoarea2, valoarea3);

- introduce in tabelul cu numele 'tabel', in 'campul1' 'valoarea1', in 'campul2' 'valoarea2' si in 'campul3' 'valoarea3'.

INSERT INTO tabel VALUES (valoarea1, valoarea2, valoarea3);  

- o varianta simplificata care se poate aplica doar cand introducem valori in toate campurile tabelului (nu se poate omite)

INSERT INTO tabel VALUES (valoarea1, valoarea2, '');     

identica cu comanda dinainte, doar ca in lipsa unei valori se pun ghilimele.

SELECT * FROM tabel;           


Afiseaza toate campurile din tabelul cu numele 'tabel'

SELECT campul1 FROM tabel;           


afiseaza continutul campului 'campul1' din tabelul 'tabel'

SELECT campul1, campul2 FROM tabel   ;

afiseaza continutul campurilor 'campul1' si 'campul2' din tabelul 'tabel'

SELECT * FROM tabel WHERE campul1 = 'valoare1';

afiseaza campurile a caror continut este la fel cu 'valoare1'

SELECT campul1, campul2 FROM tabel WHERE campul2 LIKE 'valoare2';      

cauta si afiseaza toate inregistrarile in care 'campul2' este asemanator cu 'valoare2'

SELECT campul1, campul2 FROM tabel WHERE campul2 LIKE 'valoare2%';   

cauta si afiseaza toate inregistrarile in care 'campul2' incepe cu 'valoare2'


SELECT campul1, campul2 FROM tabel WHERE campul2 LIKE '%valoare2';   

cauta si afiseaza toate inregistrarile in care 'campul2' se termina cu 'valoare2'

SELECT campul1, campul2 FROM tabel WHERE campul2 LIKE '%valoare2%';

cauta si afiseaza toate inregistrarile in care 'campul2' se aseamana cu 'valoare2' oriunde in cadrul textului.

SELECT * FROM tabel WHERE campul1=valoare1 AND campul2 LIKE '%valoare2%';

afiseaza toate campurile care contin 'valoarea1' si se asemana cu 'valoare2'

SELECT campul1, campul2 FROM tabel WHERE campul1 !=

valoarea3;


- cauta si afiseaza toate campurile care difera de 'valoarea3'


SELECT campul1, campul2 FROM tabel WHERE campul2 NOT LIKE 'valoarea3%';

cauta si afiseaza toate campurile care nu incep cu 'valoare3'

SELECT campul1 FROM tabel ORDER BY campul1 ASC;       

afiseaza continutul campului 'campul1' in ordine crescatoare

SELECT campul1, campul2 FROM tabel ORDER BY campul1 ASC, campul2 DESC;          

afiseaza continutul campului 1 in ordine crescatoare si campul 2 in ordine descrescatoare.

SELECT count(*) FROM tabel;


afiseaza cate inregistrari sunt in total in tabel

SELECT count (*) FROM tabel WHERE campul1=variabila1;

- cate inregistrari sunt in tabel al caror 'camp1' este 'variabila1'

SELECT camp1 FROM tabel GROUP BY camp1 ORDER BY camp1 ASC;     

afiseaza continutul campului 1 grupat dupa 'camp1' ascendent


SELECT * FROM tabel LIMIT 0,3;       

afiseaza din tabel incepand de la prima inregistrare inca 3.

SELECT * FROM tabel LIMIT 10,5;     

afiseaza incepand de la inregistrarea 10 inca 5 inregistrari din tabel

DELETE FROM tabel WHERE conditii;

sterge inregistrarea din tabel. Sintaxa este la fel ca la comanda SELECT.

UPDATE tabel SET coloana1='noua valoare a coloanei 1', coloana2='noua valoare a coloanei 2' WHERE conditii;

- pentru actualizarea continutului unei inregistrari din tabel. Sintaxa este la fel ca la comanda SELECT. (se sterge valoarea veche si se scrie cea noua)

ALTER TABLE tabel ADD dat TEXT;   

adaugare la tabelul existent a unei coloane numita 'dat' de tip text.

ALTER TABLE tabel CHANGE dat data TEXT;  

redenumeste coloana numita 'dat' cu numele 'data'

ALTER TABLE tabel CHANGE data data DATE;     

modifica tipul coloanei 'data' din 'TEXT' in coloana de tip 'DATE'

ALTER TABLE tabel ADD nr MEDIUMINT UNSIGNED AFTER coloana1;

- adauga o coloana numita 'nr' dupa 'coloana1' in tabelul 'tabel'



Pentru a administra bazele de date MySQL se poate folosi modul linie de comanda sau, prin descarcare de pe internet, o interfata grafica: MySQL Administrator si MySQL Query Browser. Un alt instrument de management al acestor baze de date este aplicatia gratuita, scrisa in PHP, phpMyAdmin.

MySQL poate fi rulat pe multe dintre platformele software existente: AIX, FreeBSD, GNU/Linux, Mac OS X, NetBSD, Solaris, SunOS, Windows 9x/NT/2000/XP/Vista.




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright

stiinta

Php



Access
Autocad
Baze de date
C
Calculatoare
Catia
Excel
Foxpro
Grafica design
Html
Internet
Java
Linux
Mathcad
Matlab
Oracle
Outlook
Photoshop
Php
Powerpoint
Retele calculatoare
Sql
Windows
Word

Referate pe aceeasi tema


Wamp Server
Structuri de control in PHP
MySql



Ramai informat
Informatia de care ai nevoie
Acces nelimitat la mii de documente, referate, lucrari. Online e mai simplu.

Contribuie si tu!
Adauga online proiectul sau referatul tau.