elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Tipos de Datos de SQLite (ayuda!!)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Tipos de Datos de SQLite (ayuda!!)  (Leído 36,054 veces)
Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Tipos de Datos de SQLite (ayuda!!)
« en: 12 Octubre 2009, 23:03 pm »

Hola gente.. Resulta que en un psot de por allí, se me planteó un problema con el tema de los datos BOOLEAN y de DATE en SQLite ( http://www.sqlite.org/ )


Alguien sabe, conoce exactamente cuales son los tipos de datos de SQLite??? y cuanto ocupa cada uno??
Estaria bueno que pasen alguna tabla :D

Y en caso de que alguien utilice mucho sqlite, y conozca sobre que como conviene guardar fechas, le comento que estoy guardando en un campo: CURRENT_DATE las fechas (las ingreso así: YYYY-MM-DD)
Vi por ahí que hay diferentes tipos, estaba el DATE, CUrrent_date y otros cuantos mas... El Current_date es el mejor?? (no m convence el nombre)

Ya que cuando creé una columna de valores DATE, y le mandé: "YYYY-MM-DD" me devolvió esos valores, mas el horario (00:00:00)

Saludos!


En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Tipos de Datos de SQLite (ayuda!!)
« Respuesta #1 en: 13 Octubre 2009, 22:19 pm »

Las bases de datos relacionales utilizan el mismo tipo de datos primitivos que vemos en programacion + los 'extras' desarrollados por cada DB llamados tipos de datos ANSI SQL.

Pero te hablare de los generales y comunes en todas:

CHAR - 1 byte en memoria
VARCHAR - 2 byte + 1 en memoria
FLOAT - 4 bytes en memoria
INTEGER - 4 bytes en memoria
DOUBLE/REAL - 8 bytes en memoria
DATE - 3 bytes en memoria
TIME - 3 bytes en memoria
YEAR - 1 byte en memoria
DATETIME - 8 bytes en memoria
TIMESTAMP - 4 bytes en memoria
BOOLEAN - 1 byte en memoria

No confundas cantidad de memoria que ocupa un tipo de dato, a tamanio de almacenamiento de un campo. Por ejemplo el siguiente campo:

nombre char(20)

el tipo de dato al ser CHAR en memoria fisica (memoria ram) ocupa 1 byte, sin embargo los registros que insertes ocuparan 20 bytes en cache y disco duro  ;) (sobretodo porque CHAR es un tipo de dato estatico no dinamico) Y lo mismo ocurre con cualquier tipo de dato.

No conozco que tipo de dato maneja CURRENT_DATE (ya que en otras DB es una funcion) pero por lo que muestras, pareciese que es o DATETIME o TIMESTAMP, yo te recomendaria que utilizes y definas tu mismo el campo con tu tipo de dato fecha.


En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Tipos de Datos de SQLite (ayuda!!)
« Respuesta #2 en: 13 Octubre 2009, 22:33 pm »

Entonces tengo cualquier cosa guardada como FECHA...
Como me recomiendan guardar las fechas entonces??'
Como u campo TEXT y listo???
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Tipos de Datos de SQLite (ayuda!!)
« Respuesta #3 en: 13 Octubre 2009, 22:43 pm »

No dije especificamente que tienes cualquier cosa guardada como fecha, sino que yo particularmente desconozco en SQLite si la funcion CURRENT_DATE maneja los datos como DATETIME o TIMESTAMP (fisicamente los datos son mostrados iguales, pero internamente un tipo de dato ocupa 8 bytes el otro 4 bytes)

No puedes ingresar una fecha en tipo de dato TEXT (no hice mencion de TEXT ya que no todas las DB tienen este personalizado tipo de dato ANSI, esto hazta lo que se es de MySQL) Yo solo hice mencion de los tipos de datos globales que se que todas las DB relacionales ANSI SQL compatibles utilizan. No es que no puedas insertar una fecha en el tipo de dato TEXT porque puedes (aunque tu mismo tendrias que ponerle la sintaxis 00-00-000) sino porke este tipo de datos maneja caracteres no binarios. Deberias utilizar depende tus necesidades, pero podrias considerar el tipo de dato DATE.
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Tipos de Datos de SQLite (ayuda!!)
« Respuesta #4 en: 14 Octubre 2009, 04:53 am »

he estado viendo algo de SQLlite y vi que no se puede hacer algo como dijo ^TiFa^  :-*..... de hacer nombre char(20) en la misma pagina oficial lo dice, que por mas que pongas nombre char(20) podes escribir lo que quieras...es eso verdad? o estoy equivocado? pero si la pagina lo dice.
« Última modificación: 14 Octubre 2009, 05:59 am por seba123neo » En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Tipos de Datos de SQLite (ayuda!!)
« Respuesta #5 en: 14 Octubre 2009, 05:47 am »

Bueno, pero.. y al final.. que "VARIABLE" me conviene para guardar Fechas que le paso como parametro como STRING.. o sea.. sin metodos apra obtener la fecha actual... yo mismo le digo desde un campo (textarea) que la fecha es 2009-10-20

En que variable tendria que guardarla?? en una de texto comun?? en una de DATE..?? diganme.. que me recomiendan :)
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Tipos de Datos de SQLite (ayuda!!)
« Respuesta #6 en: 14 Octubre 2009, 06:19 am »

