Discussion:
Char, varchar, nvarchar?
(demasiado antiguo para responder)
Virginia Guzon
2006-10-17 08:57:09 UTC
Permalink
Hola a todos,

Que tipo de campo se debe de utilizar en el diseño de una Base de datos en
SQL, char, varchar o nvarchar?
Mi problema es que tengo mis tablas con los campos de texto definidos como
nvarchar y me han dicho que no es lo aconsejable.

Muchas gracias

Un saludo

Virginia.
Carlos Sacristán
2006-10-17 09:21:41 UTC
Permalink
Decir que no es aconsejable así, sin más, no es decir mucho.

Es recomendable usar CHAR cuando el número de caracteres o bien no va a
variar mucho, o bien son pocos (por ejemplo, yo hasta 10 caracteres uso
CHAR); VARCHAR es mejor cuando el número de caracteres puede variar mucho
(un campo almacena 10 letras y otro 50) o quieres almacenar más datos (como
te he dicho, en mi caso a partir de 10); por último, NCHAR o NVARCHAR es
necesario cuando tienes que almacenar caracteres unicode (la principal
diferencia es que ocupan el doble de un campo tipo CHAR / VARCHAR)
--
--
--
--

Un saludo

--
--
----------------------------------------------
"Sólo sé que no sé nada. " (Sócrates)
Post by Virginia Guzon
Hola a todos,
Que tipo de campo se debe de utilizar en el diseño de una Base de datos en
SQL, char, varchar o nvarchar?
Mi problema es que tengo mis tablas con los campos de texto definidos como
nvarchar y me han dicho que no es lo aconsejable.
Muchas gracias
Un saludo
Virginia.
Virginia Guzon
2006-10-17 09:41:12 UTC
Permalink
Gracias Carlos!.

Un saludo

Virginia
Post by Carlos Sacristán
Decir que no es aconsejable así, sin más, no es decir mucho.
Es recomendable usar CHAR cuando el número de caracteres o bien no va a
variar mucho, o bien son pocos (por ejemplo, yo hasta 10 caracteres uso
CHAR); VARCHAR es mejor cuando el número de caracteres puede variar mucho
(un campo almacena 10 letras y otro 50) o quieres almacenar más datos
(como te he dicho, en mi caso a partir de 10); por último, NCHAR o
NVARCHAR es necesario cuando tienes que almacenar caracteres unicode (la
principal diferencia es que ocupan el doble de un campo tipo CHAR /
VARCHAR)
--
--
--
--
Un saludo
--
--
----------------------------------------------
"Sólo sé que no sé nada. " (Sócrates)
Post by Virginia Guzon
Hola a todos,
Que tipo de campo se debe de utilizar en el diseño de una Base de datos
en SQL, char, varchar o nvarchar?
Mi problema es que tengo mis tablas con los campos de texto definidos
como nvarchar y me han dicho que no es lo aconsejable.
Muchas gracias
Un saludo
Virginia.
Rubén Vigón
2006-10-17 09:21:53 UTC
Permalink
Hola Virginia,

Los tipos de datos «nchar» (longitud fija) y «nvarchar» (longitud variable) se utiliza para almacenar cadenas de texto Unicode, las cuales necesitan más espacio de almacenamiento en tu base de datos (dos bytes por cada carácter de la cadena) y admiten un máximo de 4.000 caracteres. Sin embargo, los correspondientes tipos no-Unicode «char» (long.fija) y «varchar» (long.variable) utilizan sólo 1 byte por carácter y admiten cadenas de hasta 8.000 caracteres.

¿Cuándo utilizar tipos Unicode? Cuando en tu aplicación necesites almacenar cadenas de idiomas con alfabetos de más de 256 caracteres, como el «Kanji» japonés o el «Hangul» coreano

¿Cuándo utilizar longitud fija y cuando variable? Utiliza longitud fija cuando preveas que las cadenas van a tener aproximadamente el mismo tamaño (como por ejemplo, el NIF de un proveedor) y utiliza longitud variable cuando preveas que el tamaño de las cadenas va a variar considerablemente (como, por ejemplo, la descripción de un artículo o el domicilio de un cliente)

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Virginia Guzon
2006-10-17 09:40:46 UTC
Permalink
Ruben, muchas gracias por tu respuesta.

Entonces entiendo que en mi caso (no necesito almacenar ni Kanji, ni
Hangul...ja,ja, solo castellano) utilizaré siempre char y varchar, no?

Un saludo

Virginia.

"Rub�n Vig�n" <***@ESTOmvps.org> escribi� en el mensaje news:***@TK2MSFTNGP04.phx.gbl...
Hola Virginia,

Los tipos de datos «nchar» (longitud fija) y «nvarchar» (longitud
variable) se utiliza para almacenar cadenas de texto Unicode, las cuales
necesitan más espacio de almacenamiento en tu base de datos (dos bytes por
cada carácter de la cadena) y admiten un máximo de 4.000 caracteres. Sin
embargo, los correspondientes tipos no-Unicode «char» (long.fija) y
«varchar» (long.variable) utilizan sólo 1 byte por carácter y admiten
cadenas de hasta 8.000 caracteres.

¿Cuándo utilizar tipos Unicode? Cuando en tu aplicación necesites
almacenar cadenas de idiomas con alfabetos de más de 256 caracteres, como el
«Kanji» japonés o el «Hangul» coreano

¿Cuándo utilizar longitud fija y cuando variable? Utiliza longitud fija
cuando preveas que las cadenas van a tener aproximadamente el mismo tamaño
(como por ejemplo, el NIF de un proveedor) y utiliza longitud variable
cuando preveas que el tamaño de las cadenas va a variar considerablemente
(como, por ejemplo, la descripción de un artículo o el domicilio de un
cliente)

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org

Loading...