现在的位置: 首页 > 综合 > 正文

sqlite 的使用

2013年04月04日 ⁄ 综合 ⁄ 共 7035字 ⁄ 字号 评论关闭

1,指定驱动器,如:./sqlite3 /dev/sda

2.执行命令:

sqlite> .version  
SQLite 3.7.10 2012-01-16 13:28:40 ebd01a8deffb5024a5d7494eef800d2366d97204
sqlite> .tables
vehicleinfo
sqlite> .database
seq  name             file                                                      
---  ---------------  ----------------------------------------------------------
0    main             /dev/sda                                                  
1    temp                                                                       
sqlite> select *from vehicleinfo limit 12;
1349981156375000|1|0|2|0|1|2|2012-10-11 18:45:56.375|2012-10-11 18:45:59|0||0-0-0|0|255|255|0|0||1|0|2|1|20|0|2|2|0|512|300396|1349981156|375
1349981156375001|2|0|2|0|1|3|2012-10-11 18:45:56.375|2012-10-11 18:45:59|0||0-0-0|0|255|255|0|0||1|0|2|1|20|0|2|2|0|301568|300396|1349981156|375
1349981158055002|3|0|2|0|1|1|2012-10-11 18:45:58.055|2012-10-11 18:46:01|0||0-0-0|0|255|255|0|0||1|0|2|1|20|0|2|2|0|602624|351052|1349981158|55
1349981158055003|4|0|2|0|1|3|2012-10-11 18:45:58.055|2012-10-11 18:46:01|0||0-0-0|0|255|255|0|0||1|0|2|1|22|0|2|2|0|954368|351052|1349981158|55
1349981158535004|5|0|2|0|1|2|2012-10-11 18:45:58.535|2012-10-11 18:46:01|0||0-0-0|0|255|255|0|0||1|0|2|1|22|0|2|2|0|1306112|326628|1349981158|535
1349981159735005|6|0|2|0|1|1|2012-10-11 18:45:59.735|2012-10-11 18:46:02|0||0-0-0|0|255|255|0|0||1|0|2|1|22|0|2|2|0|1633280|346332|1349981159|735
1349981160215006|7|0|3|0|1|3|2012-10-11 18:46:00.215|2012-10-11 18:46:02|0||0-0-0|0|0|0|141|7|M730|754|1|0|2|1|24|0|2|2|0|1980416|337420|1349981160|215
1349981160335007|8|0|3|0|1|2|2012-10-11 18:46:00.335|2012-10-11 18:46:02|0||0-0-0|0|0|0|156|7|F258|791|1|0|2|1|100|0|2|2|0|2318848|330400|1349981160|335
1349981162375008|9|0|2|0|1|2|2012-10-11 18:46:02.375|2012-10-11 18:46:04|0||0-0-0|0|255|255|0|0||1|0|2|1|20|0|2|2|0|2650112|271496|1349981162|375
1349981165615009|1|0|2|0|1|1|2012-10-11 18:46:05.615|2012-10-11 18:46:07|0||0-0-0|0|255|255|0|0||1|0|2|1|20|0|2|2|0|2922496|279256|1349981165|615
1349981166935011|2|0|2|0|1|2|2012-10-11 18:46:06.935|2012-10-11 18:46:10|0||0-0-0|0|255|255|0|0||1|0|2|1|20|0|2|2|0|3521024|320948|1349981166|935

1349981167055010|1|0|2|0|1|3|2012-10-11 18:46:07.055|2012-10-11 18:46:10|0||0-0-0|0|255|255|0|0||1|0|2|1|20|0|2|2|0|3202560|317752|1349981167|55 

 

 

附加:完整的sqlite的命令:

1.介绍:sqlite3是linux上的小巧的数据库,一个文件就是一个数据库。
2.安装:
  要安装sqlite3,可以在终端提示符后运行下列命令:
  sudo apt-get install sqlite3
  检查版本
  sqlite3 -version
3.测试
  当前目录下建立test.db测试数据库文件
  sqlite3 test.db
  查询信息
  .database
  退出
  .exit
4.图形界面
   可以选择sqlitebrowser程式(qt3)
   sudo apt-get install sqlitebrowser
   启动图形界面可以在终端提示符后输入sqlitebrowser
5.编程
 PHP:sudo apt-get install php5-sqlite
 Python:sudo apt-get install python-pysqlite2
 Ruby:sudo apt-get install libsqlite3-ruby


比较有用的命令:

.tables 显示数据库中所有的表.

.schema 显示所有的表的创建语句.

.schema tableX 显示表tableX的创建语句.
  如:sqlite> .schema emperors  
.quit 退出

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

开始

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

        例如,创建一个包含一个表"tb11"名字为"ex1"的SQLite数据库,你可以这样做:

$sqlite3 ex1

SQLite version 3.3.17

Enter ".help" for instructions

sqlite> create table tbl1(one varchar(10), two smallint);

sqlite> insert into tbl1 values('hello!', 10);

sqlite> insert into tbl1 values('goodbye', 20);

sqlite> select * from tbl1;

hello!|10

goodbye|20

sqlite>

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

sqlite> create table tbl2(

   ...> f1 varchar(30) primary key,

   ...> f2 text,

   ...> f3 real

   ...> );

sqlite>

题外话:查询SQLITE_MASTER表

    SQLite数据库的框架被保存在一个名叫"sqlite_master"的特殊的表中。你可以像查询其它表一样通过执行“SELECT”查询这个特殊的表。例如:

$ sqlite3 ex1

SQlite vresion 3.3.10

Enter ".help" for instructions

sqlite> select * from sqlite_master;

     type = table

     name = tbl1

tbl_name = tbl1

rootpage = 3

      sql = create table tbl1(one varchar(10), two smallint)

sqlite>

    但你不能在sqlite_master表中执行诸如DROP TABLE, 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

.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 <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

.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" mode

sqlite>

改变输出格式

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

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

sqlite> .mode list

sqlite> select * from tbl1;

hello|10

goodbye|20

sqlite>

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

sqlite> .separator ", "

sqlite> select * from tbl1;

hello, 10

goodbye, 20

sqlite>

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

sqlite> .mode line

sqlite> select * from tbl1;

one = hello

two = 10

one = goodbye

two = 20

sqlite>

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

sqlite> .mode column

sqlite> select * from tbl1;

one          two      

----------   ----------

hello        10       

goodbye      20       

sqlite>

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

sqlite> .width 12 6

sqlite> select * from tbl1;

one            two  

------------   ------

hello          10   

goodbye        20   

sqlite>

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

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

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

sqlite> .header off

sqlite> select * from tbl1;

hello          10   

抱歉!评论已关闭.