SQLite是一款开源的,嵌入式关系型数据库,它没有独立运行的进程,它与所服务的应用在应用程序进程空间内共生共存。它最初发布于2000年,使用C语言进行开发。这是官网: http://sqlite.org/ !
它支持ANSI SQL92标准: SQL92 is the third revision of the SQL standard.For more information about SQL92,please click here : http://en.wikipedia.org/wiki/SQL-92 .SQLite实现了零配置,下载安装即用,它简单,可移值,快速,具体细节可以访问其官网: http://sqlite.org/docs.html
1. 下载CLS并且配置CLS(Command Line Shell):http://sqlite.org/download.html ,比如笔者使用的Windows 7 os,因为下载:Precompiled Binaries for Windows,建议加入PATH中;
cmd模式输入:sqlite3, 结果如下图:
2. CLS基础使用
CLS是使用和管理SQLite数据库最常用的工具,它在所有的平台上操作方式都是一样的,主要用于交互模式下执行查询操作以及完成各种数据库管理任务。
CLS把以点号开始的命名指定为它操作预留命令,例如:.help 结果如下
A. 创建数据库:启动cmd,输入如下代码:
sqlite3 your_data_name.db;
之后会自动进入sqlite3命令行模式下。这里有个小注意:如果your_data_name.db是第一次创建,那么它不会立即在目录下显示。为什么不立即显示呢?这是为了在数据库结构提交到磁盘前进行永久数据库设置(例如页画大小,字符集),创建完之后,不能轻易更改;当你为your_data_name.db创建完第一张表之后,它就会出现目录下并且显示出来;
create table test( id integer primary key, name text, age integer );
sqlite3> .table 查看当前db的table ,会显示 test
B. 设置显示格式
sqlite3> .show 查看当前设置,结果如下:
从上图可以得之:
- mode的方式:list,其它它有8种方式分别:csv,list,html,column,insert,line,tabs,tcl; 如果有改变直接: .mode column
- headers是off状态,如果有改变: .headers on
- separator为| ,如果要改成= : .separator =
- 设置列的宽度: 例如: .width 12 10 8 (第一列12个"-" 字符,系统默认为10个"-")
- output为标准输出
- 空值输出为:""
insert into test values(1,'dylan',24); insert into test(name,age) values('vic',23);
sqlite3> .mode column
select * from test ;
显示结果为:
Note: 名为id的列为主键并且是整型,当使用Insert into时没有指定,也同样具备自动增长属性,步长为1;
sqlite3> .headers on
个人建议开启:.headers on
sqlite3> .tables 查看表和视图。注意与.table的区别:.table仅查看表;
sqlite3> .indeces test : 查看test表的索引
sqlite3> .schema 返回数据库的对象: 表结构,索引,视图
sqlite_master: 是自带系统特殊的表
从图中我们知道sqlite_master 具有如下字段名:type,name,tal_na,rootpa,sql
C. 备份数据库
以上试验了三种方式,只有第三种方式才是正确:
- 在cmd命令行下使用 sqlite3;
- 不要进行sqlite> 模式使用;
- 格式为:sqlite3 your_data_name.db .dump > backup_name
sqlite> .output demo1.sql sqlite> .dump sqlite> .output stdout sqlite> .exit
使用.output方式也可以实现备份,不过这种试稍微复杂点,但不管那种方式都少不了:.dump
数据库导入:
sqlite3 demo1.db < demo1.sql
sqlite数据库备份是这种方式备份很简单!!!此篇为sqlite基础篇,此外还有sql 中篇,以及andorid之sqlite应用;然最近因为项目紧急,因此会在端午节过后更新。