ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:21.66KB ,
资源ID:9659268      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9659268.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SQlite3命令.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

SQlite3命令.docx

1、SQlite3命令 sqlite3: 一个SQLite数据库的命令行接口 原文地址:http:/www.sqlite.org/sqlite.html SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个样使用sqlite3的简要说明。开始 启动sqlite3程序,仅仅需要敲入带有SQLite数据库名字的sqlite3命令即可。如果文件不存在,则创建一个新的(数据库)文件。然后sqlite3程序将提示你输入SQL。敲入SQL语句(以分号“;”结束),敲回车键之后,SQL语句就会执行。 例如,创建一个包含一个表tb11名

2、字为ex1的SQLite数据库,你可以这样做:$sqlite3 ex1SQLite version 3.3.17Enter .help for instructionssqlitecreate table tbl1(one varchar(10), two smallint);sqliteinsert into tbl1 values(hello!, 10);sqliteinsert into tbl1 values(goodbye, 20);sqliteselect * from tbl1;hello!|10goodbye|20sqlite 你可以通过敲你所用系统的文件结束符(通常是Ctrl

3、 + D)或者中断字符(通常是Ctrl + C)。来终止sqlite3程序。确定你在每个SQL语句结束敲入分号!sqlite3程序通过查找分号来决定一个SQL语句的结束。如果你省略分号,sqlite3将给你一个连续的命令提示符并等你给当前的SQL命令添加更多的文字。这个特点让你输入多行的多个SQL语句,例如:sqlitecreate table tbl2( .f1 varchar(30) primary key, .f2 text, .f3 real .);sqlite题外话:查询SQLITE_MASTER表 SQLite数据库的框架被保存在一个名叫sqlite_master的特殊的表中。你可

4、以像查询其它表一样通过执行“SELECT”查询这个特殊的表。例如:$sqlite3ex1SQlitevresion3.3.10Enter.helpforinstructionssqliteselect*fromsqlite_master;type=tablename=tbl1tbl_name=tbl1rootpage=3sql=createtabletbl1(onevarchar(10),twosmallint)sqlite 但你不能在sqlite_master表中执行诸如DROP TABLE, UPDATE, INSERT 或者DELETE命令。sqlite_master表在你创建、删除和索

5、引数据库时自动更新这个表。你不能手工更改sqlite_master表。 TEMPORARY表的结构没有存储在sqlite_master表中,由于TEMPORARY表对应用是不可见的,而不是应用程序创建这个表。TEMPORARY表结构被存储在另外一个名叫sqlite_temp_master的特定的表中。sqlite_temp_master表是临时表自身。sqlite3的特殊命令 大多数候,sqlite3读入输入行,并把它们传递到SQLite库中去运行。但是如果输入行以一个点(“.”)开始,那么这行将被sqlite3程序自己截取并解释。这些“点命令”通常被用来改变查询输出的格式,或者执行鞭个预封包

6、(预定义prepackaged)的查询语句。你可以在任何时候输入“.help”,列出可用的点命令。例如sqlite.help.bailON|OFFStopafterhittinganerror.DefaultOFF.databasesListnamesandfilesofattacheddatabases.dump?TABLE?.DumpthedatabaseinanSQLtextformat.echoON|OFFTurncommandechoonoroff.exitExitthisprogram.explainON|OFFTurnoutputmodesuitableforEXPLAINono

7、roff.header(s)ON|OFFTurndisplayofheadersonoroff.helpShowthismessage.importFILETABLEImportdatafromFILEintoTABLE.indicesTABLEShownamesofallindicesonTABLE.loadFILE?ENTRY?Loadanextensionlibrary.modeMODE?TABLE?SetoutputmodewhereMODEisoneof:csvComma-separatedvaluescolumnLeft-alignedcolumns.(See.width)html

8、HTMLcodeinsertSQLinsertstatementsforTABLElineOnevalueperlinelistValuesdelimitedby.separatorstringtabsTab-separatedvaluestclTCLlistelements.nullvalueSTRINGPrintSTRINGinplaceofNULLvalues.outputFILENAMESendoutputtoFILENAME.outputstdoutSendoutputtothescreen.promptMAINCONTINUEReplacethestandardprompts.qu

