Cuándo usar varchar?

18/01/2008 - 19:38 por Alberto | Informe spam
Veo que las columnas de tipo varchar adaptan su tamaño a su contenido. ¿Hay
alguna razón para no utilizarlas siempre en lugar del tipo de dato char?
Gracias
 

Leer las respuestas

#1 Gux (MVP)
18/01/2008 - 19:58 | Informe spam
El tipo de datos CHAR es de largo fijo, VARCHAR es de largo variable. Una
columna de tipo CHAR siempre ocupará exactamente los mismos bytes. Una
columna VARCHAR ocupará tantos bytes según sean los datos insertados.

Por lo tanto, una primera idea es usar CHAR cuando usamos textos de largo
fijo (por ejemplo, los códigos de estados de EE.UU. son siempre de 2
caracteres, entonces es razonable que se representen usando CHAR(2)).

Mi regla personal no-científica es usar VARCHAR cuando tengo datos de texto
de largo variable, pero con una cantidad mínima de hasta 10. Si tengo datos
variables pero de menos de 10 caracteres prefiero usar CHAR(10).

En versiones antiguas de SQL Server (notablemente en 6.5), las comparaciones
de string entre datos de largo variable era menos eficiente que con largo
fijo. Eso llevaba entonces a, por ejemplo, implementar todas las claves
primarias que usaban string, a tener tipo CHAR. En las versiones actuales no
hay mucha necesidad de ese tipo de sintonías finas.




The char is a fixed-length character data type, the varchar is a
variable-length character data type.

Because char is a fixed-length data type, the storage size of the char value
is equal to the maximum size for this column. Because varchar is a
variable-length data type, the storage size of the varchar value is the
actual length of the data entered, not the maximum size for this column.

You can use char when the data entries in a column are expected to be the
same size.
You can use varchar when the data entries in a column are expected to vary
considerably in size.

Gustavo Larriera, Microsoft MVP
https://mvp.support.microsoft.com/profile/gux
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Alberto" wrote:

Veo que las columnas de tipo varchar adaptan su tamaño a su contenido. ¿Hay
alguna razón para no utilizarlas siempre en lugar del tipo de dato char?
Gracias



Preguntas similares