I tipi di dato

Molti tipi di dato… compresi i multimediali.

Numeri interi

Nome Byte Valore
minimo
Valore
massimo
UNSIGNED
BIT 1 bit
BOOL
BOOLEAN
TINYINT(1)
1 0
FALSE
!= 0
TRUE
TINYINT 1 -128 +127 0…+255
SMALLINT 2 -32768 +32767 0…+65535
MEDIUMINT 3 -8388608 8388607 0…+16777215
INT
INTEGER
4 -2147483648 +2147483647 0…+4294967295
BIGINT 8 -9223372036854775808 +9223372036854775807 0…+18446744073709551615

Osserva

    1. Si può dichiarare BIT(n) con n=1..64
    2. Con SERIAL si dichiara un tipo BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE
  1. Si può dichiarare un dato di tipo intero fissando le cifre che saranno visualizzate: INT(5).

Numeri decimali

Nome Byte Valore
minimo
Valore
massimo
FLOAT 4 IEEE?
DOUBLE
DOUBLE PRECISION
8
DEC(M, D)
DECIMAL(M,D)
NUMERIC(M,D)
FIXED(M,D)
M+2 M=8, D=3
-99999.999
M=8, D=3
99999.999

Osserva

  1. DOUBLE(M,D), Si può dichiarare un dato di tipo decimale fissando il numero di cifre totali e decimali che saranno visualizzate.
  2. DECIMAL(M,D) è trattato come una sequenza di caratteri che rappresentano un numero decimale: M caratteri totali con Dcaratteri decimali…
  3. UNSIGNED, i tipi numerici, tranne BIT, possono essere senza segno.
  4. ZEROFILL, si altera la visualizzazione del numero (no BIT)
    • i valori interi saranno allineati a destra, aggiungendo gli zeri mancanti a sinistra
    • i valori decimali saranno allineati a destra, aggiungendo gli zeri mancanti a destra.

Testo

Per sequenze di caratteri che non superano i 255 caratteri

Nome Versione
BINARY
Byte
CHAR(n) BINARY(n) n
VARCHAR(n) VARBINARY(n) <= n+1

Per sequenze di caratteri di dimensione grande a piacere

Nome Versione
BINARY
Byte
(max)
TINYTEXT TINYBLOB 255
TEXT BLOB 65535
MEDIUMTEXT MEDIUMBLOB 16777215
LONGTEXT LONGBLOB 4294967295

Osserva

  1. BINARY, i tipi di dato carattere con l’attributo BINARY saranno trattati con distinzione tra maiuscolo e minuscolo nelle operazioni di confronto, ordinamento, …
  2. BLOB, nei campi ...BLOB (… Binary Large OBject) si memorizzano file di qualsiasi tipo.
  3. CHARACTER SET / CHARSET / COLLATE, i tipi di dato carattere CHAR, VARCHAR e TEXT ammettono gli attributiCHARACTER SET/ CHARSET e COLLATE.

Gruppi di stringhe

Con le dichiarazioni

i campi potranno assumere un numero diverso di valori

  • giorno, uno tra …
  • giorni, un sottoinsieme di …

Data e ora

Nome Byte Formato
di visualizzazione
Valore
minimo
Valore
massimo
TIMESTAMP 4 AAAAMMGGHHMMSS 19700101000000
(1970-01-01 00:00:00)
?
DATETIME 8 AAAA-MM-GG HH:MM:SS 1000-01-01 00:00:00 9999-12-31 23:59:59
DATE 3 AAAA-MM-GG 1000-01-01 9999-12-31
TIME 3 HH:MM:SS -838:59:59 838:59:59
YEAR 1 AAAA 1901 2155

Osserva

  1. Si può dichiarare un dato di tipo TIMESTAMP(N) fissando il numero di cifre che saranno visualizzate
    • 4, AAMM
    • 6, AAMMGG
    • 8, AAAAMMGG
    • 10, AAMMGGHHMM
    • 12, AAMMGGHHMMSS
    • 14, AAAAMMGGHHMMSS
  2. Per l’immissione di una data MySQL permette diversi formati
    • 20080130
    • 2008/01/30
    • 2008-01-30
  3. Il tipo di dato TIME, per i valori in eccesso che può assumere, può essere utilizzato per i gradi di un angolo!

Approfondimenti

  1. NULL, NOT NULL, …
  2. DEFAULT, il valore che verrà assegnato da una INSERT in assenza di un valore esplicito è un valore costante tranne che perTIMESTAMP
    1. 0 per campi numerici
    2. stringa vuota per le stringhe
    3. CURRENT_TIMESTAMP per TIMESTAMP
    4. 0 per i tipi su date e tempo diversi da TIMESTAMP
    5. il primo valore nella lista per ENUM
    6. nessun valore ammesso per BLOB e TEXT
  3. COMMENT, …