你的位置:首页 > 数据库

[数据库]学习SQLite之路(一)


 

  工作快一年了,接触的东西不是很多,学到的东西也不多。无意中看到公司的代码有一点关于sqlite3的(不是我这一层负责的代码),于是乎就学学试试。

 

 参考: http://www.runoob.com/sqlite/sqlite-tutorial.html 

 

20160612 更新

1,什么是SQLite?

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库。

 

2.SQLite的优势

  • 不需要一个单独的服务器进程或操作的系统(无服务器的)。

  • SQLite 不需要配置,这意味着不需要安装或管理。

  • 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。

  • SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。

  • SQLite 是自给自足的,这意味着不需要任何外部的依赖。

  • SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。

  • SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。

  • SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。

  • SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行

 

3.SQLite命令: 跟其他数据库语言一样

(1)DDL(数据定义语言): create  drop  alter

(2)DML(数据操纵语言): delete  update  insert

(3)DQL(数据查询语言): select

 

 4.SQLite的安装

在windows里不需要安装,在http://www.sqlite.org/download.html 这里下载 sqlite-tools-win32-x86-3130000.zip 这个东西。

我以我的为例:

在F盘创建一个文件夹sqlite3,将下载的文件解压,会有三个文件(sqlite3.exe  sqldiff.exe  sqlite3_analyzer.exe),直接放在sqlite3目录下就可以了。

运行: 运行cmd.exe 然后切换到F盘的sqlite3文件夹。就可以直接运行了。

 

20160614 更新

 

1.SQLite命令:我们在命令提示符下键入一个简单的 sqlite3 命令,在 SQLite 命令提示符下,您可以使用各种 SQLite 命令。

就像这样:

 

2.需获取可用的点命令的清单,可以在任何时候输入 ".help",再回车就可以。

 

3.查看 SQLite 命令提示符的默认设置:   .show

还可以进行设置:就像下面这样(具体可以参考: http://blog.csdn.net/wirelessqa/article/details/21030147  )

4.先说一个命令: 

.read  ***(一个数据文件)

比如说我在sqlite3目录下新建一个文档:  create_company.txt

里面的内容是:

drop table company; -- 删除表
create table company(  --  创建表  这个表示单行注释
ID int primary key not NULL,  /* 这个是多行注释 */
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL
);

然后:.read create_company.txt   /* 就相当于直接运行了create_company.txt里面的语句 */

 

5. SQLite语法:SQLite 是遵循一套独特的称为语法的规则和准则

(具体后面用到时再分析)

 

6. SQLite数据类型:数据类型是一个用来指定任何对象的数据类型的属性

可以在创建表的同时使用这些数据类型。SQLite 使用一个更普遍的动态类型系统。在 SQLite 中,值的数据类型与值本身是相关的,而不是与它的容器相关。

(1)SQLite存储类:主要有以下几种,冒号后面是解释

NULL:  一个NULL值

INTEGER: 一个带符号的整数,根据值的大小存储在 1、2、3、4、6 或 8 字节中

REAL:浮点数,存储为8字节的IEEE浮点数字

TEXT:文本字符串,使用数据库编码(UTF-8、UTF-16BE等)存储

GLOB:blob数据,完全根据它的输入存储(这个我也不是很理解)

 

(2)布尔数据类型: 没有专门的布尔数据,只有0和1

 

7. 创建数据库:

(1)基本语法如下: sqlite>sqlite3 testDB.db

 (2).dump 命令:导出完整的数据库在一个文本文件中

如:sqlite> testDB,db .dump > testDB,sql   /*  将转换整个 testDB.db 数据库的内容到 SQLite 的语句中,并将其转储到 ASCII 文本文件 testDB.sql 中  */

恢复: sqlite> testDB,db  < testDB,sql   /*   从生成的 testDB.sql 恢复   */