CHAR vs VARCHAR vs VARCHAR2 vs NCHAR vs NVARCHAR2 vs CLOB

Cuando estaba definiendo los tipos de datos de una base de datos muy importante me encontré con la novedad de qué tipos de dato escoger para varios caracteres, así que buscando encontré esto:

Yo voy a usar VARCHAR2 para letras y números, mientras que para caracteres alfanuméricos voy a usar NVARCHAR2.




Aquí la explicación:

Tipo de dato CHAR(b) 
Almacena cadenas de caracteres de longitud fija, desde 1 a 2.000 bytes de ocupación. El número de caracteres que se pueden almacenar se rige según la siguiente fórmula: 

nº caracteres = bytes / character set Para ASCII, el conjunto de caracteres ocupa un byte, por lo que coincide el número de caracteres máximos con la ocupación del tipo de dato. Si se introduce un valor de 10 caracteres en un campo de CHAR(100), se rellenará con espacios las 90 posiciones restantes. Así la siguiente expresión es cierta: 

'Hola pepe' = 'Hola pepe ' 

Si se intenta introducir un valor demasiado grande para el campo, se intentará eliminar los espacios finales, y si cabe sin espacios, se introduce. Si aún así no cabe, se retorna un error. 

Tipo de dato VARCHAR2(b) Almacena cadenas de caracteres de longitud variable. Si se define una columna de longitud 100 bytes, y se introduce en ella un valor de 10 bytes, la columna ocupará 10 y no 100 como hacía con el tipo de dato CHAR. 

Tipo de dato VARCHAR(b) En Oracle8 es equivalente a VARCHAR2, en futuras versiones permitirá distintos criterios de comparación. 

Tipo de dato NCHAR(b) Almacena un valor alfanumérico de longitud fija con posibilidad de cambio de juego de caracteres. Puede almacenar tanto caracteres ASCII, EBCDIC, UNICODE… 

Tipo de dato NVARCHAR2(b) Almacena un valor alfanumérico de longitud variable con posibilidad de cambio de juego de caracteres. Puede almacenar tanto caracteres ASCII, EBCDIC, UNICODE… 

Tipo de datos CLOB(b)
Almacena grandes cantidades de caracteres, >4000 caracteres. LOB: Large Objects.




Fuentes
http://www.postgresql.org/docs/9.1/static/datatype-character.html
https://community.oracle.com/thread/493421?start=0&tstart=0
https://espanol.answers.yahoo.com/question/index?qid=20061206005207AAgKzb0


No hay comentarios:

Publicar un comentario