Tipos de Dados - MySql Prof. Rudson Kiyoshi S. Carvalho Página 1

Tipos de Dados - MySql
O MySQL suporta um número de tipos de dados em várias categorias: tipos numéricos, tipos
de data e hora e string (caracteres) tipos.
Descrições do tipo de dados, usar estas convenções:

M indica a largura máxima da tela para tipos inteiros. Para os tipos de ponto flutuante
e de ponto fixo, M é o número total de dígitos que podem ser armazenados. Para
tipos string, M é o comprimento máximo. O valor máximo admissível de M depende
do tipo de dados.

D se aplica aos tipos de ponto flutuante e de ponto fixo e indica o número de
dígitos após o ponto decimal. O valor máximo possível é 30, mas não deve ser
maior do que M-2.

Colchetes ("[" e "]") indicam partes opcionais de definições de tipo.
Prof. Rudson Kiyoshi S. Carvalho
Página 1
Tipos de Dados - MySql
Type
{storage}
Name
Range
Attributes
Numeric
{1 byte}
TINYINT[(M)]
-128 TO 127
[0 to 255 if UNSIGNED]
Numeric
{2 bytes}
SMALLINT[(M)]
-32,768 to 32,767
[0 to 65,535]
Numeric
{3 bytes}
MEDIUMINT[(M)]
-8,388,608 to 8,388,607
[0 to 16,777,215]
Numeric
{4 bytes}
INT[(M)]
-2,147,483,648 to 2,147,483,647
[0 to 4,294,967,295]
Numeric
{8 bytes}
BIGINT[(M)]
-/+9.223E+18
[0 to 18.45E+18]
Numeric
{4 or 8}
FLOAT(p)
p=0-24 --> "FLOAT"
p=25-53 --> "DOUBLE"
UNSIGNED, ZEROFILL
Numeric
{4 bytes}
FLOAT[(M,D)]
Min=+/-1.175E-38
Max=+/-3.403E+38
UNSIGNED, ZEROFILL
Numeric
{8 bytes}
DOUBLE[(M,D)]
Min=+/-2.225E-308
Max=+/-1.800E+308
UNSIGNED, ZEROFILL
Numeric
{M+2}
DECIMAL[(M,[D])]
Stored as string
Max Range = DOUBLE range
Fixed point vs. DOUBLE float
UNSIGNED, ZEROFILL
Bit
{8 bytes}
BIT[(M)]
Binary. Display by [add zero |
converting with BIN()]. M=1-64
Prior to 5.03
TINYINT(1) Synonym
Prof. Rudson Kiyoshi S. Carvalho
AUTO_INCREMENT
UNSIGNED,
ZEROFILL,
SERIAL DEFAULT
VALUE
AUTO_INCREMENT,
UNSIGNED,
ZEROFILL,
SERIAL DEFAULT
VALUE
AUTO_INCREMENT,
UNSIGNED,
ZEROFILL,
SERIAL DEFAULT
VALUE
AUTO_INCREMENT,
UNSIGNED,
ZEROFILL,
SERIAL DEFAULT
VALUE
AUTO_INCREMENT,
UNSIGNED, ZEROFILL
Default
NULL
[0 if NOT
NULL]
NULL
[0 if NOT
NULL]
NULL
[0 if NOT
NULL]
NULL
[0 if NOT
NULL]
NULL
[0 if NOT
NULL]
NULL
[0 if NOT
NULL]
NULL
[0 if NOT
NULL]
NULL
[0 if NOT
NULL]
NULL
[0 if NOT
NULL]
NULL
[0 if NOT
NULL]
Página 2
Tipos de Dados - MySql
Type
{storage}
String
{M char's}
String
Name
TINYTEXT2
M=0-255 Characters,
FIXED. Right padded
with spaces.
M=0-65,535
Characters
M=0-255 <v5.0.3
0-255 Characters
TEXT2
0-65,535 Char's
MEDIUMTEXT2
0-16,777,215 Char's
LONGTEXT2
0-4,294,967,295 Char's
BINARY[(M)]
M=0-255 bytes, FIXED.
VARBINARY(M)
TINYBLOB
0-65,535 bytes
M=0-255 <v5.0.3
0-255 bytes
BLOB
0-65,535 bytes
MEDIUMBLOB
0-16,777,215 bytes
LONGBLOB
0-4,294,967,295 bytes
ENUM2
("A1","A2",...)
SET2
("A1","A2",...)
Column is exactly 1 of
values (1-255 values)
Column is 0 or more
values in list
(1-64 members)
CHAR[(M)]
VARCHAR(M)
{M char's1}
String
{#char's1}
String
{#char's1}
String
{#char's1}
String
{#char's1}
String
{M bytes}
String
{M bytes}
String
{#bytes1}
String
{#bytes1}
String
{#bytes1}
String
{#bytes1}
String
{1-2 bytes}
String
{1-8 bytes}
Range
Prof. Rudson Kiyoshi S. Carvalho
Attributes
Default
BINARY,
CHARACTER SET
NULL
[“” if NOT NULL]
BINARY,
CHARACTER SET
NULL
[“” if NOT NULL]
BINARY,
CHARACTER SET
BINARY,
CHARACTER SET
BINARY,
CHARACTER SET
BINARY,
CHARACTER SET
Global Only
(case sensitive)
Global Only
(case sensitive)
Global Only
(case sensitive)
Global Only
(case sensitive)
Global Only
(case sensitive)
Global Only
(case sensitive)
CHARACTER SET
NULL
["" if NOT NULL]
NULL
["" if NOT NULL]
NULL
["" if NOT NULL]
NULL
["" if NOT NULL]
NULL
["" if NOT NULL]
NULL
["" if NOT NULL]
NULL
[“” if NOT NULL]
NULL
[“” if NOT NULL]
NULL
[“” if NOT NULL]
NULL
[“” if NOT NULL]
NULL
[“” if NOT NULL]
NULL
[“” if NOT NULL]
CHARACTER SET
Página 3
Tipos de Dados - MySql
Type
{storage}
Date & Time
{3 bytes}
Name
Range
Attributes
DATE
"1000-01-01" "9999-12-31"
Global Only
(YYYY-MM-DD)
Date & Time
{8 bytes}
DATETIME
Global Only
(YYYY-MM-DD
hh:mm:ss)
Date & Time
{3 bytes}
TIME
"1000-01-01
00:00:00" "9999-12-31
23:59:59"
"-838:59:59" "838:59:59"
Date & Time
{4 bytes}
TIMESTAMP
19700101000000 2037+
Date & Time
{1 bytes}
YEAR
1900 - 2155
Global Only
(YYYYMMDDhhmm
ss)
Global Only
(YYYY)
Global Only
(hh:mm:ss)
Default
NULL
["0000-00-00" if NOT
NULL]
NULL ["0000-00-00
00:00:00"
if NOT NULL]
NULL
["00:00:00" if NOT
NULL]
Current Date & Time
NULL
["0000" if NOT
NULL]
Notas:
•
•
•
•
•
•
•
•
•
Com base na versão 5.0.
1 Armazenamento será # de caracteres ou bytes, mais byte(s) para guardar o tamanho.
2 Estes tipos de dados Strings não são CASE-SENSITIVE, a não ser o atributo "binary" ou ser
configurado CASE-SENSITIVE no Colletion.
"E" é uma abreviação para "expoente". E18 significa mover o decimal mais de 18 lugares
(“notação cientifica”).
Atributo SERIAL DEFAULT VALUE é um apelido para "AUTO_INCREMENT NOT NULL
UNIQUE".
O tipo de dado SERIAL, é um sinônimo para "BIGINT UNSIGNED AUTO_INCREMENT NOT
NULL UNIQUE".
Tipo de dados BOOL and BOOLEAN são sinônimos para TINYINT(1).
Tipo de dados REAL[(M,D)] e DOUBLE PRECISION[(M,D)] são sinônimos para
DOUBLE[(M,D)].
REAL_AS_FLOAT variável de sistema que pode fazer um REAL[(M,D)] um sinônimo para
FLOAT[(M,D)].
"UNSIGNED ZEROFILL" atributos: ZEROFILL significa que se você especificar
um valor de M para um inteiro, será preenchido com zeros para preencher os
espaços M. Ex: M = 6, integer = 247, display = "000247".UNSIGNED significa
que não há valores negativos e, muitas vezes se expande a sua gama (range).
Correspondente não-binário e binário tipos string:
• CHAR BINARY vs
• VARCHAR vs VARBINARY
• TEXT vs BLOB
•
•
Fonte: http://dev.mysql.com/doc/refman/5.0/en/data-types.html
Prof. Rudson Kiyoshi S. Carvalho
Página 4