Android开发:第四日——SQLite初接触

1、SQLite 介绍

  SQLite一个很是流行的轻量级嵌入式数据库,SQLite支持多数的SQL92标准,在一些场合下其性能优于MySql等数据库引擎,而且只利用不多的内存就有很好的性能。此外它仍是开源的,任何人均可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite. SQLite并不像Oracle、MySQL数据库那样须要安装、启动服务器进程,SQLite数据库只是一个文件。android

  SQLite是一种嵌入到应用程序中的数据库,包含表在内的全部数据都存放在单个文件中,这些特性都很是适合于移动平台下的数据处理。程序员

  SQLite 和其余数据库最大的不一样就是对数据类型的支持,建立一个表时,能够在 CREATE TABLE 语句中指定某列的数据类型,可是你能够把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。若是该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。若是不能转换,则该值将做为其自己具备的类型存储。好比能够把一个字符串(String)放入 INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。web

  可是,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 还有一些 ALTER TABLE 功能。
  除了上述功能外,SQLite 是一个完整的 SQL 系统,拥有完整的触发器,交易等等。

2、Android下的SQLite介绍

  Android 在运行时(run-time)集成了 SQLite,因此每一个 Android 应用程序均可以使用 SQLite 数据库。对于熟悉 SQL 的开发人员来时,在 Android开发 中使用 SQLite 至关简单。可是,因为 JDBC 会消耗太多的系统资源,因此 JDBC 对于手机这种内存受限设备来讲并不合适。所以,Android 提供了一些新的 API 来使用 SQLite 数据库,Android 开发中,程序员须要学使用这些 API。
  数据库通常默认存储在 data/< 项目文件夹 >/databases/ 下,固然也能够放置在SD卡上。这里还分两种状况,一种是程序首次启动时自行建立数据库,另外一种是把本身设计好的数据库打包到程序中,在首次启动时复制到相应位置,这些后面再专门开贴讨论。
连接:暂无,待开贴补充
  已经设计好的数据库文件能够选择放到assets中(固然大家也能够放到raw里 ),这样程序在打包时会原封不动的保存到apk包中,不会被编译成二进制。早期android2.3之前的版本有着assets和raw里资源文件不能超过1M的限制,固然如今已经没有这个限制了。

3、SQLite数据类型(datatype)和存储类型(storage class)

存储在SQLite数据库中的数据属于下面这些存储类别之一:数据库

  1. NULL:值为NULL
  2. INTEGER:有符号整形,根据值的大小以一、二、三、四、6或8字节存储
  3. REAL:浮点类型,以8字节IEEE浮点数存储
  4. TEXT:文本字符串,使用数据库编码(UTF-八、UTF-16BE或者UTF-16LE)存储
  5. BLOB:二进制数据块,彻底按照输入存放(即没有转换)

  存储类别比数据类型更通常化(general)。好比INTEGER,它包含6种不一样长度的整数(integer)数据类型,它们在磁盘存储上存在差别(This makes a difference on disk)。可是只要INTEGER数据从磁盘读入到内存进行处理,它们就会被转换成最普通的8字节有符号整数(integer)数据类型。服务器

  SQLite3数据库中的任何列(除了整形主键(INTEGER PRIMARY KEY)列),能够用于存储任何一个存储类别的值。SQL语句中的全部值(value),不管是嵌入在SQL语句中,或者做为参数绑定到一个预编译SQL语句,它们都有一个隐式的存储类别。在下述状况下,数据库引擎会在查询执行过程当中在数值(numeric)存储类别(INTEGER和REAL)和TEXT存储类别之间转换。app

 ------------------------------------性能

开篇就到这里了,本身仍是一个初学者,有几年没有努力了,埋头学习去。。。待续学习

 

------------------------------------------------------------------------------------------ui

做者:庞辉编码

出处:http://www.cnblogs.com/pang123hui/

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,可是必须保留本文的署名庞辉(包含连接).

------------------------------------------------------------------------------------------

相关文章
相关标签/搜索