MySQL este cea mai populara aplicatie open-source de baze de date folosita cu PHP.
O baza de date de obicei contine una sau mai multe tabele, folosita pentru a stoca informatii pe categori.
Tabelele contin coloane si inregistrari (randuri) cu date.
Mai jos este un exemplu de tabel folosit pentru a stoca informatiile utilizatorului (nume, email, parola):
id |
name |
password |
email |
1 |
Marius |
faith |
name@domain.net |
2 |
MarPlo |
peace |
user@domain.com |
3 |
I_AM |
love |
address@domain.net |
- Aceasta tabela contine trei inregistrari /randuri (unu pentru fiecare persoana/utilizator) si patru coloane (id, name, password, email)
Reguli de sintaxa MySQL
Fiecare baza de date si fiecare tabela este indentificata printr-un nume. Regulile de baza MySQL pentru nume de baze de date, tabele, si coloane sunt:
- Numele poate avea maxim 64 de caractere.
- Poate contine numai litere, numere, si sublinia (indicat fara spatii).
- Numele poate incepe cu un numar, dar nu poate contine numai numere.
- O tabela nu poate avea doua coloane cu acelasi nume si o baza de date nu poate avea doua tabele cu acelasi nume.
- Numele tabelelor si coloanelor sunt case-sensitive ("Php" e diferit de "php").
Tipuri de date MySQL
Cand se creaza un tabel in MySQL, trebuie definit tipul de date pe care fiecare coloana il va contine. Exista trei tipuri principale:
Text (strings),
Numere,
Data si Ora; si doua tipuri secundare:
Liste predefinite si
Date binare.
Tipul de date dicteaza ce informatie poate fi stocata si cum, acesta influenteaza si performanta generala a bazei de date.
Tabelul de mai jos listeaza tipurile de date folosite pentru MySQL, cu o scurta descriere si cat spatiu ocupa.
Tip |
Marime |
Descriere |
Stocare text |
Diferenta dintre "Tipurile de date pentru text" consta in numarul maxim de caractere ce poate fi stocat intr-un camp individual, modul de tratare a spatiilor, si daca se poate seta o valoare initiala. |
CHAR(lungime) |
lungime bytes |
Un camp cu lungime fixa de la 0 la 255 de caractere. Accepta o valoare initiala. |
VARCHAR(lungime) |
lungime + 1 or 2 bytes |
Camp cu lungime variabila de la 0 la 65,535 caractere. Accepta o valoare initiala. |
TINYTEXT |
lungime + 1 bytes |
Un sir cu lungime maxima de 255 characters |
TEXT |
lungime + 2 bytes |
Un sir cu o lungime maxima de 65,535 caractere. Nu poate defini o valoare initiala. |
MEDIUMTEXT |
lungime + 3 bytes |
Un sir cu o lungime maxima de 16,777,215 caractere |
LONGTEXT |
lungime + 4 bytes |
Un sir cu o lungime maxima de 4,294,967,295 caractere |
Stocare numere |
Aceste tipuri de date reprezinta numere in diferite forme. |
TINYINT(lungime) |
1 byte |
Interval de la –128 la 127. Sau de la 0 la 255 unsigned |
SMALLINT(lungime) |
2 bytes |
Interval de la –32,768 la 32,767. Sau de la 0 la 65,535 unsigned |
MEDIUMINT(lungime) |
3 bytes |
Interval de la –8,388,608 la 8,388,607. Sau de la 0 la 16,777,215 unsigned |
INT(lungime) |
4 bytes |
Interval de la –2,147,483,648 la 2,147,483,647. Daca coloana este declarata UNSIGNED, intervalul este de la 0 la 4,294,967,295 |
BIGINT(lungime) |
8 bytes |
Interval de la –9,223,372,036,854,775,808 la 9,223,372,036,854,775,807. Sau de la 0 la 18,446,744,073,709,551,615 unsigned |
FLOAT(lungime, decimals) |
4 bytes |
Numar mic cu virgula (cu zecimale). Deoarece PHP va formata numerele in functie de calcule, se recomanda sa folosesti FLOAT fara parametri optionali. |
DOUBLE(lungime, decimals) |
8 bytes |
Numar mare cu zecimale |
DECIMAL(lungime, decimals) |
lungime + 1 or 2 bytes |
Un tip DOUBLE care permite un numar fix de zecimale. Inainte de MySQL 5.0.3, tipul de date DECIMAL a fost stocat ca un sir, ca sa nu poata fi folosit cu functii SQL, cum ar fi SUM() |
Stocare data si timp |
MySQL stocheaza data intr-un singur format: YYYY-MM-DD |
DATE |
3 bytes |
O data stocata ca YYYY-MM-DD. Intervalul este de la 1000-01-01 la 9999-12-31 |
DATETIME |
8 bytes |
Data si ora, afisat in format YYYY-MM-DD HH:MM:SS |
TIMESTAMP |
4 bytes |
Un timestamp (de obicei generat automat de calculator). Poate contine valori ce reprezinta date de la inceputul lui 1970 pana in Januarie 2038. Coloanele TIMESTAMP sunt afisate in acelasi format ca si coloana DATETIME. |
TIME |
3 bytes |
Ora in format HH:MM:SS |
Stocare liste predefite |
MySQL te lasa sa stochezi doua tipuri de liste predefinite (pot fi vazute ca echivalente pentru radio butonul si caseta de verificare). |
ENUM |
1 or 2 bytes |
Acest tip de coloana stocheaza o singura alegere din lista predefinita, fiecare coloana poate avea una din mai multe valori posibile |
SET |
1, 2, 3, 4, or 8 bytes |
Aceast tip de coloana stocheaza zero sau mai multe inregistrari din lista predefinita. Ca si ENUM, cu exceptia ca fiecare coloana poate avea mai mult de o valoare din mai multe valori posibile, sau mai multe inregistrari dintr-o lista predefinita. Lista poate contine cel mult 64 de inregistrari. |
Storing binary data |
Stocheaza date binare, ca imaginile. |
TINYBLOB |
|
Pana la 255 bytes |
BLOB |
|
Pana la 64kB |
MEDIUMBLOB |
|
Pana la 16MB |
LONGBLOB |
|
Pana la 4GB |
- Parametri (
lungime, decimal) sunt optionali, dar pentru motive de performanta, ar trebui specificati pentru a restrictiona cata informatie sa fie stocata in oricare din coloane. Bazele de date sunt de obicei mai rapide cand lucreaza cu coloane care au marimea fixata.
- Foloseste VARCHAR pentru elemente de text scurte si TEXT pentru cele mai lungi.
- Foloseste DECIMAL pentru a stoca valori pt. bani.
- Pentru data si ora, este indicat sa folositi TIMESTAMP daca doriti sa inregistrati in acel camp un punct fix in timp (
de exemplu data cand o inregistrare a fost introdusa in baza de date). Folositi DATETIME daca data/ora pot fi setate si schimbate arbitrar.
La tipul TIMESTAMP data si ora este setata automat cu timpul curent cand se face INSERT sau UPDATE, daca nu se specifica o valoare pentru acel camp.
- Nu este o buna idee sa folosesti date binare. Solicita prea mult baza de date, si nu se pot afisa imagini direct din baza de date.
Aceasta lectie e doar pentru o scurta introducere, si puteti reveni ca sa verificati tipul de date care doriti sa fie folosit.
In tutorialul urmator puteti invata cum sa va conectati la serverul MySQL cu PHP, sa creati o baza de date si tabele, utilizand interfata MySQLi (
MySQL Improved).
Un Test simplu in fiecare zi
HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag HTML5 defineste un text marcat, evidentiat?
<mark> <embed> <span><p>Cursuri graruite: <mark>MarPlo.net</mark> , jocuri, anime.</p>
Ce pseudo-clasa CSS defineste un stil la element cand mouse-ul e deasupra lui?
:focus :hover :activea:hover {
font-weight: bold;
color: #00da01;
}
Clic pe functia ce returneaza un sir cu un numar rotunjit la x decimale.
toPrecision(x) toFixed(x) floor(x)var num = 12.34567;
num = num.toFixed(2);
alert(num); // 12.35
Indicati functia PHP care adauga continutul unui fisier intr-un array.
[) file() readfile()$arr = file("a_file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
var_export($arr);
Clic pe raspunsul potrivit la intrebarea: "What time is it?"
On the 7th of July 1996 It is a quarter to 5. Nice weather.What time is it? It is a quarter to 5.
- Cat este ora? E 5 fara un sfert.
Indicati raspunsul potrivit la intrebarea: "¿Qué hora es?"
Hace buen tiempo. En el 7 de julio de 1996 Son las tres menos cuarto.¿Qué hora es? Son las tres menos cuarto.
- Cat este ora? E 3 fara un sfert.