1. 程式人生 > >sqlite 常用設定命令、

sqlite 常用設定命令、

sqlite有些常用命令,對應用sqlite資料有很大用途。

下面詳細講解一下:

SQLITE_MASTER 表

一個SQLite資料庫的資料結構是存貯在 "sqlite_master" 表中。你可以像其他資料表一樣對 sqlite_master 表執行 “SELECT” 語句,例如:

sqlite3 ex1
SQlite vresion 3.3.10
Enter ".help" for instructions
sqlite> select * from sqlite_master;
     type = table
  tbl_name = tbl1 

   name = tbl1
  rootpage = 3
      sql = create table tbl1(one varchar(10), two smallint)
sqlite>

將結果寫到檔案

預設情況下,sqlite3會將結果傳送到標準輸出,你可以使用 ".output" 來改變,只是將輸出到的檔名作為引數傳遞給 .output,所有後面的查詢結果都會寫到檔案裡。開頭使用 ".output stdout" 會再次寫到標準輸出,例如:

sqlite> .mode list    顯示模式
sqlite> .separator |   欄位直接間隔
sqlite> .output test_file_1.txt  輸出到那個檔案
sqlite> select * from tb1;   查詢資料
sqlite> .exit         退出


# cat test_file_1.txt
hello|10
goodbye|20

改變輸出格式

sqlite3程式可以以八種不同的格式顯示一個查詢的結果:"csv", "列", "html", "插入", "行", "製表"和"tcl"。你可以用".mode"點命令在這些輸出格式之間切換。

    預設的輸出格式是“列表”。在列表模式下,每條查詢結果記錄被寫在一行中並且每列之間以一個字串分割符隔開。預設的分隔符是一個管道符號(“|”)。列表符號在當你輸出查詢結果到另外一個符加處理的程式(如AWK)中去是尤為有用。

sqlite> .mode list
sqlite> select from tb1;


hello|10
goodbye|20
sqlite>

    你可以用“.separator”點命令來改變分界符。例如,為了把分割符改為一個逗號和一個空格,你可以這樣做:

sqlite> .separator ", "
sqlite> select from tb1;
hello, 10
goodbye, 20
sqlite>

    在“line"模式下,每一個位於條記錄中的列在它自己那行顯示。每行由列名、一個等號和列資料組成。下一條記錄以一個空行隔開。這是一個行模式輸出的例子:

sqlite> .mode line
sqlite> select from tb1;
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 tb1;
hello         10    
goodbye       20    
sqlite>

.header on可以開啟列標示;

    另外一個有用的輸出模式是"insert"。在插入模式下,被子格式化為看起來像SQL INSERT語句的樣式。你可以用插入模式來產生檔案(便於)以後用於不同資料庫的輸入。

    當指定插入模式時,你必須給定一個特定引數就是要插入的表名。例如:

sqlite> .mode insert new_table
sqlite> select from tb1;
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來說是相當有用地。

 sqlite> .mode html
sqlite> select * from tb1;
<TR><TD>hello!</TD>
<TD>10</TD>
</TR>
<TR><TD>hello!</TD>
<TD>10</TD>
</TR>
<TR><TD>hello!</TD>
<TD>10</TD>
</TR>
<TR><TD>hello!</TD>
<TD>10</TD>
</TR>
<TR><TD>goodbye</TD>
<TD>20</TD>
</TR>

查詢資料庫結構

sqlite3程式提供幾個有用的用於查詢資料庫結構的快捷命令。這些不是不可以用別的方式來實現。這些命令僅僅是一個快捷方式而已。

    例如,為了檢視資料庫的表列表,你可以敲入“.tables”。

sqlite> .tables
tbl1
tbl2
sqlite>

    “.tables”命令相似於設定列表模式然後執行接下來的查詢:

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”命令須一個引數即所要索引表的表名。最後,但不是至少,是“.schema”命令。不帶任何引數,“.schema”命令顯示原始的用於建立當前資料庫的CREATE TABLE和CREATE INDEX語句。如果你給".schema"命令一個表名,它顯示原始的建立該表和它所有索引的CREATE語句。我們可以: 
sqlite> .schema
create table tbl1(one varchar(10), two smallint)
CREATE TABLE tbl2 (
  f1 varchar(30) primary key,
  f2 text,
  f3 real
)
sqlite> .schema tbl2
CREATE TABLE tbl2 (
  f1 varchar(30) primary key,
  f2 text,
  f3 real
)
sqlite>
 ".schema"命令可以用設定列表然後執行以下查詢來實現: 
SELECT sql FROM (SELECT * FROM sqlite_master UNION ALL SELECT * FROM sqlite_temp_master) WHERE type!='meta' ORDER BY tbl_name, type DESC, name 
 或者,如果你給".schema"命令一個引數,由於你只想得到一個表的結構,查詢可以是這樣: 
