Molti tipi di dato… compresi i multimediali.
Numeri interi
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
- Si può dichiarare BIT(n) con n=1..64
- Con SERIAL si dichiara un tipo BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE…
- Si può dichiarare un dato di tipo intero fissando le cifre che saranno visualizzate: INT(5).
Numeri decimali
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
- DOUBLE(M,D), Si può dichiarare un dato di tipo decimale fissando il numero di cifre totali e decimali che saranno visualizzate.
- DECIMAL(M,D) è trattato come una sequenza di caratteri che rappresentano un numero decimale: M caratteri totali con Dcaratteri decimali…
- UNSIGNED, i tipi numerici, tranne BIT, possono essere senza segno.
- 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
Versione BINARY | Byte | |
---|---|---|
CHAR(n) | BINARY(n) | n |
VARCHAR(n) | VARBINARY(n) | <= n+1 |
Per sequenze di caratteri di dimensione grande a piacere
Versione BINARY | Byte (max) | |
---|---|---|
TINYTEXT | TINYBLOB | 255 |
TEXT | BLOB | 65535 |
MEDIUMTEXT | MEDIUMBLOB | 16777215 |
LONGTEXT | LONGBLOB | 4294967295 |
Osserva
- BINARY, i tipi di dato carattere con l’attributo BINARY saranno trattati con distinzione tra maiuscolo e minuscolo nelle operazioni di confronto, ordinamento, …
- BLOB, nei campi ...BLOB (… Binary Large OBject) si memorizzano file di qualsiasi tipo.
- 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
giorno ENUM("lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica"),
giorni SET("lunedì", "martedì", "mercoledì", "giovedì", "venerdì", "sabato", "domenica")
i campi potranno assumere un numero diverso di valori
- giorno, uno tra …
- giorni, un sottoinsieme di …
Data e ora
Byte | Formato | 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
- 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
- Per l’immissione di una data MySQL permette diversi formati
- 20080130
- 2008/01/30
- 2008-01-30
- Il tipo di dato TIME, per i valori in eccesso che può assumere, può essere utilizzato per i gradi di un angolo!
Approfondimenti
- NULL, NOT NULL, …
- DEFAULT, il valore che verrà assegnato da una INSERT in assenza di un valore esplicito è un valore costante tranne che perTIMESTAMP
- 0 per campi numerici
- stringa vuota per le stringhe
- CURRENT_TIMESTAMP per TIMESTAMP
- 0 per i tipi su date e tempo diversi da TIMESTAMP
- il primo valore nella lista per ENUM
- nessun valore ammesso per BLOB e TEXT
- COMMENT, …