9、itExitthisprogram.readFILENAMEExecuteSQLinFILENAME.schema?TABLE?ShowtheCREATEstatements.separatorSTRINGChangeseparatorusedbyoutputmodeand.import.showShowthecurrentvaluesforvarioussettings.tables?PATTERN?ListnamesoftablesmatchingaLIKEpattern.timeoutMSTryopeninglockedtablesforMSmilliseconds.widthNUMNU

10、M.Setcolumnwidthsforcolumnmodesqlite改变输出格式 sqlite3程序可以以八种不同的格式显示一个查询的结果:csv, 列column, html, 插入insert, 行list, 制表tabs和tcl。你可以用.mode点命令在这些输出格式之间切换。 默认的输出格式是“列表”。在列表模式下,每条查询结果记录被写在一行中并且每列之间以一个字符串分割符隔开。默认的分隔符是一个管道符号(“|”)。列表符号在当你输出查询结果到另外一个符加处理的程序(如AWK)中去是尤为有用。sqlite.modelistsqliteselect*fromtbl1;hello|10

11、goodbye|20sqlite 你可以用“.separator”点命令来改变分界符。例如,为了把分割符改为一个逗号和一个空格,你可以这样做:sqlite.separator,sqliteselect*fromtbl1;hello,10goodbye,20sqlite 在“line模式下,每一个位于条记录中的列在它自己那行显示。每行由列名、一个等号和列数据组成。下一条记录以一个空行隔开。这是一个行模式输出的例子:sqlite.modelinesqliteselect*fromtbl1;one=hellotwo=10one=goodbyetwo=20sqlite 在列模式下,每条记录在一个单独的

12、行中以数据列对齐的方式显示。列如:sqlite.modecolumnsqliteselect*fromtbl1;onetwo-hello10goodbye20sqlite 在默认的情况下,每列至少10个字符宽。太宽的数据将被截取。你可以用“.width”命令来调整列宽。如下所示:sqlite.width126sqliteselect*fromtbl1;onetwo-hello10goodbye20sqlite上面例子中.width命令设置第一列宽为12第二列宽为6。其它的列宽不变。你可以指定与你查询结果需要的列数一样多的“.width”参数。 如果你指定一列宽为0,那么这个列宽将自动以下面三个

13、数字中的最大值做为列宽:10、表头宽度和最宽的数据列的宽度。这可以让列自动调整宽度。每列的默认设置为自动调整的0值。 出现在输出开头两行的列标示可以用.header点命令关闭。在上面的例子中,列标示是打开的。可以用下面的方法关闭列标示:sqlite.headeroffsqliteselect*fromtbl1;hello10goodbye20sqlite 另外一个有用的输出模式是insert。在插入模式下,被子格式化为看起来像SQL INSERT语句的样式。你可以用插入模式来产生文件(便于)以后用于不同数据库的输入。 当指定插入模式时,你必须给定一个特定参数就是要插入的表名。例如:sqlite

14、.modeinsertnew_tablesqliteselect*fromtbl1;INSERTINTOnew_tableVALUES(hello,10);INSERTINTOnew_tableVALUES(goodbye,20);sqlite 最新的输出格式是“html”。在这种模式下,sqlite3把查询的结果写做XHTML表。开始的和结束的(标记)没有写出,但有、和等分界符。html输出对CGI来说是相当有用地。把结果写到文件中 默认情况下,sqlte3把结送到标准输出。你可以用“.output”命令改变它。只须把输出文件名做为.output命令的输出参数然后所有后续查询结果将被写到那个

15、文件中。用“.output stdout”再一次改为标准输出。例如:sqlite.modelistsqlite.separator|sqlite.outputtest_file_1.txtsqliteselect*fromtbl1;sqlite.exit$cattest_file_1.txthello|10goodbye|20$查询数据库结构sqlite3程序提供几个有用的用于查询数据库结构的快捷命令。这些不是不可以用别的方式来实现。这些命令仅仅是一个快捷方式而已。 例如,为了查看数据库的表列表,你可以敲入“.tables”。sqlite.tablestbl1tbl2sqlite “.tabl

16、es”命令相似于设置列表模式然后执行接下来的查询:SELECT name FROM sqlite_master WHERE type IN (table,view) AND name NOT LIKE sqlite_%UNION ALL SELECT name FROM sqlite_temp_master WHERE type IN (table,view) ORDER BY 1事实上,你可以查看sqlite3的源代码(可以在源文件树的src/shell.c中),你可找到上面的具体的查询。“.indices”命令作用类似的方式是列出特定表的所有的索引。“.indics”命令须一个参数即所要索

