[Mio] SQL VARCHAR Dimensioni e terminazione null
-
16-09-2019 - |
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.
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.