ITEEDU

改变输出格式 

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    
	goodbye       20    
	sqlite> 

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

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

	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”。在这种模式下,sqlite3把查询的结果写做XHTML表。开始的<TABLE>和结束的</TABLE>(标记)没有写出,但有<TR>、<TH>和<TD>等分界符。html输出对CGI来说是相当有用地。