9274 afișări Candale Silviu (silviu) 12.09.2021 www.pbinfo.ro
Etichete: nicio etichetă

Tipuri de date

MySQL utilizează patru tipuri de date:

  • tipul numeric – numerele pot fi întregi sau în virgulă mobilă. De asemenea, se poate utiliza notația științifică, de exemplu: 4.1256E+5 = 412560
  • tipul șir de caractere – un șir de caractere este o secvență de caractere cuprinsă între ghilimele (") sau apostrofuri ('). Șirurile de caractere pot conține secvențe escape:
    • \n – linie nouă
    • \r – început de linie
    • \b – backspace
    • \t – tab
    • \z – end of file
    • \\ – backslash
    • \" – ghilimele
    • \' – apostrof
    • \0 – caracterul NULL, cu codul ASCII 0
    • \% – caracterul %, utilizat pentru căutarea caracterului % într-un șir de caractere
    • \_ – caracterul _, utilizat pentru căutarea caracterului _ într-un șir de caractere
  • tipul dată și oră – în MySQL data calendaristică se reprezintă în forma an-lună-zi, de exemplu: '2008-11-16', iar ora se reprezintă în forma hh:mm:ss'22:47:25'. Data și ora se pot reprezenta împreună, de forma '2008-11-16 22:47:25'.
  • valoarea NULL – este o valoare fără tip, și are semnificația de “fără valoare”, “cu valoarea neprecizată”.

Tipuri de coloane MySQL

O bază de date MySQL este alcătuită din tabele, fiecare tabel având una sau mai multe coloane. La crearea unui tabel, trebuie precizat tipul fiecărei coloane. Diferența dintre tipurile de date MySQL și tip de coloane MySQL constă în faptul că tipurile de coloane sunt mai precise decât tipurile de date, ele precizând clar și domeniul de valori.

Tipurile numerice de coloane:

  • TINYINT(M) [UNSIGNED] [ZEROFILL] – întreg cu valori între -128 și 127, (respectiv între 0 și 255, dacă se precizează atributul UNSIGNED), memorat pe 1 octet
  • SMALLINT(M) [UNSIGNED] [ZEROFILL] – întreg cu valori între -215 și 215-1, (respectiv între 0 și 216-1, dacă se precizează atributul UNSIGNED), memorat pe 2 octeți
  • MEDIUMINT(M) [UNSIGNED] [ZEROFILL] – întreg cu valori între -223 și 223-1, (respectiv între 0 și 224-1, dacă se precizează atributul UNSIGNED), memorat pe 3 octeți
  • INT(M) [UNSIGNED] [ZEROFILL] – întreg cu valori între -231 și 231-1, (respectiv între 0 și 232-1, dacă se precizează atributul UNSIGNED), memorat pe 4 octeți
  • INTEGER(M) [UNSIGNED] [ZEROFILL] – La fel ca INT
  • BIGINT(M) [UNSIGNED] [ZEROFILL] – întreg cu valori între -263 și 263-1, (respectiv între 0 și 264-1, dacă se precizează atributul UNSIGNED), memorat pe 8 octeți
  • FLOAT(M,D) [ZEROFILL] – număr real în virgulă mobilă cu simplă precizie, memorat pe 4 octeți
  • DOUBLE(M,D) [ZEROFILL] – număr real în virgulă mobilă cu dublă precizie, memorat pe 8 octeți@
  • DOUBLE PRECISION[(M,D)] [ZEROFILL], REAL[(M,D)] [ZEROFILL] – similar cu DOUBLE
  • DECIMAL(M,D) [ZEROFILL] – număr real în stocat sub formă de șir, valorile fiind în funcție de parametrii M și D. Domeniul maxim de valori este același ca și DOUBLE.
    Parametrii M și D reprezintă lungimea maximă de afișare (maxim 255), respectiv numărul de cifre situate după punctul zecimal (maxim 30, valoarea efectiv precizată neputând depăși M-2).

Atributul UNSIGNED nu permite existența valorilor negative.

Atributul ZEROFILL determină completarea implicită cu zerouri a valorilor din coloanele tabelului.

Atributul AUTO_INCREMENT poate fi utilizat când se dorește a unor serii consecutive de valori întregi, începând cu 1.

De asemenea, se poate preciza o valoare predefinită pentru coloanele numerice, folosind atributul DEFAULT la definirea coloanelor. Valoare implicită este 0.

Un alt atribut care poate să însoțească tipurile de coloane numerice este NULL sau NOT NULL. Acest atribut specifică dacă un câmp numeric cu o valoare neprecizată explicit va conține valoarea NULL sau valoarea precizată prin atributul DEFAULT.

Tipurile dată/oră pentru coloane

  • DATE – semnifică o dată calendaristică, în format 'AAAA-LL-ZZ'.
  • TIME – semnifică ora, în format 'HH:MM:SS'.
  • DATETIME – semnifică data și ora, în format 'AAAA-LL-ZZ HH:MM:SS'.
  • TIMESTAMP – - reprezintă timpul UNIX, respectiv numărul de secunde care au trecut de la 1970-01-01 00:00:00. Valorile unei coloane de acest tip se actualizează automat în urma operațiilor de inserare (INSERT) și actualizare (UPDATE) a înregistrărilor dintr-un tabel, coloanele de tip TIMESTAMP putând fi utilizate pentru monitorizarea modificărilor asupra unui tabel.
  • YEAR – semnifică un an.

Atributele care pot fi utilizate pentru coloanele de tip dată sunt: NULL, NOT NULL și DEFAULT.

Tipurile șir de caractere pentru coloane:

  • CHAR(N) – semnifică un șir de caractere de lungime fixă, care poate conține maxim N caractere (N cuprins între 1 și 255).
  • VARCHAR(N) – semnifică un șir de caractere de lungime variabilă, maxim N (N cuprins între 1 și 255). Lungimea efectiv ocupată este L+1 (L – lungimea șirului, plus un octet pentru memorarea lungimii).
  • BLOB – definește un obiect binar mare (Binary Large OBject). Poate stoca “obiecte” (imagini, documente, etc) de până la 232-1 octeți. Tipul BLOB desemnează o familie de tipuri, care diferă prin dimensiunea maximă a datelor pe care le pot stoca.
  • TEXT – familia de tipuri TEXT este identică cu BLOB, cu excepția faptului că în operațiile de comparare, valorile de tip BLOB sunt case sensitive, iar cele de tip TEXT sunt case insensitive.
TIP DIMENSIUNE
TINYTEXT, TINYBLOB 28-1 = 255 O (octeți)
TEXT, BLOB 216-1 = 64K-1
MEDIUMTEXT, MEDIUMBLOB 224-1 = 16M-1
BIGTEXT, BIGBLOB 232-1 = 4G-1
  • ENUM – reprezintă un șir de caractere a cărui valoare este aleasă dintr-o listă de valori precizate la crearea tabelului (maxim 216-1 valori). Dacă se încearcă înlocuirea valorii unei coloane de tip ENUM cu o valoare inexistentă în lista de valori, ea va fi automat înlocuită cu șirul vid, "".
  • SET – semnifică un șir asemănător cu ENUM, cu deosebirea că valoarea unei coloane de tip ENUM poate conține mai mulți membri ai listei – lista poate avea cel mult 64 membri.

9274 afișări Candale Silviu (silviu) 12.09.2021 www.pbinfo.ro