guardala en cualquiera de las 2, yo te diria en un string por ejemplo, total despues si necesitas hacer operaciones de fecha, la convertis con CDate() y listo, pero para cuando quieras guardar en la base la fecha, guardarla desde en una string...formateada al formato correspondiente...

saludos.
En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Tipos de Datos de SQLite (ayuda!!)
« Respuesta #7 en: 14 Octubre 2009, 06:30 am »

Perefcto...

Al fin y al cabo, no se ha respondido la pregunta numero 1..
Cuales son lso tipos de datos que se guardan en SQLite
No creo que sean SOLAMENTE: http://www.sqlite.org/datatype3.html
Esos pocos que aparecen ahí..
O será así?!?!?
Nada de VARCHAR, ni nada de eso.. TEXT, REAL, BLOB, e INTEGER.. y nada mas.. Será realmente así?
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Tipos de Datos de SQLite (ayuda!!)
« Respuesta #8 en: 14 Octubre 2009, 14:12 pm »

Todas las bases de datos relacionales y compatibles al ANSI SQL poseen los siguientes tipos de datos (Esto es general en todas):

Citar
CHAR - 1 byte en memoria
VARCHAR - 2 byte + 1 en memoria
FLOAT - 4 bytes en memoria
INTEGER - 4 bytes en memoria
DOUBLE/REAL - 8 bytes en memoria
DATE - 3 bytes en memoria
TIME - 3 bytes en memoria
YEAR - 1 byte en memoria
DATETIME - 8 bytes en memoria
TIMESTAMP - 4 bytes en memoria
BOOLEAN - 1 byte en memoria


Citar
Al fin y al cabo, no se ha respondido la pregunta numero 1..
Cuales son lso tipos de datos que se guardan en SQLite

Ya te respondi, y vuelvo y te lo pego en esta respuesta mas arriba. Inclusive te hice una explicacion ligera sobre cuanto bytes en memoria ram ocupan cada tipo de datos. Y te hice una clarificacion de cual te convenia, pero aparentase que no comprendes del todo lo que intento exponerte.


Citar
Nada de VARCHAR, ni nada de eso.. TEXT, REAL, BLOB, e INTEGER.. y nada mas.. Será realmente así?

SQLite posee CHAR, VARCHAR esos dos tipos de datos son primitivos, todas las bases de datos relacionales y compatibles al ANSI SQL lo poseen.

Citar
he estado viendo algo de SQLlite y vi que no se puede hacer algo como dijo ^TiFa^  :-*..... de hacer nombre char(20) en la misma pagina oficial lo dice, que por mas que pongas nombre char(20) podes escribir lo que quieras...es eso verdad? o estoy equivocado? pero si la pagina lo dice.

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.

Citar
guardala en cualquiera de las 2, yo te diria en un string por ejemplo, total despues si necesitas hacer operaciones de fecha, la convertis con CDate() y listo, pero para cuando quieras guardar en la base la fecha, guardarla desde en una string...formateada al formato correspondiente...

Eso es irrelevante, porque tiene que convertir tipos de datos cuando YA EXISTE un tipo de dato fecha en las base de datos relacionales??? como le dije anteriormente y vuelvo y le repito amigo para el campo fecha utilize el tipo de datos DATE si solamente desea insertar el anio utilize YEAR y si solo quiere la hora utilize TIME... es tan complicado entender esto???

En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Tipos de Datos de SQLite (ayuda!!)
« Respuesta #9 en: 14 Octubre 2009, 14:23 pm »

y otra cosilla el tipo de dato TEXT que aunque maneje caracterescomo VARCHAR o CHAR, tiene caracteristicas que lo limitan entre estas:

1 - Si algun dia quieres portar tus tablas a otro motor de base de datos como ORACLE por ponerte un ejemplo, tendras que alterar el campo tipo TEXT a CHAR o VARCHAR ya que TEXT no va en ORACLE. (No es portable digamos)

2 - TEXT no soporta datos DEFAULT como CHAR o VARCHAR si

3 - (No se aca como SQLite maneje este punto) pero hasta lo que conozco en otras DB, para crear indices  en tipo de datos TEXT hay que especificarle un tamanio (cosa que no aplica en CHAR o VARCHAR).

Creo que leer un poco sobre introduccion a lenguaje SQL no caeria nada mal.
« Última modificación: 14 Octubre 2009, 14:39 pm por ^TiFa^ » En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Base de datos embebidas como sqlite pero NoSQL
Programación General
edmond.duke.developer 1 4,875 Último mensaje 13 Agosto 2011, 20:09 pm
por madpitbull_99
ayuda visual fox pro 6.0 ( no coinciden los tipos de datos ) urgente
Programación General
freddybu014 3 2,937 Último mensaje 15 Julio 2015, 06:03 am
por engel lex
Duda SQLite (tipos de datos)
Bases de Datos
ilos28 2 4,683 Último mensaje 22 Noviembre 2015, 22:39 pm
por ilos28
[Python] Excepción al consultar base de datos SQLite [RESUELTO]
Python
MA40 2 3,517 Último mensaje 23 Octubre 2016, 22:57 pm
por MA40
Obtenr Password de Base de Datos de SQLite 2.1
Bases de Datos
CM2ARY 1 2,808 Último mensaje 10 Octubre 2017, 17:43 pm
por Carloswaldo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines