Esta série de artigos têm como objetivo ajudar os desenvolvedores que, atualmente, utilizam o Microsoft Access como base de dados de seus sites e pretendem migrar para o MySQL. Este primeiro artigo da série aborda os tipos de dados com os quais os dois softwares trabalham. Nos próximos artigos desta série, serão abordados os tipos de tabelas, os relacionamentos e, para finalizar a série, algumas consultas de exemplos.
Com relação aos tipos de dados, iniciaremos
agora uma comparação dos dois softwares.
Microsoft Access
O Microsoft Access possui 10 tipos de dados diferentes,
que são:
- Texto: Qualquer seqüência
de caracteres com, no máximo, 255 caracteres.
- Memorando: Qualquer seqüência
de caracteres com, no máximo, 32000 caracteres.
- Número: Valores numéricos de
1 a 8 bytes.
- Data/Hora: Valores de data ou hora.
- Moeda: Valores monetários.
- AutoNumeração: insere um código
(normalmente, utilizado como chave primária) que pode ser
aleatório ou com incremento.
- Sim/Não: Tipo de dados de valor lógico
(verdadeiro ou falso).
- Objeto OLE: Este é um recurso que serve
para inserir imagens ou arquivos de mídia no banco de dados.
Não é recomendável utilizar esse campo para
sites da web, porque o banco de dados ficará muito pesado.
Isso ocorre porque o volume de informações utilizado
para representar um objeto é, freqüentemente, maior
que o tamanho do próprio objeto.
- Hyperlink: Serve para armazenar hyperlinks
no banco de dados.
- Assistente de pesquisa: Na verdade, não
é bem um tipo de dado, mas um assistente que estabelece
uma relação com outra tabela ou com outros dados,
que podem ser utilizados em um formulário, por exemplo.
MySQL
O MySQL possui os seguintes tipos de dados:
Strings (caracteres) _________________
- Char: Este tipo de dado armazena
uma string de tamanho fixo, com espaços à direita.
Se o valor for menor que o tamanho estabelecido para o campo,
ele ocupará o tamanho fixado. O tamanho desse campo varia
de 1 a 255 caracteres. Na consulta, o MySQL ignora os espaços
que não foram ocupados.
- Varchar: O tipo de dado VARCHAR (Character
Varying) armazena uma string de tamanho variável, com tamanho
mínimo de 1 caracter e máximo de 255. Os espaços
que não foram ocupados são retirados antes do armazenamento,
tornando o banco de dados mais leve.
- Tinytext: Tipo de dado que pode armazenar até
255 caracteres.
- Text: Tipo de dado que pode armazenar até
65.535 caracteres.
- Mediumtext: Permite que sejam armazenados até
16.777.215 caracteres.
- Longtext: Permite que sejam armazenados até
4.294.967.295 caracteres.
- Tinyblob, Blob, Mediumblob, Longblob: armazenam
dados no formato binário, distinguindo, por exemplo, maiúsculas
de minúsculas. Quanto ao armazenamento de dados, são
iguais aos correspondentes no tipo text .
- Enum: Permite que seja determinada uma lista
de valores válidos para o campo, que somente vai aceitar
ou um desses valores listados ou um valor NULL. Aceita até
65.535 valores.
- Set: É o mesmo tipo do ENUM, só
que esse tipo não aceita nenhum, aceita um, ou até
mesmo vários valores da lista (o ENUM só aceita
um valor da lista). Aceita até 64 valores.
Numéricos _________________
- Tinyint: Tipo numérico
que pode variar de -128 a 127. E de 0 a 255, caso o parâmetro
UNSIGNED seja utilizado.
- Smallint: Tipo numérico que pode variar
de -32768 a 32767. E de 0 a 65355, caso o parâmetro UNSIGNED
seja utilizado.
- Mediumint: Tipo numérico que pode variar
de -8388608 a 8388607. E de 0 a 16777215, caso o parâmetro
UNSIGNED seja utilizado. Este tipo de dado pode ser utilizado
com incremento para fazer o que a autonumeração
do Access faz.
- Int: Tipo numérico que pode variar de
-2147483648 a 2147483647. E de 0 a 4294967295, caso o parâmetro
UNSIGNED seja utilizado.
- Bigint: Tipo numérico que pode variar
de -9223372036854775808 a 9223372036854775807. E de 0 a 18446744073709551615,
caso o parâmetro UNSIGNED seja utilizado.
- Float: Armazena um número do tipo ponto
flutuante de precisão simples. Varia de -3.402823466E+38
a -1.175494351E-38, 0, e 1.175494351E-38 a 3.402823466E+38. O
parâmetro UNSIGNED não é aceito por esse tipo
de dado.
- Double: Armazena um número do tipo ponto
flutuante de precisão dupla. Varia de -1.7976931348623157E+308
a -2.2250738585072014E-308, 0, e 2.2250738585072014E-308 a 1.7976931348623157E+308.
Também não aceita o parâmetro UNSIGNED.
- Decimal: tipo de dado numérico que se
comporta como o do tipo CHAR, ou seja, cada dígito ocupa
1 byte.
Data/Hora _________________
- Date: Este tipo de dado pode armazenar
uma data no formato AAAA-MM-DD.
- Datetime: Pode armazenar uma data no formato
AAAA-MM-DD e uma hora no formato HH:MM:SS.
- Timestamp: Oferece como vantagem a possibilidade
de inserção automática da data/hora atual.
Para que seja inserido automaticamente, basta que o campo não
seja informado no momento de inserção do registro
(parecido com a função Agora() do Access).
- Time: armazena um valor qualquer de tempo,
no formato HH:MM:SS.
- Year: armazena um ano qualquer, podendo ser
de dois ou quatro dígitos.
Como podemos notar, o MySQL possui mais opções de tipos de dados do que o Microsoft Access. Essa característica, associada à rapidez do MySQL, faz com que ele seja um dos bancos de dados mais recomendados para sites da web. É bom lembrar que o Microsoft Access também não é o banco de dados que a Microsoft indica para aplicações de grande porte (nesse caso é oferecido o SQL Server). O Access foi utilizado como comparação, pelo fato de ele ser bastante utilizado para pequenos e médios sites da web, concorrendo nesse meio com o MySQL.
No próximo artigo da série, abordaremos os tipos de tabelas que são possíveis de serem utilizadas no MySQL.
Até a próxima! Bom estudo!
Otavio Galani Junior
Ola gostaria de saber quais tipos de erros podem aparecer durante a transferencia de dados do Access para o MySQL??
Evandson
Como faço uma consulta no Access com o seguinte parametro:
SELECT `hora` FROM `tabela` WHERE `relogio` > '16/3/2009 15:05:05'
onde relogio é um campo tipo datetime ???
Eu tenho uma função para consulta que funciona perfeitamente, com exceção dessa ai de cima o.o
Atenciosamente, um Fã :D
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.