SELECT sql FROM (SELECT * FROM sqlite_master UNION ALL SELECT * FROM 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 NOT LIKE 'sqlite_%' ORDER BY substr(type,2,1), name 
 在查詢中“%S“為你的引數所取代。這使你可以詢資料庫結構的某個子集。 
sqlite> .schema %abc% 
與這些一起,“.table”命令也接受一個模式作為他的引數。如果你給“.table”一個引數,“%”將被前後擴充套件並且一個LIKE子句被附加到查詢上。這讓你可以列出只與特定模式相匹配的的表。 
 “.datebasae”命令顯示所有當前連線開啟的資料庫的一個列表。將允許一次到少兩個。第一個是“main”,最初開啟的那個資料庫。第二個是"temp",用於臨時表的資料庫。對於用ATTACH語句附加的資料也許有附加資料庫列表。輸出的第一列與之相聯的資料庫名,第二列是外部檔名。 
sqlite> .databases 
sqlite> .databases
seq  name             file
---  ---------------  ----------------------------------------------------------
   main             //ex1
   temp             /tmp/etilqs_SAmtUWMcNv0tqMn
將整個資料庫轉換為ASCII文字檔案 
".dump"命令成一個單一的ASCII文字檔案。這個檔案可以被用作管傳遞給sqlite3命令來轉換回資料庫。 
 一個最好的製作一個數據庫檔案拷貝的命令是: 
echo '.dump' sqlite3 ex1 gzip -c >ex1.dump.gz  
  它產生一個一個名為ex1.dump.gz的檔案,它包含了你以後或在其它機器上重構資料庫的所有的資訊。要重構資料庫,只須敲入: 
zcat ex1.dump.gz sqlite3 ex2  
 這個文字格式是純粹的SQL語句所以你可以用.dump命令來匯出一個SQLite資料庫到另一個常用的SQL資料庫引擎。比如: 
createdb ex2
sqlite3 ex1 .dump psql ex2
其它的點命令 
".explain"命令可以被用來設定輸出格式為“column” 並設定列寬為EXPLAIN命令看起來比較合理的寬度。EXPLAIN命令是SQLite特有的SQL擴充套件,它是對除錯有用。如果任何常規的SQL被EXPLAIN執行,那麼SQL命令被分解並分析但並不執行。取而代之的是,虛擬機器指令序列將被用於執行SQL命令並返回一個類似的查詢結果。如: 
 “.timeout”命令設定sqlite3等待一個試圖儲存檔案鎖定請除直到錯誤返回的總時間。預設的超時值是0因此如果任何需要的資料庫表或序列列被鎖定時它將立即返回一個錯誤。 

sqlite> .explain
sqlite> explain delete from tbl1 where two<20;
addr  opcode        p1     p2     p3          
----  ------------  -----  -----  -------------------------------------   
    ListOpen                            
    Open                    tbl1        
    Next                                
    Field                               
    Integer       20                      
    Ge            

相關推薦

sqlite 常用設定命令

sqlite有些常用命令,對應用sqlite資料有很大用途。 下面詳細講解一下: SQLITE_MASTER 表 一個SQLite資料庫的資料結構是存貯在 "sqlite_master" 表中。你可以像其他資料表一樣對 sqlite_master 表執行 “SELECT” 語句,例如: #sq

sqlite 常用設定命令

sqlite有些常用命令,對應用sqlite資料有很大用途。 下面詳細講解一下:   SQLITE_MASTER 表 一個SQLite資料庫的資料結構是存貯在 "sqlite_master" 表中。你可以像其他資料表一樣對 sqlite_master 表執行 “S

Django2_MVC(MTV)模型常用簡單命令項目目錄文件說明及static靜態文件

-a 圖片文件 靜態 site htm rmi 我們 業務 目錄 一.MVC、MTV模型著名的MVC模式:所謂MVC就是把web應用分為模型(M),控制器(C),視圖(V)三層;他們之間以一種插件似的,松耦合的方式連接在一起。模型負責業務對象與數據庫的對象(ORM),視圖負

sqlite常用命令-增刪改查

一、檢視版本資訊: #sqlite3 -version 二、sqlite3常用命令 1、當前目錄下建立或開啟test.db資料庫檔案,並進入sqlite命令終端,以sqlite>字首標識: 2、輸出幫助資訊: sqlite>.help 3、檢視資料庫檔案資訊命令(注意命令前帶字元'.'):

設定更改root密碼連線mysqlmysql常用命令mysql使用者管理常用sql語句mysql資料庫備份恢復

一、設定更改root密碼 首次直接使用mysql會提示‘該命令不存在’,原因是還沒有將該命令加入環境變數,如果要使用該命令,需要使用其絕對路徑:/usr/local/mysql/bin/mysql,為了方便,先將其加入系統環境變數: [[email p

linux中常用的壓縮解壓命令詳解

壓縮 不管在windows中還是在linux中,我們會經常看到各種壓縮的文件,此刻我們需要使用就得解壓,在這就介紹介紹linux中解壓、壓縮的命令。 在做實驗之前,我們先創建幾個文件,大小都是100M,方便我們更能清晰理解。 一、compress【選項】file(不是太常用,而且tab鍵還不能補齊)

sqlite 常用命令

ble 語句 tput log schema exit 多少 help blog 1)創建數據庫文件: >sqlite3 /home/test.db 回車 就生成了一個test.db在/home路徑下。 這樣同時也SQLite3加載了這個test.db 2)用

RabbitMQ常用命令管理界面

正常 pro wid img 運行 program gpo inf ram 1.運行CMD,cd切換到RabbitMQ安裝目錄sbin下E:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.2\sbin 執行 rabbi

monkey實戰--測試步驟常用參數常規monkey命令

dump tmg 位置 安裝ad 解包 選擇 misc 日誌分析 cti 簡要步驟:adb devices---了解包名--adb shell monkey -p 包名 -v 運行次數(多個參數的組合形成不同的用例以求最大的覆蓋)--當崩潰或無響應時分析monkey日誌

MySQL的常用操作更改root密碼連接MySQLMySQL常用命令

Linux學習筆記MySQL的常用操作更改root密碼 連接MySQL MySQL常用的命令 MySQL的常用操作更改root密碼、連接MySQL、MySQL常用的命令

MySQL常用命令正常登錄數據庫重置root密碼

mysql MySQL 重置數據庫密碼 連接mysql數據庫 mysql基本操作 更改mysql數據庫的root密碼 修改root密碼命令為 /usr/local/mysql/bin/mysql -uroot 定義環境變量 臨時定義環境變量 export PATH=$PATH:/usr/l

dosadb及shell常用命令

客戶 環境變量 bridge 工具 ridge sdk 常用 服務 andro 一、adb的含義 adb的全英文名稱為Android Debug Bridge,即安卓調試橋梁;adb可執行文件存放在安卓sdk中,所以要使用adb命令需要下載並安裝安卓sdk工具,

Maven環境搭建及常用命令生命周期

ngs 打包 efault info inf com clean setting 常用 一、下載maven包,解壓 二、配置環境變量,MAVEN_PATH=解壓路徑 添加到path中 三、測試 mvn -v 查看maven版本 四、設置本地倉庫的路徑 在co

設置更改root密碼連接MySQLMySQL常用命令

bin update start cal 數據庫 1.2 AD win sta 設置更改root密碼 首先查看一下mysql有沒有啟動ps aux |grep mysql 如果沒啟動,就先啟動mysql/etc/init.d/mysqld start 先將mysql目錄加入

Zookeeper--0200--安裝與集群搭建常用命令客戶端工具

客戶端軟件 href 根節點 log nbsp ron lan 常用命令 .cn 看這裏, http://www.cnblogs.com/lihaoyang/p/8358153.html 1,先使用可視化客戶端軟件 ZooInspector 連接上集群中的一個節點,看下z

Oracle 12C CDBPDB常用管理命令

自動 guid ont rep acl 數據 ace datafile con --查看PDB信息(在CDB模式下) show pdbs --查看所有pdb select name,open_mode from v$pdbs; --v$pdbs為PDB信息視圖 sel

【轉】monkey實戰--測試步驟常用參數常規monkey命令

固定 內存 err 完成後 get 都是 指點 cti 輸入 簡要步驟:adb devices---了解包名--adb shell monkey -p 包名 -v 運行次數(多個參數的組合形成不同的用例以求最大的覆蓋)--當崩潰或無響應時分析monkey日誌 常規monk

Linux常用命令vim打造python編輯器網路配置

VirtualBox5.1及Ubuntu16.04安裝教程:http://jingyan.baidu.com/article/46650658228345f549e5f8cc.html 一、常用命令 1.啟動圖形介面:startx 2.立刻關機:shutdown -h now

css基礎及其例項:常用選擇器顏色五中寫法字型樣式自定義字型盒模型及其樣式設定

<html lang="en"><head>    <meta charset="UTF-8">    <title>css樣式</title>    <style> 

nginx啟動關閉重啟及常用命令

轉自:https://blog.csdn.net/veryisjava/article/details/72917894 nginx常用命令 啟動: cd /usr/local/nginx/sbin ./nginx nginx服務啟動後預設的程序號會放在/usr/local/nginx