一.简介:
SQLite,是一款轻型的数据库,是关系型数据库管理系统。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/ Linux/Unix等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite第一个Alpha版本诞生于2000年5月。
二.SQLite 的优点
基于文件:
整个数据库都包含在磁盘上的一个文件中,因此它有很好的迁移性。
标准化:
尽管它看起来像个“简化版”的数据库,SQLite 确实支持 SQL。它略去了一些功能(RIGHT OUTER JOIN 和 FOR EACH STATEMENT),但是,又同时增加了一些其他功能。
对开发乃至测试都很棒:
在绝大多数应用的开发阶段中,大部分人都非常需要解决方案能有并发的灵活性。SQLite 含有丰富功能基础,所能提供的超乎开发所需,并且简洁到只需一个文件和一个 C 链接库。
三.SQLite的缺点
没有用户管理:
高级数据库都能支持用户系统,例如,能管理数据库连接对数据库和表的访问权限。但由于 SQLite 产生的目的和本身性质(没有多用户并发的高层设计),它没有这个功能。
缺乏额外优化性能的灵活性:
仍然是从设计之初,SQLite 就不支持使用各种技巧来进行额外的性能优化。这个库容易配置,容易使用。既然它并不复杂,理论上就无法让它比现在更快,其实现在它已经很快了。
四.sqlite数据库的操作命令
1,创建数据库
$sqlite3 DatabaseName.db
上面的命令将在当前目录下创建一个文件 testDB.db。该文件将被 SQLite 引擎用作数据库。如果您已经注意到 sqlite3 命令在成功创建数据库文件之后,将提供一个 sqlite> 提示符。
2,查看数据库
sqlite>.databases
seq name file
--- --------------- ----------------------
0 main /home/sqlite/testDB.db
3,退出数据库 .quit 或者.q
sqlite>.quit
$
4,创建表
CREATE TABLE 语句的基本语法如下:
CREATE TABLE database_name.table_name(
column1 datatype PRIMARY KEY(one or more columns),
column2 datatype,
column3 datatype,
.....
columnN datatype,
);
5,删除表
DROP TABLE database_name.table_name;
6,查看表是否存在以及表的结构
显示表 .tables
显示 CREATE 语句 .schema database_name.table_name
7,插入内容到表中
INSERT INTO 语句有两种基本语法,如下所示:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)]
VALUES (value1, value2, value3,...valueN);
在这里,column1, column2,...columnN 是要插入数据的表中的列的名称。
如果要为表中的所有列添加值,您也可以不需要在 SQLite 查询中指定列名称。但要确保值的顺序与列在表中的顺序一致。
SQLite 的 INSERT INTO 语法如下:
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
8,查找表中的内容
SELECT column1, column2, columnN FROM table_name;
SELECT * FROM table_name;
SELECT column1 FROM table_name where column2 ='xxx';
SELECT FROM table_name order by column ASC/DESC; 正/逆序
9,更新表中的内容
SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。
UPDATE table_name SET column1 = value1 WHERE [condition];
10,删除表中的内容
SQLite 的 DELETE 查询用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 查询来删除选定行,否则所有的记录都会被删除。
DELETE FROM table_name WHERE [condition];
11,导出导入完整的数据库
.dump 命令
您可以在命令提示符中使用 SQLite .dump 点命令来导出完整的数据库在一个文本文件中,如下所示:
$sqlite3 testDB.db .dump > testDB.sql
上面的命令将转换整个 testDB.db 数据库的内容到 SQLite 的语句中,并将其转储到 ASCII 文本文件 testDB.sql 中。您可以通过简单的方式从生成的 testDB.sql 恢复,如下所示:
$sqlite3 testDB.db < testDB.sql
实用命令:
.help 帮助
.show 显示各种设置的当前值
.header(s) ON|OFF 开启或关闭头部显示
.mode column 设置输出模式
.backup main /tmp/*.bak 备份数据库并保存