云文档网 - 专业文章范例文档资料分享平台

sqlite3详解

来源:网络收集 时间:2024-05-02 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个使用sqlite3命令的简要说明。

启动sqlite3程序,仅仅需要敲入带有SQLite数据库名字的\命令即可。如果文件不存在,则创建一个新的(数据库)文件。然后sqlite3程序将提示你输入SQL。敲入SQL语句(以分号“;”结束),敲回车键之后,SQL语句就会执行。 例如,创建一张\表,你可以这样做:

C:\\Users\\Administrator>adb shell # sqlite3

SQLite version 3.5.9

Enter \for instructions

sqlite> create table tb_stu(id smallint,name varchar(10)); sqlite> insert into tb_stu values(1,'zhangsan'); sqlite> insert into tb_stu values (2,'lisi'); sqlite> .mode column sqlite> .width 10

sqlite> select * from tb_stu; 1 zhangsan 2 lisi sqlite>

你可以通过敲你所用系统的文件结束符(通常是Ctrl + D)或者中断字符(通常是Ctrl + C),来终止sqlite3程序。确定你在每个SQL语句结束敲入分号!sqlite3程序通过查找分号来决定一个SQL语句的结束。如果你省略分号,sqlite3将给你一个连续的命令提示符并等你给当前的SQL命令添加更多的文字。这个特点让你输入多行的多个SQL语句,例如:

sqlite> create table tb_stu( create table tb_stu( ...> id smallint, ...> name varchar(10) ...> ); );

题外话:查询SQLITE_MASTER表

SQLite数据库的表数据结构被保存在一个名叫\的特殊的表中。你可以像查询其它表一样通过执行“SELECT”查询这个特殊的表。

sqlite> select * from sqlite_master;

table tb_stu tb_stu 2 CREATE TABLE tb_stu(id smallint,name

varchar(10)) sqlite>

但你不能在sqlite_master表中执行诸如DROP TABLE, UPDATE, INSERT 或者DELETE命令。sqlite_master表在你创建、删除和索引数据库时自动更新这个表。你不能手工更改sqlite_master表。

TEMPORARY表的结构没有存储在\表中,由于TEMPORARY表对应用是不可见的,而不是应用程序创建这个表。 TEMPORARY表结构被存储在另外一个名叫\的特定的表中。\表是临时表自身。 sqlite3的特殊命令

大多数时候,sqlite3读入输入行,并把它们传递到SQLite库中去运行。但是如果输入行以一个点(“.”)开始,那么这行将被sqlite3程序自己截取并解释。这些“点命令”通常被用来改变查询输出的格式,或者执行鞭个预封包(预定义prepackaged)的查询语句。 你可以在任何时候输入“.help”,列出可用的点命令。例如

sqlite> .help

.bail ON|OFF Stop after hitting an error. Default OFF .databases List names and files of attached databases .dump ?TABLE? ... Dump the database in an SQL text format .echo ON|OFF Turn command echo on or off .exit Exit this program

.explain ON|OFF Turn output mode suitable for EXPLAIN on or off. .header(s) ON|OFF Turn display of headers on or off .help Show this message

.import FILE TABLE Import data from FILE into TABLE .indices TABLE Show names of all indices on TABLE .load FILE ?ENTRY? Load an extension library

.mode MODE ?TABLE? Set output mode where MODE is one of: csv Comma-separated values

column Left-aligned columns. (See .width) html HTML code

insert SQL insert statements for TABLE line One value per line

list Values delimited by .separator string tabs Tab-separated values tcl TCL list elements

.nullvalue STRING Print STRING in place of NULL values .output FILENAME Send output to FILENAME .output stdout Send output to the screen .prompt MAIN CONTINUE Replace the standard prompts .quit Exit this program

.read FILENAME Execute SQL in FILENAME .schema ?TABLE? Show the CREATE statements

.separator STRING Change separator used by output mode and .import .show Show the current values for various settings .tables ?PATTERN? List names of tables matching a LIKE pattern .timeout MS Try opening locked tables for MS milliseconds .width NUM NUM ... Set column widths for \column\sqlite>

改变输出格式

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

默认的输出格式是“列表”。在列表模式下,每条查询结果记录被写在一行中并且每列之间以一个字符串分割符隔开。默认的分隔符是一个管道符号(“|”)。列表符号在当你输出查询结果到另外一个符加处理的程序(如AWK)中去是尤为有用。

sqlite> .mode list

sqlite> select * from tb_stu; 1|zhangsan 2|lisi sqlite>

你可以用“.separator”点命令来改变分界符。例如,为了把分割符改为一个逗号和一个空格,你可以这样做:

sqlite> .separator ''

sqlite> select * from tb_stu; 1 zhangsan 2 lisi sqlite> 或者

sqlite> .separator ','

sqlite> select * from tb_stu; 1,zhangsan 2,lisi sqlite>

在“line\模式下,每一个位于条记录中的列在它自己那行显示。每行由列名、一个等号和列数据组成。下一条记录以一个空行隔开。这是一个行模式输出的例子:

sqlite> .mode line

sqlite> select * from tb_stu; id = 1

name = zhangsan

id = 2 name = lisi sqlite>

在列模式下,每条记录在一个单独的行中以数据列对齐的方式显示。列如:

sqlite> .mode column

sqlite> select * from tb_stu; 1 zhangsan 2 lisi sqlite>

在默认的情况下,每列至少10个字符宽。太宽的数据将被截取。你可以用“.width”命令来调整列宽。如下所示:

--每一列列宽都为10 sqlite> .width 10

sqlite> select * from tb_stu; 1 zhangsan 2 lisi sqlite>

--设置第一列宽为12第二列宽为6。其它的列宽不变 sqlite> .width 12 6

sqlite> select * from tb_stu; 1 zhangsan 2 lisi sqlite>

上面例子中\命令设置第一列宽为12第二列宽为6。其它的列宽不变。你可以指定与你查询结果需要的列数一样多的“.width”参数。

如果你指定一列宽为0,那么这个列宽将自动以下面三个数字中的最大值做为列宽:10、表头宽度和最宽的数据列的宽度。这可以让列自动调整宽度。每列的默认设置为自动调整的0值。

出现在输出开头两行的列标示可以用\点命令关闭。在上面的例子中,列标示是打开的。可以用下面的方法关闭列标示:

sqlite> .header off

sqlite> select * from tb_stu; 1 zhang 2 lisi sqlite>

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

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

sqlite> .mode insert tb_stu_temp sqlite> select * from tb_stu;

INSERT INTO tb_stu_temp VALUES(1,'zhangsan'); INSERT INTO tb_stu_temp VALUES(2,'lisi'); sqlite>

最新的输出格式是“html”。在这种模式下,sqlite3把查询的结果写做XHTML表。开始的和结束的(标记)没有写出,但有、和等分界符。html输出对CGI来说是相当有用地。

把结果写到文件中

默认情况下,sqlte3把结果送到标准输出。你可以用“.output”命令改变它。只须把输出文件名做为.output命令的输出参数然后所有后续查询结果将被写到那个文件中。用“.output stdout”再一次改为标准输出。例如:

sqlite> .separator |

sqlite> .output tb_stu_temp.txt sqlite> select * from tb_stu; sqlite> .exit

# cat tb_stu_temp.txt hello|10 goodbye|20

百度搜索“yundocx”或“云文档网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,云文档网,提供经典教育范文sqlite3详解在线全文阅读。

sqlite3详解.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.yundocx.com/fanwen/907668.html(转载请注明文章来源)
Copyright © 2018-2022 云文档网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219