随着云和mobile设备的流行,SQLite作为一款开源的轻量级数据库也被越来越广泛地应用。从HTML5到android,ios和win8为代表的mobile平台都对它提供了天然的支持与整合。因此对SQLite的学习也就显得非常重要。从本文开始的一系列文章将展开对sqllite的介绍。

SQLite是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。

注:ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。一个支持事务(Transaction)的数据库系统,必需要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。

SQLite,作为一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。

不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。

注:官方网站是:http://www.sqlite. org或者http://www.sqlite .com .cn,能在上面获得源代码和文档。

特性:

  1. ACID事务

  2. 零配置 – 无需安装和管理配置   3. 储存在单一磁盘文件中的一个完整的数据库   4. 数据库文件可以在不同字节顺序的机器间自由的共享   5. 支持数据库大小至2TB   6. 足够小, 大致3万行C代码, 250K   7. 比一些流行的数据库在大部分普通数据库操作要快   8. 简单, 轻松的API   9. 包含TCL绑定, 同时通过Wrapper支持其他语言的绑定   10. 良好注释的源代码, 并且有着90%以上的测试覆盖率   11. 独立: 没有额外依赖   12. Source完全的Open, 你可以用于任何用途, 包括出售它   13. 支持多种开发语言,C, PHP, Perl, Java, C#,Python

SQLite的数据类型

首先你会接触到一个让你惊讶的名词: Typelessness(无类型). 对! SQLite是无类型的. 这意味着你可以保存任何类型的数据到你所想要保存的任何表的任何列中, 无论这列声明的数据类型是什么(只有在一种情况下不是, 稍后解释). 对于SQLite来说对字段不指定类型是完全有效的. 如:

  Create Table ex1(a, b, c);   诚然SQLite允许忽略数据类型, 但是仍然建议在你的Create Table语句中指定数据类型. 因为数据类型对于你和其他的程序员交流, 或者你准备换掉你的数据库引擎时能起到一个提示或帮助的作用. SQLite支持常见的数据类型, 如:   CREATE TABLE ex2(   a VARCHAR(10),   b NVARCHAR(15),   c TEXT,   d INTEGER,   e FLOAT,   f BOOLEAN,   g CLOB,   h BLOB,   i TIMESTAMP,   j NUMERIC(10,5)   k VARYING CHARACTER (24),   l NATIONAL VARYING CHARACTER(16)   );   前面提到在某种情况下, SQLite的字段并不是无类型的. 即在字段类型为”Integer Primary Key”时.

后续文章讲基于ios,介绍c风格的sqllite数据库操作。

SQLLite (一)基本介绍相关推荐

  1. bltoolkit mysql_.NET 轻量级 ORM 框架 - Dapper 介绍

    转自:https://blog.csdn.net/hanjun0612/article/details/52170204 Dapper简单介绍: Dapper is a single file you ...

  2. (九)HTML5本地存储——本地数据库SQLLite的使用

    在HTML5中,大大丰富了客户端本地可以存储的内容,添加了很多功能将原本必须要保存在服务器上的数据转为保存在客户端本地,从而大大提高了web应用程序额的性能,减轻了服务器端的负担,使web时代重新回到 ...

  3. sqllite能连接mysql_SQLLite 可以通过SQL语言来访问的文件型SQL数据库

    Web Storage分为两类: - sessionStorage:数据保存在session 对象中(临时) - localStorage:数据保存在本地硬件设备中(永久) sessionStorag ...

  4. C++ 对象关系映射(ORM)介绍

    用过Java的都知道SSH框架,特别对于数据库开发,Java领域有无数的ORM框架,供数据持久层调用,如Hibernate,iBatis(现在改名叫MyBatis),TopLink,JDO,JPA-- ...

  5. 【十年网络安全工程师整理】—100渗透测试工具使用方法介绍

    渗透测试是指渗透人员在不同的位置(比如从内网.从外网等位置)利用各种手段对 某个特定网络进行测试,以期发现和挖掘系统中存在的漏洞,然后输出渗透测试报告, 并提交给网络所有者.网络所有者根据渗透人员提供 ...

  6. ios的四个核心部分介绍

    ios四个核心部分 1.Cocoa Touch Cocoa Touch层的关键技术. (1)多任务       iOS SDK 4.0以及以后的SDK构建的程序(且运行在iOS 4.0和以后版本的设备 ...

  7. 数据库介绍与数据库安装

    一.课前介绍 数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在一台机器上,那么用文件 ...

  8. LindDotNetCore~基于模块化注入的介绍

    回到目录 LindDotNetCore相关介绍 相关模块 全局都是依赖DI 消息队列 NoSql Caching 仓储 服务总线 Solr 调度 日志 Asspect拦截组件 UAA授权 各种组件环境 ...

  9. window系统下,使用sqlcipher工具加、解密sqllite数据库

    今天使用sqlcipher加密sqllite数据库时转弯转进了误区,作为小白,就用小白的方式来记录一下使用该工具一些心得. 首先,从网上下载了一个sqlcipher-3.0.1-windows ,在这 ...

最新文章

  1. 【mysql学习笔记整理】
  2. 【s操作】上瘾了!继续轻松优雅的解决孩子的初中数学题,matlab入门新方法解题无压力...
  3. 第06课:浅层神经网络(NN)
  4. socket网络编程——网络编程接口
  5. [C#]结构体和字节数组的相互转化
  6. 基于java小区物业管理系统
  7. 苹果错误分析报告preferreuserinterface_20182019年苹果产业链分析报告
  8. 人工智能产品经理最佳实践
  9. (转)Notepad++删除空白行
  10. String类实例化
  11. 前端程序员为何焦虑?web前端未来终将是什么样?
  12. Studio用布局编辑器设计UI界面
  13. Golang线程池gpool
  14. PS 图像调整算法——反相
  15. 计算机毕业设计(论文+代码+数据库+查重)
  16. SPSS 22.0下载、授权及汉化
  17. Shor’s Algorithm 学习笔记
  18. 重庆-新加坡国际电竞嘉年华落幕“文旅+”助推建设国际旅游目的地
  19. python 去除字符串内的中文字符
  20. R语言 PCA 主成分分析

热门文章

  1. 递归-递归的特点及基本代码演练
  2. JAVA多线程和并发
  3. oracle 11.2 安装asm,oracle11r2安装asm+rac配置步骤.doc
  4. maven jetty运行时,js无法保存
  5. 低门槛彻底理解JavaScript中的深拷贝和浅拷贝
  6. hihoCoder1353 满减优惠
  7. 超级寒潮考验智慧城市万亿投资
  8. [转载][工具]Secure CRT 自动记录日志和时间戳功能配置的方法
  9. 二叉树(先序遍历)非递归
  10. Mysql学习笔记(三)运算符和控制流函数