青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::

比較有用的命令:

.tables 顯示數(shù)據(jù)庫中所有的表.

.schema 顯示所有的表的創(chuàng)建語句.

.schema tableX 顯示表tableX的創(chuàng)建語句.

.quit 退出


SQLite庫包含一個名字叫做sqlite3的命令行,它可以讓用戶手工輸入并執(zhí)行面向SQLite數(shù)據(jù)庫的SQL命令。本文檔提供一個樣使用sqlite3的簡要說明。

開始

      啟動sqlite3程序,僅僅需要敲入帶有SQLite數(shù)據(jù)庫名字的"sqlite3"命令即可。如果文件不存在,則創(chuàng)建一個新的(數(shù)據(jù)庫)文件。然后 sqlite3程序?qū)⑻崾灸爿斎隨QL。敲入SQL語句(以分號“;”結(jié)束),敲回車鍵之后,SQL語句就會執(zhí)行。

        例如,創(chuàng)建一個包含一個表"tb11"名字為"ex1"的SQLite數(shù)據(jù)庫,你可以這樣做:

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

        你可以通過敲你所用系統(tǒng)的文件結(jié)束符(通常是Ctrl + D)或者中斷字符(通常是Ctrl + C)。來終止sqlite3程序。確定你在每個SQL語句結(jié)束敲入分號!sqlite3程序通過查找分號來決定一個SQL語句的結(jié)束。如果你省略分 號,sqlite3將給你一個連續(xù)的命令提示符并等你給當(dāng)前的SQL命令添加更多的文字。這個特點讓你輸入多行的多個SQL語句,例如:

sqlite> create table tbl2(

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

   ...> f2 text,

   ...> f3 real

   ...> );

sqlite>

題外話:查詢SQLITE_MASTER表

    SQLite數(shù)據(jù)庫的框架被保存在一個名叫"sqlite_master"的特殊的表中。你可以像查詢其它表一樣通過執(zhí)行“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表中執(zhí)行諸如DROP TABLE, UPDATE, INSERT 或者DELETE命令。sqlite_master表在你創(chuàng)建、刪除和索引數(shù)據(jù)庫時自動更新這個表。你不能手工更改sqlite_master表。

    TEMPORARY表的結(jié)構(gòu)沒有存儲在"sqlite_master"表中,由于TEMPORARY表對應(yīng)用是不可見的,而不是應(yīng)用程序創(chuàng)建這個表。 TEMPORARY表結(jié)構(gòu)被存儲在另外一個名叫"sqlite_temp_master"的特定的表中。"sqlite_temp_master"表是臨 時表自身。

