Quarta-feira, 02 de julho de 2003 às 01h59

Migrando do Access para o MySQL - Parte 01 - Comparando os tipos de da

Conheça o curso ao vivo: Redes e Protocolos TCP/IP Avançado com Laboratório

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!

3 comentários

 Otavio Galani Junior
28/03/2006 17h07

Erros!!!!

Ola gostaria de saber quais tipos de erros podem aparecer durante a transferencia de dados do Access para o MySQL??

 Eduardo
17/03/2010 12h27

Faltou a parte 2!

 Evandson
21/03/2010 18h27

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

Cancelar resposta

Qual a sua opinião?

Se você já possui conta iMasters, o login será feito abaixo.

Atenção: comentários considerados spams e/ou ofensivos serão moderados.

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.