No banco de dados MySQL podemos ter 3 tipos de campos diferentes.
1 Tipos numéricos:
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 assinado. Assinado, 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 assinado. Assinado, 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 assinado. Assinado, 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:
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:
Diferença de armazenamento entre os tipos Char e VarChar
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.
1 Tipos numéricos:
Tipo de Campo | Tamanho de Armazenamento |
---|---|
TINYINT | 1 byte |
SMALLINT | 2 bytes |
MEDIUMINT | 3 bytes |
INT | 4 bytes |
INTEGER | 4 bytes |
BIGINT | 8 bytes |
FLOAT(X) | 4 ou 8 bytes |
FLOAT | 4 bytes |
DOUBLE | 8 bytes |
DOUBLE PRECISION | 8 bytes |
REAL | 8 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 assinado. Assinado, 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 assinado. Assinado, 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 assinado. Assinado, 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 Campo | Tamanho de Armazenamento |
---|---|
DATE | 3 bytes |
DATETIME | 8 bytes |
TIMESTAMP | 4 bytes |
TIME | 3 bytes |
YEAR | 1 byte |
Tamanho | Formato |
---|---|
14 | AnoMesDiaHoraMinutoSegundo aaaammddhhmmss |
12 | AnoMesDiaHoraMinutoSegundo aammddhhmmss |
8 | AnoMesDia aaaammdd |
6 | AnoMesDia aammdd |
4 | AnoMes aamm |
2 | Ano aa |
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 campo | Tamanho de Armazenamento |
---|---|
CHAR(n) | n bytes |
VARCHAR(n) | n +1 bytes |
TINYBLOB, TINYTEXT | Longitude+1 bytes |
BLOB, TEXT | Longitude +2 bytes |
MEDIUMBLOB, MEDIUMTEXT | Longitude +3 bytes |
LONGBLOB, LONGTEXT | Longitude +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
Valor | CHAR(4) | Armazenamento | VARCHAR(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:
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