Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

¿Cuál es la diferencia entre los tipos de datos varchar y char en SQL Server?

Estas en el tema de ¿Cuál es la diferencia entre los tipos de datos varchar y char en SQL Server? en el foro de Bases de Datos General en Foros del Web. Pues eso. ¿Cuál es la diferencia entre varchar y char?...
  #1 (permalink)  
Antiguo 22/02/2005, 16:19
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 9 meses
Puntos: 6
¿Cuál es la diferencia entre los tipos de datos varchar y char en SQL Server?

Pues eso. ¿Cuál es la diferencia entre varchar y char?
  #2 (permalink)  
Antiguo 22/02/2005, 16:30
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 11 meses
Puntos: 38
varchar es de longitud variable

un varchar es un campo de tipo char de longitud variable...es decir puede contener menos de su longitud maxima..

un char es un campo de longitud fija...

para mas detalle verifica los libros de ayuda de SQL Server..

Saludos
  #3 (permalink)  
Antiguo 22/02/2005, 16:40
Avatar de Aisengard  
Fecha de Ingreso: marzo-2003
Ubicación: en el ojo de la tormenta
Mensajes: 3.566
Antigüedad: 21 años, 8 meses
Puntos: 0
Y no existe una url que trate sobre el tema?

Cordiales Saludos
__________________
Lo que puedes hacer, o has soñado que podrías hacer, debes comenzarlo. La osadía lleva en sí, genio, poder y magia". :aplauso: (J.W. von Goethe)


  #4 (permalink)  
Antiguo 22/02/2005, 16:40
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 9 meses
Puntos: 6
Esa definición ya la conocía.

Pero vamos a ver: si yo tengo char(20), da igual, puedo meter caracteres de menos que no me va a decir que no.
  #5 (permalink)  
Antiguo 22/02/2005, 16:55
 
Fecha de Ingreso: febrero-2005
Mensajes: 66
Antigüedad: 19 años, 9 meses
Puntos: 0
Claro, si insertas un registro que ocupe menos que 20, no pasa nada y va a ocupar menos espacio (lo que ocupe en realidad el campo que ingresas) en el disco, por eso es variable.
  #6 (permalink)  
Antiguo 22/02/2005, 18:19
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 7 meses
Puntos: 25
En el caso de los chars puedes tener problemas por los espacios a la hora de los filtros.

Prueba:

CREATE TABLE #tabla(a VARCHAR(10), b CHAR(10))
INSERT INTO #tabla VALUES ('jeje', 'jeje')
INSERT INTO #tabla VALUES ('juju', 'juju')
SELECT '*'+a+'*' as a, '*'+b+'*' as b FROM #tabla

Cabe hacer mencionar que los NVARCHAR son mas lentos en ejecución, pero tipicamente mas efectivos en almacenamiento. Analiza que es lo que necesitas.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #7 (permalink)  
Antiguo 22/02/2005, 19:47
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 9 meses
Puntos: 6
Me lo has aclarado, gracias (he probado tu script y he visto algo que no dices aquí: que el char te rellena con espacios en blanco hasta llegar al tamaño especificado. Y sí, esto puede dar muchos problemas, con los filtros y con más cosas).

¿Y qué diferencia hay entre los nvarchar y varchar? ¿La que has dicho y ya está, no? Que en cuanto al uso no hay diferencia, quiero decir, y en lo que muestre la tabla no habrá diferencia (como sí la hay entre char y varchar).
  #8 (permalink)  
Antiguo 22/02/2005, 20:02
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 9 meses
Puntos: 6
Entre varchar y nvarchar ya sé la diferencia: nvarchar es para almacenar datos de caracteres internacionales y UNICODE.

Otra pregunta: ¿qué diferencia hay entre un dato de tipo numeric y uno de tipo decimal?
  #9 (permalink)  
Antiguo 22/02/2005, 20:07
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
decimal tiene precision(puedes definir hasta cuantos decimales), numeric creo que no
  #10 (permalink)  
Antiguo 22/02/2005, 20:44
 
Fecha de Ingreso: febrero-2005
Mensajes: 66
Antigüedad: 19 años, 9 meses
Puntos: 0
Muy buena aclaración de Mithrandir, La verdad que yo no sabía eso. Pensé que solo era un tema de espacio y performance.
  #11 (permalink)  
Antiguo 23/02/2005, 00:43
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 8 meses
Puntos: 1
El Numeric Tambien Te Estable La Cantidad De Enteros Y Deciamles
__________________
http://www.luisariashidalgo.com
  #12 (permalink)  
Antiguo 23/02/2005, 09:01
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 9 meses
Puntos: 6
Mikel, como te dice OYEME, el numeric también te establece el número de cifras enteras y decimales. Por eso, que: ¿cuál es la diferencia?
  #13 (permalink)  
Antiguo 24/02/2005, 16:15
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 7 meses
Puntos: 25
NUMERIC y DECIMAL son sinóminos, son términso intercambiables. El estándar es DECIMAL, NUMERIC si mal no recuerdo está solo por compatibilidad hacia atrás, pero no debe de ser usado en nuevos desarrollos.
Cita:
Iniciado por un_tio
Me lo has aclarado, gracias (he probado tu script y he visto algo que no dices aquí: que el char te rellena con espacios en blanco hasta llegar al tamaño especificado. Y sí, esto puede dar muchos problemas, con los filtros y con más cosas).
Exacto, por eso es que te dije que puedes tener problemas con los filtros, si por ejemplo buscas con WHERE campo = 'algo' no lo encontrará por que faltarán los espacios de relleno (leading spaces)
Cita:
¿Y qué diferencia hay entre los nvarchar y varchar? ¿La que has dicho y ya está, no? Que en cuanto al uso no hay diferencia, quiero decir, y en lo que muestre la tabla no habrá diferencia (como sí la hay entre char y varchar).
Tu mismo lo has encontrado, tienen que ver con UNICODE, en general es mejor usar NVARCHAR y NCHAR por cuestiones de compatibilidad.

Aunque la desventaja es que Unicode te cosume el doble (2 bytes por caracter) de espacio que ANSI (1 byte por caracter)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #14 (permalink)  
Antiguo 30/12/2009, 08:31
 
Fecha de Ingreso: diciembre-2009
Ubicación: Perú
Mensajes: 25
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: ¿Cuál es la diferencia entre los tipos de datos varchar y char en SQL Serv

Buenas dias.. , bien , mi pregunta es ¿Cuál es el la definición general de Varchar en SQL ?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 4 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 23:08.