Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

DiegoribSantos

Problemas com tipos, no mysql

Recommended Posts

Olá Pessoal,

Sou um desenvolvedor que na maior parte do tempo utilizou o SQL Server nas suas aplicações.

Recentemente, comecei a utilizar o MySql, e me deparei com algumas situações curiosas, desde, campos "not null" permitindo nulos, até campos "char(5)", por exemplo, permitindo 3 caracteres...

 

Fico curioso com isso, pois não entendo a causa destas "falhas".

Como no SQL Server isto não é possível, me perco as vezes nas opções que tenho para uma simples query.

 

Um outro exemplo que me deparei hoje foi no caso do "group by".

No SQL Server, todos os campos selecionados devem constar no group by, já no MySql, não tive este problema.

 

Enfim, gostaria apenas de saber o motivo destas coisas acontecerem nesta ferramenta...

 

Agradeço a ajuda de todos...

 

Obs.: Isso não aconteceu em apenas um caso, por tanto, duvido que tenha sido um erro de sql no momento da criação do banco...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá...

 

Char (https://dev.mysql.com/doc/refman/5.0/en/char.html)

 

Ao especificar um campo com tipo char(5) ainda que insira um registro, por exemplo, somente com um caractere, ele irá gravar sem problemas (ex: 'a '), ou seja, ainda que o campo seja char(200) e você gravar um registro com apenas um caractere, será ocupado todos os bytes :)

 

not null

 

Muitos confundem isso ( not null != '' )

Faça um teste no console do mysql.

mysql> SELECT LENGTH('');
-> 0
mysql> SELECT LENGTH(null);
-> NULL

 

Espero ter ajudado com esse resumão

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.