Sunteți pe pagina 1din 4

TIPI DI DATO IN MySQL

TIPI NUMERICI MySQL supporta tutti i tipi numerici ANSI/ISO SQL 92. Questi tipi includono sia i tipi di dato numerici esatti (NUMERIC, DECIMAL, INTEGER e SMALLINT) sia i tipi di dato numerici approssimati (FLOAT, REAL, e DOUBLE). La keyword INT un sinonimo di INTEGER, e la keyword DEC un sinonimo di DECIMAL. Identificatore di tipo Descrizione
Un tipo campo di bit. M indica il numero di bits per valore, da 1 a 64. Il valore di default 1 se M omesso. Questo tipo di dato stato aggiunto in MySQL 5.0.3 per MyISAM, e esteso in 5.0.5 a MEMORY, InnoDB, e BDB. Prima di 5.0.3, BIT un sinonimo di TINYINT(1). Very small integer (1 Byte) Questi tipi sono sinonimi per TINYINT(1). Un valore zero considerato false; valori nonzero sono considerati true Un intero small (2 Byte) Un intero medium-size (3 Byte) Un intero normal-size (4 Byte)
-32768 32767 Unsigned: 0 65535 -8388608 8388607 Unsigned: 0 16777215 -2147483648 2147483647 Unsigned: 0 4294967295 -128 127 Unsigned: 0 255

Campo di variabilit

BIT[(M)]

TINYINT[(M)] [UNSIGNED] [ZEROFILL] BOOL, BOOLEAN

SMALLINT[(M)] [UNSIGNED] [ZEROFILL] MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

INT[(M)] [UNSIGNED] [ZEROFILL]

INTEGER[(M)] [UNSIGNED] [ZEROFILL]

Questo tipo un sinonimo di INT. A large integer (8 Byte)


-9223372036854775808 9223372036854775807 Unsigned: 0 18446744073709551615

BIGINT[(M)] [UNSIGNED] [ZEROFILL]

FLOAT[(M,D)] [ZEROFILL]

-3.402823466E+38 A single-precision floating-point number (4 Byte) M il numero totale di cifre decimali -1.175494351E-38 D il numero di cifre che seguono il punto decimale. Se M e D sono omessi, i valori sono memorizzati secondo i limiti consentiti dallhardware. Un numero floating-point single-precision ha una precisione di 7 posti decimali.

DOUBLE[(M,D)] [ZEROFILL]

A double-precision floating-point number (8 Byte) Un numero floating-point double-precision ha una precisione di 15 posti decimali.

-1.7976931348623157E+308 -2.2250738585072014E-308

Identificatore di tipo

Descrizione
Numero floating point; p rappresenta la precisione in bits, ma MySQL usa questo valore solo per determinare se usare FLOAT o DOUBLE per il tipo di dato risultante. Se p varia da 0 a 24, il tipo di dato diventa FLOAT senza valori M o D. Se p varia da 25 a 53, il tipo di dato diventa DOUBLE senza valori M o D. Il renge della colonna risultato lo stesso sia per la precisione singola FLOAT che per la precisione doppia DOUBLE. La sintassi FLOAT(p) fornita per compatibilit con ODBC Sinonimi di Double Per MySQL 5.0.3 e oltre: Un numero fixed-point packed. M il numero totale di cifre decimali (precision) e D il numero di cifre dopo il punto decimale (scale). Il punto decimale e (per i numeri negativi) il segno - non sono contati in M. Se D 0, i valori non hanno punto decimale o parte frazionaria. Il numero massimo di cifre (M) per DECIMAL 65 (64 from 5.0.3 to 5.0.5). Il numero massimo supportato per i dacimali (D) 30. Se D omesso, il default 0. Se M omesso, il default 10. UNSIGNED, se specificato, elimina i valori negativi. Tutti i calcoli di base (+, -, *, /) con colonne DECIMAL sono fatti con una precisione di 65 cifre. Prima di MySQL 5.0.3: Numero unpacked fixed-point Si comporta come un campo CHAR; unpacked significa che il numero memorizzato come una stringa, con luso di un carattere per ogni cifra del valore; M il numero totale di cifre e D il numero di cifre dopo il punto decimale. il punto decimale ed il segno - per i numeri negativi non sono contati in M, sebbene lo spazio per essi sia riservato. Il tipo DECIMAL (come il NUMERIC) implementato in MySQL allo stesso modo, secondo lo standard SQL92; sono usati per valori per cui importante preservare lesatta precisione (ad es. dati monetari). (M + 2 Byte) Il comportamento usato dal server per le colonne DECIMAL dipende dalla versione di MySQL usato per creare la tabella. Se il server MySQL 5.0.3 o pi alto, ma si hanno colonne DECIMAL in tabelle che erano state create prima della 5.0.3, a queste colonne ancora applicato il vecchio comportamento. Per convertire le tabelle al formato DECIMAL pi nuovo, si deve usare mysqldump per ricaricare. Sinonimi per DECIMAL

