adsense

terça-feira, 20 de maio de 2014

MySQL Básico: Tipos de campos MySQL

No banco de dados MySQL podemos ter 3 tipos de campos diferentes.


Tipos de dados mysql


1 Tipos numéricos: 


Tipo de CampoTamanho de Armazenamento
TINYINT1 byte
SMALLINT2 bytes
MEDIUMINT3 bytes
INT4 bytes
INTEGER4 bytes
BIGINT8 bytes
FLOAT(X)4 ou 8 bytes
FLOAT4 bytes
DOUBLE8 bytes
DOUBLE PRECISION8 bytes
REAL8 bytes
DECIMAL(M,D)M+2 bytes se D > 0, M+1 bytes se D = 0
NUMERIC(M,D)M+2 bytes se D > 0, M+1 bytes se D = 0

TinyInt: é um número inteiro assinado ou não assinado(signed ou unsigned). Assinado,  a margem de valores válidos é desde -128 até 127. Não assinado, a margem de valores é de 0 até 255 



Bit ou Bool: um número inteiro que só pode ser 0 ou 1. 

SmallInt: número inteiro assinado ou não assinado(signed ou unsigned). Assinado, os valores válidos vão de  -32768 até 32767.Não assinados, os valores vão de 0 até 65535. 

MediumInt: número inteiro assinado ou não assinadoAssinado, os valores válidos vão de -8.388.608 até 8.388.607. Não assinados, os valores vão de 0 até 16777215. 

Integer, Int: número inteiro assinado ou não assinadoAssinado, os valores válidos vão de -2147483648 até 2147483647. Não assinados, os valores vão de 0 até 429.496.295 

BigInt: número inteiro assinado ou não assinadoAssinado, os valores válidos vão de -9.223.372.036.854.775.808 até 9.223.372.036.854.775.807. Sem signo, a margem de valores é de 0 até 18.446.744.073.709.551.615. 

Float: número pequeno em vírgula flutuante de precisão simples. Os valores válidos vão desde -3.402823466E+38 até -1.175494351E-38,0 eté desde 175494351E-38 até 3.402823466E+38. 

xReal, Double: número em vírgula flutuante de dupla precisão. Os valores permitidos vão desde -1.7976931348623157E+308 até -2.2250738585072014E-308, 0 e desde 2.2250738585072014E-308 até 1.7976931348623157E+308 

Decimal, Dec, Numeric: Número em vírgula flutuante desempacotado. O número armazena-se como uma cadeia. 

2 Tipos data: 



Tipo de CampoTamanho de Armazenamento
DATE3 bytes
DATETIME8 bytes
TIMESTAMP4 bytes
TIME3 bytes
YEAR1 byte


TamanhoFormato
14AnoMesDiaHoraMinutoSegundo aaaammddhhmmss
12AnoMesDiaHoraMinutoSegundo aammddhhmmss
8AnoMesDia aaaammdd
6AnoMesDia aammdd
4AnoMes aamm
2Ano aa

Na hora de armazenar datas, devemos lembrar que o mysql não faz validação de formato de data. O sistema apenas verifica se o mês está compreendido entre 0 e 12 e que o dia está compreendido entre 0 e 31. 

Date: tipo data, armazena uma data. A margem de valores vai desde o 1 de Janeiro de 1001 ao 31 de dezembro de 9999. O formato de armazenamento é de ano-mes-dia. 

DateTime: Combinação de data e hora. A margem de valores vai desde o 1 ed Janeiro de 1001 às 0 horas, 0 minutos e 0 segundos ao 31 de Dezembro de 9999 às 23 horas, 59 minutos e 59 segundos. O formato de armazenamento é de ano-mes-dia horas:minutos:segundos 

TimeStamp: Combinação de data e hora. A margem vai desde o 1 de Janeiro de 1970 ao ano 2037. O formato de armazenamento depende do tamanho do campo: 



Time: armazena uma hora. A margem de horas vai desde -838 horas, 59 minutos e 59 segundos. O formato de armazenamento é 'HH:MM:SS'. 

Year: armazena um ano. A margem de valores permitidos vai desde o ano 1901 ao ano 2155. O campo pode ter tamanho dois ou tamanho 4 dependendo de se queremos armazenar o ano com dois ou quatro algarismos.



3 Tipos de string: 



Tipo de campoTamanho de Armazenamento
CHAR(n)n bytes
VARCHAR(n)n +1 bytes
TINYBLOB, TINYTEXTLongitude+1 bytes
BLOB, TEXTLongitude +2 bytes
MEDIUMBLOB, MEDIUMTEXTLongitude +3 bytes
LONGBLOB, LONGTEXTLongitude +4 bytes
ENUM('value1','value2',...)1 ó dos bytes dependendo do número de valores
SET('value1','value2',...)1, 2, 3, 4 ó 8 bytes, dependendo do número de valores

Diferença de armazenamento entre os tipos Char e VarChar 
  
ValorCHAR(4)ArmazenamentoVARCHAR(4)Armazenamento
''''4 bytes"1 byte
'ab''ab '4 bytes'ab'3 bytes
'abcd''abcd'4 bytes'abcd'
'abcdefgh''abcd'4 bytes'abcd'5 bytes

Char(n): armazena uma string de longitude fixa. A string poderá conter desde 0 até 255 caracteres. 

VarChar(n): armazena uma string de longitude variável. A string poderá conter desde 0 até 255 caracteres. Dentro dos tipos de string pode-se distinguir dois subtipos, os tipo Test e os tipo Blob (Binary Large Object) A diferença entre um tipo e outro é o tratamento que recebem na hora de ordená-los e compará-los. No tipo test ordena-se sem ter importância as maiúsculas e as minúsculas e no tipo blob ordena-se tendo em conta as maiúsculas e minúsculas. 

Os tipos blob utilizam-se para armazenar dados binários como podem ser arquivos. 

TinyText e TinyBlob: Coluna com uma longitude máxima de 255 caracteres. 

Blob e Text: um texto com um máximo de 65535 caracteres. 

MediumBlob e MediumText: um texto com um máximo de 16.777.215 caracteres. 

LongBlob e LongText:  um texto com um máximo de caracteres 4.294.967.295. Há que ter em conta que devido aos protocolos de comunicação os pacotes podem ter um máximo de 16 Mb. 

Enum: campo que pode ter um único valor de uma lista que se especifica. O tipo Enum aceita até 65535 valores diferentes. 

Set: um campo que pode conter nenhum, um ou vários valores de uma lista. A lista pode ter um máximo de 64 valores. 


0 comments:

Postar um comentário

Promoções da Semana