Domanda

Disclaimer:. Sono molto nuovo a SQL e database in generale


Ho bisogno di creare un campo che memorizza un massimo di 32 caratteri di dati testo. Ha "VARCHAR(32)" significa che io abbia esattamente 32 caratteri per i miei dati? Ho bisogno di prenotare un carattere in più per terminazione null?

ho condotto un semplice test e sembra che questo è un buffer WYSIWYG. Tuttavia, ho voluto ottenere una risposta concreta da parte di persone che realmente sanno quello che stanno facendo.


Ho un [++] fondo C, quindi a questa domanda sta sollevando un campanello d'allarme nella mia testa.

È stato utile?

Soluzione

Sì, avete 32 caratteri a vostra disposizione. SQL non si occupa con nul terminato le stringhe come alcuni linguaggi di programmazione fanno.

Altri suggerimenti

La dimensione specifica VARCHAR è la dimensione massima dei dati, quindi in questo caso, 32 caratteri. Tuttavia, VARCHAR sono un campo dinamico, così l'archiviazione fisico utilizzato è solo la dimensione dei dati, più uno o due byte.

Se si mette una stringa di 10 caratteri in un VARCHAR (32), la memoria fisica sarà 11 o 12 byte (il manuale vi dirà la formula esatta).

Tuttavia, quando MySQL si occupa di insiemi di risultati (es. Dopo un SELECT), 32 byte vengono allocati nella memoria per il campo per ogni record.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top