sqlite3的特殊命令

   大多數(shù)候,sqlite3讀入輸入行,并把它們傳遞到SQLite庫中去運行。但是如果輸入行以一個點(“.”)開始,那么這行將被sqlite3程序自 己截取并解釋。這些“點命令”通常被用來改變查詢輸出的格式,或者執(zhí)行鞭個預(yù)封包(預(yù)定義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程序可以以八種不同的格式顯示一個查詢的結(jié)果:"csv", "列", "html", "插入", "行", "制表"和"tcl"。你可以用".mode"點命令在這些輸出格式之間切換。

    默認(rèn)的輸出格式是“列表”。在列表模式下,每條查詢結(jié)果記錄被寫在一行中并且每列之間以一個字符串分割符隔開。默認(rèn)的分隔符是一個管道符號(“|”)。列表符號在當(dāng)你輸出查詢結(jié)果到另外一個符加處理的程序(如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"模式下,每一個位于條記錄中的列在它自己那行顯示。每行由列名、一個等號和列數(shù)據(jù)組成。下一條記錄以一個空行隔開。這是一個行模式輸出的例子:

sqlite> .mode line

sqlite> select * from tbl1;

one = hello

two = 10

one = goodbye

two = 20

sqlite>

    在列模式下,每條記錄在一個單獨的行中以數(shù)據(jù)列對齊的方式顯示。列如:

sqlite> .mode column

sqlite> select * from tbl1;

one          two       

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

hello        10        

goodbye      20        

sqlite>

        在默認(rèn)的情況下,每列至少10個字符寬。太寬的數(shù)據(jù)將被截取。你可以用“.width”命令來調(diào)整列寬。如下所示:

sqlite> .width 12 6

sqlite> select * from tbl1;

one            two   

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

hello          10    

goodbye        20    

sqlite>

     上面例子中".width"命令設(shè)置第一列寬為12第二列寬為6。其它的列寬不變。你可以指定與你查詢結(jié)果需要的列數(shù)一樣多的“.width”參數(shù)。

    如果你指定一列寬為0,那么這個列寬將自動以下面三個數(shù)字中的最大值做為列寬:10、表頭寬度和最寬的數(shù)據(jù)列的寬度。這可以讓列自動調(diào)整寬度。每列的默認(rèn)設(shè)置為自動調(diào)整的0值。

    出現(xiàn)在輸出開頭兩行的列標(biāo)示可以用".header"點命令關(guān)閉。在上面的例子中,列標(biāo)示是打開的。可以用下面的方法關(guān)閉列標(biāo)示:

sqlite> .header off

sqlite> select * from tbl1;

hello          10    

goodbye        20    

sqlite>

    另外一個有用的輸出模式是"insert"。在插入模式下,被子格式化為看起來像SQL INSERT語句的樣式。你可以用插入模式來產(chǎn)生文件(便于)以后用于不同數(shù)據(jù)庫的輸入。

    當(dāng)指定插入模式時,你必須給定一個特定參數(shù)就是要插入的表名。例如:

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把查詢的結(jié)果寫做XHTML表。開始的<TABLE>和結(jié)束 的</TABLE>(標(biāo)記)沒有寫出,但有<TR>、<TH>和<TD>等分界符。html輸出對 CGI來說是相當(dāng)有用地。

把結(jié)果寫到文件中

    默認(rèn)情況下,sqlte3把結(jié)送到標(biāo)準(zhǔn)輸出。你可以用“.output”命令改變它。只須把輸出文件名做為.output命令的輸出參數(shù)然后所有后續(xù)查詢結(jié)果將被寫到那個文件中。用“.output stdout”再一次改為標(biāo)準(zhǔn)輸出。例如:

sqlite> .mode list

sqlite> .separator |

sqlite> .output test_file_1.txt

sqlite> select * from tbl1;

sqlite> .exit

$ cat test_file_1.txt

hello|10

goodbye|20

$

查詢數(shù)據(jù)庫結(jié)構(gòu)

     sqlite3程序提供幾個有用的用于查詢數(shù)據(jù)庫結(jié)構(gòu)的快捷命令。這些不是不可以用別的方式來實現(xiàn)。這些命令僅僅是一個快捷方式而已。

    例如,為了查看數(shù)據(jù)庫的表列表,你可以敲入“.tables”。

sqlite> .tables

tbl1

tbl2

sqlite>

    “.tables”命令相似于設(shè)置列表模式然后執(zhí)行接下來的查詢:

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

事實上,你可以查看sqlite3的源代碼(可以在源文件樹的src/shell.c中),你可找到上面的具體的查詢。

“.indices”命令作用類似的方 式是列出特定表的所有的索引。“.indics”命令須一個參數(shù)即所要索引表的表名。最后,但不是至少,是“.schema”命令。不帶任何參 數(shù),“.schema”命令顯示原始的用于創(chuàng)建當(dāng)前數(shù)據(jù)庫的CREATE TABLE和CREATE INDEX語句。如果你給".schema"命令一個表名,它顯示原始的創(chuàng)建該表和它所有索引的CREATE語句。我們可以:

".schema"命令可以用設(shè)置列表然后執(zhí)行以下查詢來實現(xiàn):

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"命令一個參數(shù),由于你只想得到一個表的結(jié)構(gòu),查詢可以是這樣:

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

你可以擔(dān)供一個參數(shù)給.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“為你的參數(shù)所取代。這使你可以詢數(shù)據(jù)庫結(jié)構(gòu)的某個子集。

sqlite> .schema %abc%

與這些一起,“.table”命令也接受一個模式作為他的參數(shù)。如果你給“.table”一個參數(shù),“%”將被前后擴(kuò)展并且一個LIKE子句被附加到查詢上。這讓你可以列出只與特定模式相匹配的的表。

“.datebasae”命令顯示所有 當(dāng)前連接打開的數(shù)據(jù)庫的一個列表。將允許一次到少兩個。第一個是“main”,最初打開的那個數(shù)據(jù)庫。第二個是"temp",用于臨時表的數(shù)據(jù)庫。對于用 ATTACH語句附加的數(shù)據(jù)也許有附加數(shù)據(jù)庫列表。輸出的第一列與之相聯(lián)的數(shù)據(jù)庫名,第二列是外部文件名。

sqlite> .databases

將整個數(shù)據(jù)庫轉(zhuǎn)換為ASCII文本文件

".dump"命令成一個單一的ASCII文本文件。這個文件可以被用作管道傳遞給sqlite3命令來轉(zhuǎn)換回數(shù)據(jù)庫。

一個最好的制作一個數(shù)據(jù)庫檔案拷貝的命令是:

$ echo '.dump' | sqlite3 ex1 | gzip -c >ex1.dump.gz

它產(chǎn)生一個一個名為ex1.dump.gz的文件,它包含了你以后或在其它機器上重構(gòu)數(shù)據(jù)庫的所有的信息。要重構(gòu)數(shù)據(jù)庫,只須敲入:

$ zcat ex1.dump.gz | sqlite3 ex2

這個文本格式是純粹的SQL語句所以你可以用.dump命令來導(dǎo)出一個SQLite數(shù)據(jù)庫到另一個常用的SQL數(shù)據(jù)庫引擎。比如:

$ createdb ex2

$ sqlite3 ex1 .dump | psql ex2

其它的點命令

".explain"命令可以被用來設(shè) 置輸出格式為“column” 并設(shè)置列寬為EXPLAIN命令看起來比較合理的寬度。EXPLAIN命令是SQLite特有的SQL擴(kuò)展,它是對調(diào)試有用。如果任何常規(guī)的SQL被 EXPLAIN執(zhí)行,那么SQL命令被分解并分析但并不執(zhí)行。取而代之的是,虛擬機指令序列將被用于執(zhí)行SQL命令并返回一個類似的查詢結(jié)果。如:

sqlite> .explain

sqlite> explain delete from tbl1 where two<20;

addr   opcode         p1      p2      p3          

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

0      ListOpen       0       0                  

1      Open           0       1       tbl1        

2      Next           0       9                  

3      Field          0       1                  

4      Integer        20      0                  

5      Ge             0       2                  

6      Key            0       0                  

7      ListWrite      0       0                  

8      Goto           0       2                  

9      Noop           0       0                  

10     ListRewind     0       0                  

11     ListRead       0       14                 

12     Delete         0       0                  

13     Goto           0       11                 

14     ListClose      0       0

“.timeout”命令設(shè)置sqlite3等待一個試圖存儲文件鎖定請除直到錯誤返回的總時間。默認(rèn)的超時值是0因此如果任何需要的數(shù)據(jù)庫表或序列列被鎖定時它將立即返回一個錯誤。

最后,我們提到“.exit”命令它交導(dǎo)致sqlite3退出。

在命令和腳本中使用sqlite3

一個在腳本命令中使用 sqlite3的方式是用“echo”或“cat”來產(chǎn)生一個命令序列在一個文件中,然后當(dāng)從一個產(chǎn)生的命令行中重定向輸入時調(diào)用sqlite3。它有用 并且適應(yīng)許多環(huán)境。但作為一附加的便利是,sqlite3允許一個單一的SQL語句在命令行中作為數(shù)據(jù)庫名后的第二個參數(shù)輸入。當(dāng)sqlite3程序帶著 兩個參數(shù)啟動時,第二個參數(shù)被傳遞給SQLite庫處理,查詢以列表模式打印到標(biāo)準(zhǔn)輸出,然后程序退出。這個機制被設(shè)計用于讓sqlite3容易于用于連 接諸如"AWK"的程序。例如:

$ sqlite3 ex1 'select * from tbl1' |

> awk '{printf "<tr><td>%s<td>%s\n",$1,$2 }'

<tr><td>hello<td>10

<tr><td>goodbye<td>20

$

結(jié)束命令行命令

SQLite命令通常以一個分 號結(jié)束。在一個命令行中你也可以用“GO”單詞(大小寫敏感)或者一個“/”斜線在它所在好行結(jié)束一個命令。這常被SQL Server和Oracle使用。這些將不在sqlite3_exec()中有用,因為命令行在傳遞它們到函數(shù)之前把這些翻譯為分號。

從源文件中編譯sqlite3

sqlite3程序當(dāng)你編譯SQLite庫時自動被建立。只須取得一個源文件樹的拷貝,運行“configure"然后"make"即可。

posted on 2009-04-14 23:06 逛奔的蝸牛 閱讀(5682) 評論(0)  編輯 收藏 引用 所屬分類: Qt
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品国产自产拍高清av| 国产原创一区二区| 欧美不卡视频一区发布| 久久亚洲精品网站| 日韩午夜激情av| 亚洲第一精品久久忘忧草社区| 在线视频免费在线观看一区二区| 狠狠色狠狠色综合日日91app| 亚洲日本理论电影| 快播亚洲色图| 99国产精品一区| 亚洲欧美制服另类日韩| 久久国产精品99国产| 亚洲精品欧美日韩专区| 亚洲日本在线观看| 亚洲视频免费在线观看| 亚洲欧美怡红院| 久久久最新网址| 欧美国产亚洲视频| 欧美四级在线| 国产一区二区高清| 亚洲国产小视频在线观看| 亚洲激情成人在线| 一区二区三区国产精华| 久久久久国产精品麻豆ai换脸 | 性欧美1819sex性高清| 亚洲欧美国产精品桃花| 午夜国产精品影院在线观看| 亚洲午夜电影| 欧美自拍偷拍午夜视频| 久久精品1区| 蜜桃精品一区二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 性做久久久久久久久| 午夜在线成人av| 欧美亚州一区二区三区| 欧美在线影院| 欧美国产一区二区三区激情无套| 影音先锋亚洲电影| 亚洲线精品一区二区三区八戒| 国产精品久久国产精麻豆99网站| 久久精品一区二区三区中文字幕| 久久男女视频| 欧美在线观看网站| 欧美日韩少妇| 亚洲人精品午夜在线观看| 国产一区二区久久精品| 一个色综合av| 欧美亚洲免费高清在线观看| 亚洲精品久久久久久一区二区 | 午夜国产精品视频| 久久国产精品久久久久久| 欧美sm视频| 免费一级欧美片在线观看| 国产精品美女黄网| 国产自产精品| 久久激情中文| 免费国产一区二区| 亚洲日本va午夜在线影院| 亚洲一区高清| 欧美一区久久| 国产欧美三级| 亚洲桃花岛网站| 欧美一级在线播放| 国产日韩在线看片| 久久亚洲视频| 亚洲精品美女久久7777777| 最新高清无码专区| 欧美成人69av| 一区二区免费在线观看| 久久gogo国模裸体人体| 亚洲人成网站在线观看播放| 女女同性精品视频| 亚洲视频国产视频| 久久中文在线| 欧美一区二区三区精品电影| 久久久国产91| 亚洲深夜福利网站| 亚洲东热激情| 国产亚洲第一区| 欧美日韩一区二区三区在线 | 久久精品视频在线| 最新成人av网站| 久久国产精品亚洲77777| 亚洲激情视频网| 狠狠色噜噜狠狠色综合久| 欧美日韩中文字幕日韩欧美| 欧美在线精品一区| 亚洲综合不卡| 亚洲一区二区欧美日韩| 欧美粗暴jizz性欧美20| 久久久久国产成人精品亚洲午夜| 正在播放欧美视频| 一区二区三区视频免费在线观看| 国产日韩av高清| 欧美日韩国产区一| 欧美视频一区二区三区四区| 欧美一区二区精美| 亚洲午夜一二三区视频| 亚洲一区二区三区在线视频| aa日韩免费精品视频一| 亚洲激情校园春色| 另类图片国产| 久久精品一区二区三区不卡| 亚洲欧美激情视频在线观看一区二区三区| 亚洲电影毛片| 国产精品99久久久久久白浆小说| 亚洲最快最全在线视频| 亚洲影音一区| 美女精品网站| 欧美精品网站| 国产人成精品一区二区三| 狠狠色2019综合网| 一区二区三区黄色| 亚洲大片免费看| 欧美日韩一区二区三区在线| 欧美一级视频精品观看| 久久国产一二区| 蜜臀av在线播放一区二区三区| 久久婷婷综合激情| 国产精品成人观看视频免费| 国产欧美一区二区色老头| 一本综合精品| 久久嫩草精品久久久久| 亚洲欧美综合另类中字| 国产精品mv在线观看| 在线日韩成人| 久久婷婷色综合| 亚洲欧美日韩另类| 国产精品久久久久久久久动漫| 亚洲人成网站在线观看播放| 蜜桃av噜噜一区| 久久精品国产77777蜜臀| 欧美一级二区| 欧美大片第1页| 亚洲女人天堂av| 欧美视频导航| 一本色道久久综合狠狠躁篇怎么玩| 欧美在线视频日韩| 91久久久在线| 欧美大片网址| 亚洲视频国产视频| 99精品欧美一区| 亚洲午夜激情| 国产精品视频免费在线观看| 午夜精品久久久久99热蜜桃导演| 亚洲精品在线看| 国产欧美日韩亚洲精品| 欧美成人一区二区| 国产精品揄拍500视频| 亚洲国产精品久久久久久女王| 国产精品v日韩精品v欧美精品网站| 久久久91精品国产一区二区三区 | 国产欧美综合一区二区三区| 欧美高清不卡在线| 黄色亚洲在线| 西西人体一区二区| 亚洲午夜久久久久久尤物| 欧美成人69| 久久成人免费视频| 欧美日韩中国免费专区在线看| 性感少妇一区| 国产精品午夜电影| 亚洲欧美另类综合偷拍| 亚洲欧美日韩国产| 欧美日韩国产黄| 精品二区视频| 久久精品国产2020观看福利| 久久欧美中文字幕| 尤物九九久久国产精品的特点| 亚洲午夜羞羞片| 亚洲午夜久久久| 今天的高清视频免费播放成人| 欧美伊人久久| 亚洲人成网站精品片在线观看| 国产麻豆91精品| 亚洲一区二区成人在线观看| 亚洲图片欧洲图片日韩av| 欧美日韩精品一区二区三区四区| 亚洲欧洲日本mm| 亚洲欧美精品在线观看| 国产一区亚洲一区| 牛牛影视久久网| 久久久国际精品| 亚洲欧洲一区二区天堂久久| 亚洲欧美日本日韩| 亚洲免费观看高清在线观看| 国产精品亚洲片夜色在线| 欧美一区二区三区在线看| 欧美顶级少妇做爰| 久久国产直播| 亚洲一区二区av电影| 亚洲老板91色精品久久| 在线免费观看视频一区| 国产一区二区日韩精品欧美精品| 欧美激情在线狂野欧美精品| 性久久久久久久| 亚洲欧美国产日韩中文字幕| 日韩一区二区精品在线观看| 亚洲第一色中文字幕|