back to top

Tipi di dati in MySQL: dati stringa

Oltre ai tipi numerici, visti nella passata lezione, è necessario ricordare un altro fondamentale tipo di dato supportato da MySQL: i dati stringa. Come per i valori numerici, anche per le stringhe, MySQL offre diverse tipologie tra cui scegliere quella più adatta. Vediamole in una tabella riepilogativa:

Tipi di dati per le stringhe

TipoDimensioni massimeMemoria occupata
CHAR(n)255 byten byte
VARCHAR(n)255 byteLEN + 1 byte
TINYTEXT255 byteLEN + 1 byte
TINYBLOB255 byteLEN + 2 byte
TEXT65535 byteLEN + 2 byte
BLOB65535 byteLEN + 3 byte
MEDIUMTEXT1.6 MbLEN + 3 byte
MEDIUMBLOB1.6 MbLEN + 3 byte
LONGTEXT4.2 MbLEN + 4 byte
LONGBLOB4.2 MbLEN + 4 byte

I tipi CHAR e VARCHAR sono sicuramente i tipi più utilizzati. La differenza tra questi due tipi è data dal fatto che mentre VARCHAR ha lunghezza variabile, CHAR ha lunghezza fissa. Questo significa che in una colonna CHAR(10) tutti i valori memorizzati saranno lunghi 10 byte anche se costituiti da 3 soli caratteri (cosa che assolutamente non accade con VARCHAR essendo la memoria occupata pari alla lunghezza del testo + 1).

I tipi TEXT e BLOB (Binary Large OBject) consentono di memorizzare grandi quantità di dati: TEXT è utilizzato per dati di tipo testuale, mentre BLOB è utilizzato per ospitare dati binary (ad esempio il sorgente di un’immagine).

I modificatori per i campi di tipo stringa

L’unico modificatore che può essere utilizzato per i campi destinati ad ospitare dati stringa è BINARY il quale può essere utilizzato con CHAR o VARCHAR qualora questi campi siano destinati ad ospitare dati binari (pur non rendendosi necessario utilizzare un campo della famiglia BLOB).

Modificatori universali (sia per campi numerici che testuali)

Alcuni modificatori possono essere utilizzati tanto con campi numerici quanto con campi di tipo stringa. Questi sono:

  • DEFAULT – Può essere utilizzato con tutti i tipi di dati ad eccezzione di TEXT e BLOB. Serve per indicare un valore di default per il campo qualora questo venga lasciato vuoto.
  • NULL / NOT NULL – Può essere utilizzato con tutti i tipi di campi e serve per definire se un dato campo può avere un valore NULL oppure no.
  • UNIQUE – Con UNIQUE si imposta una regola di unicità, questo significa che nessun dato contenuto nella colonna può essere ripetuto: ogni dato deve, quindi, essere unico e se si cerca di inserire un dato duplicato si riceve un errore.

Oltre a questi devono essere segnalati altri due modificatori:

  • PRIMARY KEY – Può essere utilizzato con tutti i tipi di dati (numerici e stringa) ed è una sorta di variante di UNIQUE che consente di creare un indice primario sulla tabella.
  • INDEX – E’ utilizzato per creare un’indice nella tabella ai fini di migliorare le performances di accesso ai dati.

Di questi ultimi due modificatori parleremo diffusamente nella lezione dedicata agli indici.

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

In questa guida...