Tipos de Datos de SQLite (ayuda!!)

Iniciado por Skeletron, 12 Octubre 2009, 23:03 PM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

Ahh.. ok. perfecto, me quedo claro..
Son las que nombraste, mas las que aparecen en la documentacion de SQLite...
Gracias amigo..

seba123neo

Cita de: ^TiFa^ en 14 Octubre 2009, 14:12 PM
Porsupuesto que se puede. Si yo hago:

CREATE TABLE TABLA(
nombre char(20));

Y en mi programa o script puedo insertar 50 caracteres y alegrarme y decir yupi :D engane a la base de datos, le puse de almacenamiento a dicho campo nombre solo 20 y inserte 50 soy un genio !!!   ;-)  Y cuando ingreses a la base de datos y hagas un SELECT nombre from TABLA veras algo muy curioso.... y diras pero que paso??? yo inserte 50 caracteres y esta cosa me lo corto a 20 caracteres  :(   :(  Sinceramente.... no voy a opinar en un tema tan simple como son los tipos de datos y como el motor maneja la cantidad de almacenamiento.

en la pagina dice esto:

SQLite does not enforce the length of a VARCHAR. You can declare a VARCHAR(10) and SQLite will be happy to let you put 500 characters in it. And it will keep all 500 characters intact - it never truncates.

te digo lo que hice, cree una tabla con un campo varchar(50), le agrege 100 caracteres por lo menos...hice un select y me trajo tal cual los 100.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Skeletron


^Tifa^

#13
Perfecto si SQLite maneja el asunto de esa manera. No es lo estandar que conste (Lo estandar es que trunque hasta el limite de almacenamiento definido) al menos la teoria de truncar hasta el limite aplica en la mayoria de base de datos relacionales existentes. Inconvenientes que ese funcionamiento de SQLite con varchar puede causar? bueno, hay que ver a la hora de migrar datos de SQLite donde se definan varchar(20) inserten 100 caracteres, y esta misma tabla pase a MySQL, MySQL bastante probable trunquee los caracteres hasta 20 ya que el tipo de datos CHAR asi funciona en la mayoria de DB relacionales populares del mercado, no estoy muy al tanto de SQLite no lo utilizo, solo hice una referencia de los tipos de datos comunes en todas las DB (nisiquiera mencione TEXT puesto que no aplica en todas las DB) y de la forma como los motores trabajan con ellos, ahora que SQLite haya personalizado el tipo de dato VARCHAR o haya hecho una copia de TEXT como VARCHAR ya es otra cosa, pero eso no aplica en otras DB de nivel profesional.

Citar
  Insertar Cita
Miren:
Para aclarar algunas dudas:

Por cierto cuales dudas aclaras???? no me hagas repetir en un copy + paste los tipos de datos otra vez  :-\  que son los mismos que mencione, a excepcion de unos cuantos mas que no quize mencionar porque no aplican en todas las base de datos y yo quize ser mas general.

seba123neo

Cita de: ^TiFa^ en 15 Octubre 2009, 02:38 AM
Perfecto si SQLite maneja el asunto de esa manera. No es lo estandar que conste (Lo estandar es que trunque hasta el limite de almacenamiento definido) al menos la teoria de truncar hasta el limite aplica en la mayoria de base de datos relacionales existentes. Inconvenientes que ese funcionamiento de SQLite con varchar puede causar? bueno, hay que ver a la hora de migrar datos de SQLite donde se definan varchar(20) inserten 100 caracteres, y esta misma tabla pase a MySQL, MySQL bastante probable trunquee los caracteres hasta 20 ya que el tipo de datos CHAR asi funciona en la mayoria de DB relacionales populares del mercado, no estoy muy al tanto de SQLite no lo utilizo, solo hice una referencia de los tipos de datos comunes en todas las DB (nisiquiera mencione TEXT puesto que no aplica en todas las DB) y de la forma como los motores trabajan con ellos, ahora que SQLite haya personalizado el tipo de dato VARCHAR o haya hecho una copia de TEXT como VARCHAR ya es otra cosa, pero eso no aplica en otras DB de nivel profesional.

yo tampoco estoy muy metido en SQL Lite yo estoy en SQL Server, MySQL...pero me parecio raro el tema del tamaño del campo.pero se ve que estaba equivocado, se ve que depende del administrador que tengas, el que estaba usando yo se ve que no es muy bueno y me dejaba definir un campo varchar(50) por ejemplo y despues meterle lo que quiera y despues al hacer el select salia todo...pero con este SQLite Administrator no...lo hace bien, te deja definir el tamaño del campo y te lo trunca bien como debe ser y no te deja agregar mas de lo que es.¿ahora yo me pregunto porque dice eso en la pagina de SQL Lite?

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

^Tifa^

Citar¿ahora yo me pregunto porque dice eso en la pagina de SQL Lite?

La verdad yo ni idea  :-\  lo normal y lo correcto es que los tipos de datos char y varchar trunquen datos al insertar mas del tamanio maximo colocado... por ende si SQLite aun maneja la situacion sin evaluar esto sera un tipo de dato VARCHAR personalizado por ellos mismos o no sabria  :-\

Pero que no se fie de esto si desea portabilidad  :P