17、引表的表名。最后,但不是至少,是“.schema”命令。不带任何参数,“.schema”命令显示原始的用于创建当前数据库的CREATE TABLE和CREATE INDEX语句。如果你给.schema命令一个表名,它显示原始的创建该表和它所有索引的CREATE语句。我们可以:sqlite.schemacreatetabletbl1(onevarchar(10),twosmallint)CREATETABLEtbl2(f1varchar(30)primarykey,f2text,f3real)sqlite.schematbl2CREATETABLEtbl2(f1varchar(30)primar

18、ykey,f2text,f3real)sqlite .schema命令可以用设置列表然后执行以下查询来实现:SELECT sql FROM (SELECT * FROM sqlite_master UNION ALL SELECT * FROM sqlite_temp_master)WHERE type!=metaORDER BY tbl_name, type DESC, name或者,如果你给.schema命令一个参数,由于你只想得到一个表的结构,查询可以是这样:SELECT sql FROM (SELECT * FROM sqlite_master UNION ALL SELECT * F

19、ROM sqlite_temp_master)WHERE type!=meta AND sql NOT NULL AND name NOT LIKE sqlite_%ORDER BY substr(type,2,1), name你可以担供一个参数给.schema命令。如果这橛,查询可以是这样的:SELECT sql FROM (SELECT * FROM sqlite_master UNION ALL SELECT * FROM sqlite_temp_master)WHERE tbl_name LIKE %s AND type!=meta AND sql NOT NULL AND name

20、NOT LIKE sqlite_%ORDER BY substr(type,2,1), name在查询中“%S“为你的参数所取代。这使你可以询数据库结构的某个子集。sqlite.schema%abc% 与这些一起,“.table”命令也接受一个模式作为他的参数。如果你给“.table”一个参数,“%”将被前后扩展并且一个LIKE子句被附加到查询上。这让你可以列出只与特定模式相匹配的的表。 “.datebasae”命令显示所有当前连接打开的数据库的一个列表。将允许一次到少两个。第一个是“main”,最初打开的那个数据库。第二个是temp,用于临时表的数据库。对于用ATTACH语句附加的数据也许有

21、附加数据库列表。输出的第一列与之相联的数据库名,第二列是外部文件名。sqlite.databases 将整个数据库转换为ASCII文本文件 .dump命令成一个单一的ASCII文本文件。这个文件可以被用作管道传递给sqlite3命令来转换回数据库。 一个最好的制作一个数据库档案拷贝的命令是:$echo.dump|sqlite3ex1|gzip-cex1.dump.gz 它产生一个一个名为ex1.dump.gz的文件,它包含了你以后或在其它机器上重构数据库的所有的信息。要重构数据库,只须敲入:$zcat ex1.dump.gz|sqlite3 ex2 这个文本格式是纯粹的SQL语句所以你可以用.

22、dump命令来导出一个SQLite数据库到另一个常用的SQL数据库引擎。比如:$createdbex2$sqlite3ex1.dump|psqlex2 其它的点命令.explain命令可以被用来设置输出格式为“column”并设置列宽为EXPLAIN命令看起来比较合理的宽度。EXPLAIN命令是SQLite特有的SQL扩展,它是对调试有用。如果任何常规的SQL被EXPLAIN执行,那么SQL命令被分解并分析但并不执行。取而代之的是,虚拟机指令序列将被用于执行SQL命令并返回一个类似的查询结果。如:sqlite.explainsqliteexplaindeletefromtbl1wheretwo

23、awkprintf%s%sn,$1,$2hello10goodbye20$ A simple Shell Script Demo#!/bin/shSqlite dbEOFSqlite dbEOFCREATE TABLE employee (id INT ,name CHAR(10);INSERT INTO employee VALUES(1,ADAN);EOF结束命令行命令 SQLite命令通常以一个分号结束。在一个命令行中你也可以用“GO”单词(大小写敏感)或者一个“/”斜线在它所在好行结束一个命令。这常被SQL Server和Oracle使用。这些将不在sqlite3_exec()中有用,因为命令行在传递它们到函数之前把这些翻译为分号。从源文件中编译sqlite3 sqlite3程序当你编译SQLite库时自动被建立。只须取得一个源文件树的拷

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1