»  Pagina principala  »  PHP si mysql »  Tipuri de date

Tipuri de date

Tipurile de date care apar in coloanele MySQL sunt diferite in functie de tipul lor. MySQL aloca spatiu pe disc in functie de tipul de date specificat de utilizator. Sa luam un exemplu: Vrem un tabel cu salariatii unei firme, care sa contina o coloana pentru numarul de zile de concediu legal. Daca setam respectiva coloana ca fiind TINYINT (pentru ca aceasta este valoarea numerica in care se incadreaza - un salariat nu va avea mai mult de 127 de zile de concediu pe an!). Pentru fiecare inregistrare in coloana zile_concediu, MySQL va aloca 1 byte de memorie, indiferent daca un angajat are 2 zile de concediu si altul are 18. Daca acelasi camp il setam ca INT, MySQL va aloca fiecarei inregistrari in coloana 4 bytes, indiferent de numarul de zile de concediu introduse si astfel pentru fiecare inregistrare (fiecare angajat) se vor pierde 3 bytes. Acesta este doar un exemplu, dar puteti avea la un moment dat o baza de date cu 10 milioane de inregistrari si atunci pierderea a 3 bytes la fiecare inregistrare se traduce in cateva zeci de MB de spatiu.
Iata si tipurile de date, spatiul pe care il ocupa precum si valorile minime si maxime pe care le pot avea:

Valori numerice:
Tip Bytes De la Pana la
TINYINT 1 - 128 127
SMALLINT 2 - 32768 32767
MEDIUMINT 3 - 8388608 8388607
INT 4 - 2147483648 2147483647
BIGINT 8 - 9223372036854775808 9223372036854775807

Toate tipurile de mai sus au un atribut optional (nestandard), UNSIGNED. Puteti folosi acest atribut in definirea tipului de date al unei coloane atunci cand doriti 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 veti incerca sa introduceti o valoare mai mica de -128 ea va fi convertita in cea mai mica valoare admisa, -128. La fel si invers, va fi convertita in 127 in acest caz.

Data / timp:
Column type 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. El este compus implicit din 14 caractere pentru formatul 'YYYYMMDDhhmmss' dar putem sa specificam la crearea unui tabel ca dorim sa contina mai putine caractere:

Timestamp
Column type Display format
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY

Stringuri (siruri)
Tipurile de string-uri in MySQL sunt BLOB, TEXT, CHAR, VARCHAR, ENUM si SET. In tabelul urmator puteti vedea marimea maxima admisa pentru cele mai folosite dintre ele precum si spatiul alocat pe disc pentru fiecare:

Tip Marime maxima Bytes
TINYTEXT sau TINYBLOB 2^8-1 255
TEXT sau BLOB 2^16-1 (64K-1) 65535
MEDIUMTEXT or MEDIUMBLOB 2^24-1 (16M-1) 16777215
LONGBLOB 2^32-1 (4G-1) 4294967295

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.





Link-ul autorului:
www.tutoriale.far-php.ro

Comentarii




Voteaza acest articol!
 



Trimite un comentariu!

Nume *
E-mail *
Comentariu *
  Vreau sa fiu anuntat de urmatoarele mesaje la acest articol

Security image

Fanache A. Remus

www.farsoft.far-php.ro - portofoliu
http://www.farsoft.far-php.ro

Cloud tag

tutorial, photoshop, html, css, javascript, flash, php, mysql, grafica 3D, tutorial, coduri, scripturi, generator de coduri, cursuri php