sqlite使用

Posted sqdxxx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlite使用相关的知识,希望对你有一定的参考价值。

偏向Sql语句参考:

http://blog.sina.com.cn/s/blog_74dfa9f401017s69.html
http://blog.csdn.net/sphone89/article/details/9300797
http://mp.weixin.qq.com/s?__biz=MjM5NzM0MjcyMQ==&mid=401553977&idx=2&sn=4bfa8308aab91d13b5e2cb87fd00983c&3rd=MzA3MDU4NTYzMw==&scene=6#rd
http://mp.weixin.qq.com/s?__biz=MjM5NzM0MjcyMQ==&mid=401553977&idx=2&sn=4bfa8308aab91d13b5e2cb87fd00983c&3rd=MzA3MDU4NTYzMw==&scene=6#rd

一下操作是在命令行客户端的进行的,其他客户端可能有所不同。

所有sql指令都是以分号(;)结尾,两个减号(--)则表示注释
命令如果不产生歧义,可以不必完整输入。

列出当前显示格式的配置

sqlite>.show

创建数据库

$sqlite3 ex1

显示数据库

sqlite>.database 显示当前打开的数据库文件

创建表

sqlite> create table tbl1(name varchar(10), age integer);

sqlite> create studen_table(Stu_no interger PRIMARY KEY, Name text NOT NULL, Id interger UNIQUE, Age interger CHECK(Age>6), School text DEFAULT ‘xx小学);

显示数据库中得表

sqlite>.tables

查看表的结构

sqlite> .schema <table_name>

删除表

sqlite> drop table <table_name>

增:

sqlite> insert into table01 values(‘Lucy‘, 20);

sqlite> insert into table_name(field1, field2, ...) values(val1, val2, ...);

删:

sqlite> delete from table_name [where expression];

sqlite> delete from student_info where stu_no=0001;

查:

sqlite> select * form table01;

改:

sqlite> update  <table_name>  set  <f1=value1>, <f2=value2>…   where  <expression>;

sqlite> update table_name set field1=val1, field2=val2 where expression;

改变输出格式

sqlite> .mode list|column|insert|line|tabs|tcl|csv

sqlite3程序可以以八种不同的格式显示一个查询的结果:"csv", "列", "html", "插入", "行", "制表"和"tcl"。你可以用".mode"点命令在这些输出格式之间切换。

sqlite> .mode list

改变输出分界符

sqlite>.separator ", “

输出 HTML 表格

$sqlite3 -html film.db "select * from film;"

另外一个有用的输出模式是"insert"。在插入模式下,被子格式化为看起来像SQL INSERT语句的样式。你可以用插入模式来产生文件(便于)以后用于不同数据库的输入。

当指定插入模式时,你必须给定一个特定参数就是要插入的表名。例如:

sqlite> .mode insert new_table

调整列宽
用“.width”命令来调整列宽。 设置第一列宽为12第二列宽为6。其它的列宽不变。

sqlite> .width 12 6

输出表头字段名

sqlite>.headers on

改变命令行重定向

sqlite>.output myTable.sql
sqlite>.output stdout

数据库档案拷贝

$ echo ‘.dump‘ | sqlite3 ex1 | gzip -c >ex1.dump.gz

它产生一个一个名为ex1.dump.gz的文件,它包含了你以后或在其它机器上重构数据库的所有的信息。

要重构数据库,只须敲入

$ zcat ex1.dump.gz | sqlite3 ex2

导出SQLite数据库到其他数据库

$ createdb ex2
$ sqlite3 ex1 .dump | psql ex2

读取并执行外部SQL语句

sqlite>.read FILENAME

查询时用指定的串代替输出的NULL串

sqlite>.nullvalue STRING  //默认为.nullvalue ‘‘

备份还原数据库

  1. 备份数据库
--在当前连接的main数据库中创建一个数据表,之后再通过.backup命令将main数据库备份到D:/mydb.db文件中。
sqlite> CREATE TABLE mytable (first_col integer);
sqlite> .backup ‘D:/mydb.db‘
sqlite> .exit
  1. 还原数据库
--通过在命令行窗口下执行sqlite3.exe以重新建立和SQLite的连接。
--从备份文件D:/mydb.db中恢复数据到当前连接的main数据库中,再通过.tables命令可以看到mytable表。
sqlite> .restore ‘D:/mydb.db‘
sqlite> .tables
mytable

修改字段

SQLite 仅仅支持 ALTER TABLE 语句的一部分功能
我们可以用 ALTER TABLE 语句来更改一个表的名字
也可向表中增加一个字段(列)
但是我们不能删除一个已经存在的字段
或者更改一个已经存在的字段的名称、数据类型、限定符等等。

改变表名

  ALTER TABLE 旧表名 RENAME TO 新表名

增加列

  ALTER TABLE 表名 ADD COLUMN 列名 数据类型

时间函数
数学函数
比较函数
字符处理函数





以上是关于sqlite使用的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段

SQLite 片段函数实现不会在 TextView 中将文本格式化为 HTML

如何在片段中访问 SQLite 数据到 ListView

java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段

如何使用光标和循环显示来自 sqlite 的片段的 recyclerview

如何使用列表视图在选项卡式活动的片段中呈现 SQLite 表数据 [重复]