sqlite3命令详解(中)

前端之家收集整理的这篇文章主要介绍了sqlite3命令详解(中)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
文章参照:www.sqlite.org/sqlite.html
sqlite3中我们可以通过".help"命令来查所有的非sql命令。
比如,示例4
sqlite> .help
.help
. backup ?DB? FILE Backup DB (default "main") to FILE
.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
If TABLE specified,only dump tables matching
LIKE pattern TABLE.
.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.
With no args,it turns EXPLAIN on.
.genfkey ?OPTIONS? Options are:
--no-drop: Do not drop old fkey triggers.
--ignore-errors: Ignore tables with fkey errors
--exec: Execute generated sql immediately
See file tool/genfkey.README in the source
distribution for further information.
.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
If TABLE specified,only show indices for tables
matching LIKE pattern TABLE.
. load FILE ?ENTRY? Load an extension library
.log FILE|off Turn logging on or off. FILE can be stderr/stdout
.mode MODE ?TABLE? Set output mode where MODE is one of:
csv Comma-separated values
column Left-aligned columns. (See .width)
html HTML <table> 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
.restore ?DB? FILE Restore content of DB (default "main") from FILE
.schema ?TABLE? Show the CREATE statements
If TABLE specified,only show tables matching
LIKE pattern TABLE.
.separator STRING Change separator used by output mode and .import
.show Show the current values for varIoUs settings
.tables ?TABLE? List names of tables
If TABLE specified,only list tables matching
LIKE pattern TABLE.
.timeout MS Try opening locked tables for MS milliseconds
.width NUM1 NUM2 ... Set column widths for "column" mode
.timer ON|OFF Turn the cpu timer measurement on or off
sqlite>
sqlite3能以8种不同的方式显示查询返回的结果: " csv " ," column "," html "," insert "," line "," list "," tabs "," tcl ".
你可以通过.mode来设置显示的方式。默认的是"list"方式,这时返回结果的一条记录显示一行,每列的内容之间用设定的分隔符隔开,
默认的分隔符是"|".
示例5
sqlite> .mode list
sqlite> select * from tbl1;
hello|10
goodbye|20
sqlite>
你可以通过".separator"来设置"list"模式下的分隔符。比如我们想把","作为分隔符,可以这样:
示例6
sqlite> .separator ","
sqlite> select * from tbl1;
hello,10
goodbye,20
sqlite>
"line"模式下,每行只显示数据库的一行的一列。每行由列名,等号和列的值组成。每条记录之间由一个空行隔开。
比如,示例7
sqlite>.mode line
sqlite> select * from tbl1;
one = hello
two = 10

one = goodbye
two = 20
sqlite>
"column"模式下,每条记录都在单独一行显示。第一行显示的是列名,第二行只是用于分割列名和记录的数据,第三行开始才是记录的内容
比如, 示例8:
sqlite>.mode column
sqlite> select * from tbl1;
one two
---------- ----------
hello 10
goodbye 20
sqlite>
默认情况下,每列的宽度最多只能显示10个字符。所以如果数据包含的字符如果他太多,可能就显示不完。
但是 我们可以通过".width"设置每列的宽度
比如, 示例9:
sqlite> .width 12 6
sqlite> select * from tbl1;
one two
------------ ------
hello 10
goodbye 20
sqlite>
示例9就把第1列和第二列的宽度分别设置为了12和6个字符,其他列的宽度并没改变。
如果你把列宽设置为0,那么调整为以下三个的最大值:10,该列的列名字符数,第一行记录该列的字符数。这样列的宽度就可以自动调整。
默认的列宽就是0,以便它可以自动调整
可以通过".header"命令可以设置是否显示(头包括第一行,列名,第二行,分隔行)。
比如, 示例10
sqlite> .header off
sqlite> select * from tbl1;
hello 10
goodbye 20
sqlite>
"insert"模式下,返回的查询结果将以sql的INSERT语句形式进行显示
比如, 示例11
sqlite> .mode insert new_table
sqlite> select * from tbl1;
INSERT INTO 'new_table' VALUES('hello',10);
INSERT INTO 'new_table' VALUES('goodbye',20);
sqlite>
"html"模式下查询返回结果将以XHTML table的形式进行显示
它并不以<TABLE>作为开头和</TABLE>作为结尾。 但是每条记录以<TR>作为开始,</TR>作为结束,记录的数据以<TD>作为开始,以</TD>作为结束
比如, 示例12
sqlite> select * from system;
select * from system;
<TR><TD>1</TD>
<TD>volume_music</TD>
<TD>7</TD>
</TR>
<TR><TD>4</TD>
<TD>volume_voice</TD>
<TD>4</TD>
</TR>
........省略.........
sqlite>
".output"命令可以把查询返回结果的输出定向到文件上。该命令的第一个参数即是要定向的位置。在把输出定向了文件后,可以通过".output stdout"把输出重新定向到标准输出上。
示例13
sqlite> .mode list
sqlite> . separator |
sqlite> .output test_file_1.txt
sqlite> select * from tbl1;
sqlite> .exit
$ cat test_file_1.txt
hello|10
goodbye|20
$
原文链接:https://www.f2er.com/sqlite/202333.html

猜你在找的Sqlite相关文章