Campo di variabilit
FLOAT senza argomento o con un argumento <= 24 sta per un numero floating-point a precisione singola FLOAT(X) dove 25 <= X <= 53 sta per un numero floating-point a precisione doppia

FLOAT(precision) [ZEROFILL]

DOUBLE PRECISION[(M,D)] [ZEROFILL] REAL[(M,D)] [ZEROFILL]

Il range massimo dei valori DECIMAL lo stesso dei DOUBLE Ad es. stipendio DECIMAL (9,2) 9 il numero di cifre che saranno memorizzate 2 il numero di cifre che saranno memorizzate dopo il punto decimale, quindi con il campo di variabilit: -9999999.99 9999999.99 DECIMAL (p) DECIMAL(p,0) equivalente a

DECIMAL[(M[,D])] [ZEROFILL]

DEC[(M[,D])][UNSIGNED][ZEROFILL], NUMERIC[(M[,D])][UNSIGNED][ZEROFILL], FIXED[(M[,D])][UNSIGNED] [ZEROFILL]

TIPI DATA E ORA I tipi data e ora sono DATETIME, DATE, TIME e YEAR. Ognuno di questi ha un range di valori legali, cos come un valore zero che usato quando si specifica una valore realmente illegale. NOTA MySQL consente di memorizzare valori di data non legali (es 1999-11-31), secondo il principio che responsabilit dellapplicazione gestire il controllo delle date e non del server SQL. MySQL controlla solo che il mese sia nel range 0 12 e il giorno sia nel range 0 31. Linclusione di 0 nel campo di variabilit di mese e giorno sono utili quando ad es. necessario memorizzare una data di nascita per la quale non si conosce la data esatta. Quando MySQL incontra un valore fuori dal range o illegale per il tipo, lo converte al valore zero per quel tipo. MySQL automaticamente converte un valore di tipo data o time in un numerico se il valore usato in un contesto numerico e viceversa. . Identificatore Descrizione di tipo
DATE

Campo di variabilit
Il range supportato '1000-01-01' a '9999-12-31' Valore zero: ' 0000 00 - 00' '1000-01-01 00:00:00' a '9999-12-31 23:59:59' Valore zero: '0000 00 00 00:00:00'

DATETIME

TIMESTAMP[(M)]

TIME

Una data MySQL visualizza i valori DATE nel formato 'YYYY-MM-DD' , ma consente di assegnare valori alle colonne DATE usando sia stringhe che numeri. Una combinazione di data e tempo MySQL visualizza i valori DATETIME nel formato 'YYYY-MM-DD HH:MM:SS', ma consente di assegnare valori nelle colonne DATETIME usando sia stringhe che numeri Un timestamp Una colonna TIMESTAMP utile per registrare la data e il tempo di una operazione di un INSERT o UPDATE perch automaticamente settata alla data e al tempo delloperazione pi recente se non gli si d un valore preciso. Gli si pu pure settare il valore corrente di data e ora assegnandogli il valore NULL. MySQL visualizza i valori TIMESTAMP nel formato YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, o YYMMDD, a seconda se M 14 (o manca), 12, 8, o 6, ma consente di assegnare valori sia usando stinghe che numeri. Es. TIMESTAMP(4) YYMM TIMESTAMP(2) YY Un TIMESTAMP memorizzato sempre in 4 bytes Un tempo MySQL visualizza valori TIME nel formato 'HH:MM:SS', ma consente di assegnare valori alle colonne TIME usando sia stringhe che numeri

