Pergunta

Disclaimer: Eu sou muito novo para SQL e bancos de dados em geral

.

Eu preciso para criar um campo que irá armazenar um máximo de 32 caracteres de dados de texto. Faz "VARCHAR(32)" significa que eu tenho exatamente 32 caracteres para os meus dados? Preciso reservar um caractere extra para nulo-rescisão?

I realizou um teste simples e parece que este é um tampão WYSIWYG. No entanto, eu queria ter uma resposta concreta de pessoas que realmente sabem o que estão fazendo.


Eu tenho um C fundo [++], pelo que esta questão é elevar o alarme na minha cabeça.

Foi útil?

Solução

Sim, você tem 32 caracteres à sua disposição. SQL não preocupar-se com nul cordas terminados como algumas linguagens de programação fazer.

Outras dicas

Seu VARCHAR tamanho especificação é o tamanho máximo dos seus dados, portanto, neste caso, 32 caracteres. No entanto, VARCHARs são um campo dinâmico, de modo que o armazenamento físico real usado é apenas o tamanho de seus dados, além de um ou dois bytes.

Se você colocar uma seqüência de 10 caracteres em um VARCHAR (32), o armazenamento físico será 11 ou 12 bytes (o manual irá dizer-lhe a fórmula exata).

No entanto, quando o MySQL é lidar com conjuntos de resultados (ie., Após uma SELECT), 32 bytes serão alocados na memória para esse campo para cada registro.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top