您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > sqlite3命令方式操作大全
SQLite3命令操作大全SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令。本文档提供一个样使用sqlite3的简要说明.一.qlite3一些常用Sql语句操作创建表:createtable表名(元素名类型,…);删除表:droptable表名;插入数据:insertinto表名values(,,,);创建索引:create[unique]index索引名on表名(col….);删除索引:dropindex索引名(索引是不可更改的,想更改必须删除重新建)删除数据:deletefrom表名;更新数据:update表名set字段=’修改后的内容’where条件;增加一个列:Altertable表名addcolumn字段数据类型;选择查询:select字段(以”,”隔开)from表名where条件;日期和时间:Selectdatetime('now')日期:selectdate('now');时间:selecttime('now');总数:selectcount(*)fromtable1;求和:selectsum(field1)fromtable1;平均:selectavg(field1)fromtable1;最大:selectmax(field1)fromtable1;最小:selectmin(field1)fromtable1;排序:select字段fromtable1orderby字段(desc或asc);(降序或升序)分组:select字段fromtable1groupby字段,字段…;限制输出:select字段fromtable1limitxoffsety;=select字段fromtable1limity,x;(备注:跳过y行,取x行数据)(操作仍待完善)…SQLite支持哪些数据类型些?NULL值为NULLINTEGER值为带符号的整型,根据类别用1,2,3,4,6,8字节存储REAL值为浮点型,8字节存储TEXT值为text字符串,使用数据库编码(UTF-8,UTF-16BEorUTF-16-LE)存储BLOB值为二进制数据,具体看实际输入但实际上,sqlite3也接受如下的数据类型:smallint16位元的整数interger32位元的整数decimal(p,s)p精确值和s大小的十进位整数,精确值p是指全部有几个数(digits)大小值,s是指小数点後有几位数。如果没有特别指定,则系统会设为p=5;s=0。float32位元的实数。double64位元的实数。char(n)n长度的字串,n不能超过254。varchar(n)长度不固定且其最大长度为n的字串,n不能超过4000。graphic(n)和char(n)一样,不过其单位是两个字元double-bytes,n不能超过127。这个形态是为了支援两个字元长度的字体,例如中文字。vargraphic(n)可变长度且其最大长度为n的双字元字串,n不能超过2000。date包含了年份、月份、日期。time包含了小时、分钟、秒。timestamp包含了年、月、日、时、分、秒、千分之一秒。如果将声明表的一列设置为INTEGERPRIMARYKEY,则具有:1.每当你在该列上插入一NULL值时,NULL自动被转换为一个比该列中最大值大1的一个整数;2.如果表是空的,将会是1;算术函数abs(X)返回给定数字表达式的绝对值。max(X,Y[,...])返回表达式的最大值。min(X,Y[,...])返回表达式的最小值。random(*)返回随机数。round(X[,Y])返回数字表达式并四舍五入为指定的长度或精度。字符处理函数length(X)返回给定字符串表达式的字符个数。lower(X)将大写字符数据转换为小写字符数据后返回字符表达式。upper(X)返回将小写字符数据转换为大写的字符表达式。substr(X,Y,Z)返回表达式的一部分。randstr()quote(A)like(A,B)确定给定的字符串是否与指定的模式匹配。glob(A,B)条件判断函数coalesce(X,Y[,...])ifnull(X,Y)nullif(X,Y)集合函数avg(X)返回组中值的平均值。count(X)返回组中项目的数量。max(X)返回组中值的最大值。min(X)返回组中值的最小值。sum(X)返回表达式中所有值的和。其他函数typeof(X)返回数据的类型。last_insert_rowid()返回最后插入的数据的ID。sqlite_version(*)返回SQLite的版本。change_count()返回受上一语句影响的行数。last_statement_change_count()二.有关事务的操作(成批操作的时候,启动事务,比不启动事务快n倍)开始事物处理BEGINTRANSACTION;…………..进行对数据库操作…………..事物提交COMMIT;具体事例如下:假设有一个t1表,其中有a,b,c三列,如果要删除列c,以下过程描述如何做:BEGINTRANSACTION;CREATETEMPORARYTABLEt1_backup(a,b);INSERTINTOt1_backupSELECTa,bFROMt1;DROPTABLEt1;CREATETABLEt1(a,b);INSERTINTOt1SELECTa,bFROMt1_backup;DROPTABLEt1_backup;COMMIT;三.启动sqlite3程序仅仅需要敲入带有SQLite数据库名字的sqlite3命令即可。如果文件不存在,则创建一个新的(数据库)文件。然后sqlite3程序将提示你输入SQL。敲入SQL语句(以分号“;”结束),敲回车键之后,SQL语句就会执行。例如,创建一个包含一个表tb11名字为ex1的SQLite数据库,你可以这样做:数据库、表的建立,记录的添加、查询、修改和删除F:\sqlite3database.dbsqlitecreatetableadmin(usernametext,ageinteger);sqliteinsertintoadminvalues('kuang',25);sqliteselect*fromadmin;sqliteupdateadminsetusername='kk',age=24whereusername='kuang'andage=25;sqlitedeletefromadminwhereusername='kk';注:每条sql语句后必须以;号结尾!$sqlite3ex1SQLiteversion3.3.17Enter.helpforinstructionssqlitecreatetabletbl1(onevarchar(10),twosmallint);sqliteinsertintotbl1values('hello!',10);sqliteinsertintotbl1values('goodbye',20);sqliteselect*fromtbl1;hello!|10goodbye|20sqlite你可以通过敲你所用系统的文件结束符(通常是Ctrl+D)或者中断字符(通常是Ctrl+C)。来终止sqlite3程序。确定你在每个SQL语句结束敲入分号!sqlite3程序通过查找分号来决定一个SQL语句的结束。如果你省略分号,sqlite3将给你一个连续的命令提示符并等你给当前的SQL命令添加更多的文字。这个特点让你输入多行的多个SQL语句,例如:sqlitecreatetabletbl2(...f1varchar(30)primarykey,...f2text,...f3real...);sqlite四.题外话:查询SQLITE_MASTER表SQLite数据库的框架被保存在一个名叫sqlite_master的特殊的表中。你可以像查询其它表一样通过执行“SELECT”查询这个特殊的表。例如:$sqlite3ex1SQlitevresion3.3.10Enter.helpforinstructionssqliteselect*fromsqlite_master;type=tablename=tbl1tbl_name=tbl1rootpage=3sql=createtabletbl1(onevarchar(10),twosmallint)sqlite但你不能在sqlite_master表中执行诸如DROPTABLE,UPDATE,INSERT或者DELETE命令。sqlite_master表在你创建、删除和索引数据库时自动更新这个表。你不能手工更改sqlite_master表。TEMPORARY表的结构没有存储在sqlite_master表中,由于TEMPORARY表对应用是不可见的,而不是应用程序创建这个表。TEMPORARY表结构被存储在另外一个名叫sqlite_temp_master的特定的表中。sqlite_temp_master表是临时表自身。五.sqlite3的特殊命令大多数候,sqlite3读入输入行,并把它们传递到SQLite库中去运行。但是如果输入行以一个点(“.”)开始,那么这行将被sqlite3程序自己截取并解释。这些“点命令”通常被用来改变查询输出的格式,或者执行鞭个预封包(预定义prepackaged)的查询语句。你可以在任何时候输入“.help”,列出可用的点命令。例如sqlite.help.bailON|OFFStopafterhittinganerror.DefaultOFF(遇到错误时不再继续,默认为OFF).databasesListnamesandfilesofattacheddatabases(列出附加到数据库的数据库和文件).dump?TABLE?...DumpthedatabaseinanSQLtextformat(保存表到SQL格式的文件中,没有指表名,则保存所有.如果要保存到磁盘上需要结合.output命令.).echoON|OFFTurncommandechoonoroff(打开/关闭命令行回显).exitExitthisprogram(退出该命令行).explainON|OFFTurnoutputmodesuitableforEXPLAINonoroff.(以合适的方式显示表头,不带参数则为开启).header(s)ON|OFFTurndisplayofheadersonoroff(是否显示表头,和.explain差别不是很大).helpShowthismessage(显示帮助信息).importFILETABLEImportdatafromFILEintoTABLE(从文件中导入表).indicesTABLEShownamesofallindicesonTABLE(显示索引).loadFILE?ENTRY?Loadanextensionlibrary(加载一个扩展库).modeMODE?TABLE?SetoutputmodewhereMODEisoneof:(设置输出模式,模式可以是以下几种):csvComma-separatedvalues(以逗号分隔的值)columnLeft-alignedcolumns.(See.width)(表头左对齐(参见.width))htmlHTMLtablecode(显示HTML代码)insertSQLinsertstatementsforTABLE(SQL插入语句)lineOnevalueperline(一行一个值)listValuesdelimitedbyseparatorstring(值用string分隔)tabsTab-separatedvalues(以tab分隔的值)tclTCLlistelements(TCL列表元素).nullvalueSTRINGPrintSTRINGinplaceofNULLvalues(以STRING
本文标题:sqlite3命令方式操作大全
链接地址:https://www.777doc.com/doc-1908024 .html