Il range da '1970-01-01 00:00:00' a qualche data nellanno 2037 Valore zero: 0000000000000000 (la lunghezza dipende dalla dimensione di visualizzazione)

Il range '-838:59:59' a '838:59:59' Valore zero: 00:00:00

YEAR[(2|4)]

I valori disponibili sono dal 1901 al 2155, 0000 nel Un anno nel formato 2 - or 4 - cifre format (default 4-cifre) formato anno a 4-cifre, e 1970-2069 se si usa il formato a MySQL visualizza i valori YEAR nel formato YYYY, ma consente di assegnare valori alle colonne YEAR 2-cifre (70-69) usando sia stringhe o numeri. Valore zero: 0000

TIPI STRINGA I tipi stringa sono: CHAR, VARCHAR, BLOB, TEXT, ENUM, and SET. Identificatore di tipo Descrizione
Una stringa a lunghezza fissa che sempre completata con spazi fino alla lunghezza specificata quando memorizzata. NATIONAL CHAR il modo ANSI SQL di definire che una colonna CHAR deve usare linsieme di default CHARACTER. In MySQL il default. CHAR una forma breve di CHARACTER. MySQL consente di [NATIONAL] CHAR(M) [BINARY] (M Byte) creare una colonna di tipo CHAR(0), utile quando si vuole avere compatibilit con alcune applicazioni vecchie che dipendono dallesistenza di una colonna ma non usano pi quel valore. Inoltre utile quando necessaria una colonna che assume solo 2 valori: un CHAR(0), che non definito come NOT NULL, occuper solo un bit e pu assumere solo 2 valori: NULL or "" Una stringa a lunghezza variabile [NATIONAL] VARCHAR(M) [BINARY] I valori VARCHAR sono ordinati e confrontati in modo case-insensitive a meno che non sia data la (M+1 Byte) parola chiave BINARY. BINARY non influenza come la colonna sia memorizzata o letta. Una colonna BLOB o TEXT Un BLOB un grande oggetto binario che pu contenere una quantit variabile di dati. BLOB (M+2 Byte) La sola differenza fra i tipi BLOB e TEXT che lordinamento e il confronto realizzato in case-sensitive TEXT (M+2 Byte) per i valori BLOB e case-insensitive per valori TEXT. In altre parole, un TEXT un BLOB caseinsensitive. TINYBLOB (M+2 Byte) A BLOB or TEXT column TINYTEXT (M+1 Byte) MEDIUMBLOB (M+3 Byte) MEDIUMTEXT (M+3 Byte) LONGBLOB (M+4 Byte) LONGTEXT (M+4 Byte) Una enumerazione Un oggetto string ache pu avere solo un valore, scelto da una lista di valori 'value1', 'value2', ..., NULL o il valore speciale error ""e. ENUM('value1','value2',...) Se un ENUM dichiarato NULL, NULL pure un valore legale per la colonna, e il valore di default NULL. Se un ENUM dichiarato NOT NULL, il valore di default il primo elemento della lista di valori consentiti. Un set. Un oggetto stringa che pu avere zero o pi valori, ognuno dei quali pu essere scelto da una lista di valori SET('value1','value2',...) 'value1', 'value2', ... A BLOB or TEXT column

Campo di variabilit

Il range di M da 1 a 255 caratteri

Il range di M da 1 a 255 caratteri

Lunghezza massima 65535 (2^16 - 1) caratteri

Lunghezza massima di 255 (2^8 - 1) caratteri Lunghezza massima di 16777215 (2^24 - 1) caratteri (1.6 MB) Lunghezza massima di 4294967295 (2^32 - 1) caratteri (4.2 MB)

Un ENUM pu avere un massimo di 65535 valori distinti.

Es. Un campo dichiarato come SET(uno,due) NOT NULL pu avere solo questi valori: uno due uno,due Un SET pu avere un massimo di 64 membri.

S-ar putea să vă placă și