SQLite數(shù)據(jù)庫管理相關(guān)命令的使用介紹
1.創(chuàng)建數(shù)據(jù)庫
啟動(dòng)命令行,通過輸入如下命令打開Shell模式的CLP:
sqlite3 test.db
雖然我們提供了數(shù)據(jù)庫名稱,但如果該數(shù)據(jù)庫不存在,SQLite實(shí)際上就未創(chuàng)建該數(shù)據(jù)庫,直到在數(shù)據(jù)庫內(nèi)部創(chuàng)建一些內(nèi)容時(shí),SQLite才創(chuàng)建該數(shù)據(jù)庫。
2.創(chuàng)建數(shù)據(jù)表
sqlite> create table Member(id integer primary key, name text, age integer,addr text);
注:id為主鍵,該列默認(rèn)具備自動(dòng)增長的屬性。
3.插入數(shù)據(jù)
sqlite> insert into Member values(0,'wwl',21,'上海');//id=0的列必須不存在,否則會(huì)出錯(cuò)
或者sqlite> insert into Member(name,age,addr) values('wwl',21,'上海');
3.查詢數(shù)據(jù)
sqlite>.mode column
sqlite>.headers on
sqlite> select * from Member;
注:select語句前面的兩個(gè)命令(.headers和.mode)用于改善顯示格式,可以不要。
4.創(chuàng)建視圖和索引
sqlite> create view schema as select * from Member;
sqlite> create index Member_Idx on Member(id)
5.導(dǎo)出數(shù)據(jù)
使用.dump命令可以將數(shù)據(jù)庫對(duì)象導(dǎo)出成SQL格式。不帶任何參數(shù)時(shí),.dump將整個(gè)數(shù)據(jù)庫導(dǎo)出為數(shù)據(jù)庫定義語言(DDL)和數(shù)據(jù)庫操作語言(DML)命令,適合重新創(chuàng)建數(shù)據(jù)庫對(duì)象和其中的數(shù)據(jù)。如果提供了參數(shù),Shell將參數(shù)解析作為表名或視圖,導(dǎo)出任何匹配給定參數(shù)的表或視圖,那些不匹配的將被忽略。
默認(rèn)情況下.dump 命令的輸出定向到屏幕。如:.dump
如果要將輸出重定向到文件,請(qǐng)使用.dump[filename]命令,此命令將所有的輸出重定向到指定的文件中。若要恢復(fù)到屏幕的輸出,只需要執(zhí)行.output stdout命令就OK了。
sqlite>.output file.sql
sqlite>.dump
sqlite>.output stdout
注:如果file.sql不存在,將在當(dāng)前工作目錄中創(chuàng)建該文件。如果文件存在,它將被覆蓋。
6.導(dǎo)入數(shù)據(jù)
有兩種方法可以導(dǎo)入數(shù)據(jù),用哪種方法取決于要導(dǎo)入的文件格式。如果文件由SQL語句構(gòu)成,可以使用.read命令導(dǎo)入文件中包含的命令。如果文件中包含由逗號(hào)或其他分隔符分割的值(comma-swparated values,CSV)組成,可使用.import[file][table]命令,此命令將解析指定的文件并嘗試將數(shù)據(jù)插入到指定的表中。
.read命令用來導(dǎo)入.dump命令創(chuàng)建的文件。如果使用前面作為備份文件所導(dǎo)出的file.sql,需要先移除已經(jīng)存在的數(shù)據(jù)庫對(duì)象,然后用下面的方法重新導(dǎo)入:
sqlite>drop table Member;
sqlite>drop view schema;
sqlite>.read file.sql
7.備份數(shù)據(jù)庫
有兩種方式可以完成數(shù)據(jù)庫的備份,具體使用哪一種取決于你希望的備份類型。SQL轉(zhuǎn)儲(chǔ)許是移植性最好的備份。
生成轉(zhuǎn)儲(chǔ)的標(biāo)準(zhǔn)方式是使用CLP.dump命令:sqlite3 test.db .dump >test.sql
在Shell中,可以將輸出重定向到外部文件,執(zhí)行命令,恢復(fù)到屏幕輸出,如:
sqlite>.output file.sql
sqlite>.dump
sqlite>.output stdout
sqlite>.exit
同樣,容易將SQL轉(zhuǎn)儲(chǔ)作為CLP的輸入流實(shí)現(xiàn)數(shù)據(jù)庫導(dǎo)入:
sqlite3 test.db <test.sql
備份二進(jìn)制數(shù)據(jù)庫知識(shí)比復(fù)制文件稍多做一點(diǎn)工作。備份之前需要清理數(shù)據(jù)庫,這樣可以釋放一些已刪除對(duì)象不再使用的空間。這數(shù)據(jù)庫文件就會(huì)變小,因此二進(jìn)制的副本也會(huì)較?。?/P>
sqlite3 test.db vacuum
cp test.db test.Backup
8.其它命令
sqlite>select last_insert_rowid(); //獲得最后插入的自動(dòng)增長量值
sqlite>.tabes //返回所有的表和視圖
sqlite>.indices Member //查看一個(gè)表的索引
sqlite>.schema Member //得到一個(gè)表或視圖的定義(DDL)語句,如果沒有提供表名,則返回所有數(shù)據(jù)庫對(duì)象(table,view,index,triger)的定義語句
相關(guān)文章
SQLSERVER分頁查詢關(guān)于使用Top方式和row_number()解析函數(shù)的不同
這篇文章主要介紹了SQLSERVER分頁查詢關(guān)于使用Top方式和row_number()解析函數(shù)的不同的相關(guān)資料,需要的朋友可以參考下2016-02-02sqlserver 2000數(shù)據(jù)庫同步 同步兩個(gè)SQLServer數(shù)據(jù)庫的內(nèi)容
程序代碼可以有版本管理CVS進(jìn)行同步管理,可是數(shù)據(jù)庫同步就非常麻煩,只能自己改了一個(gè)后再去改另一個(gè),如果忘記了更改另一個(gè)經(jīng)常造成兩個(gè)數(shù)據(jù)庫的結(jié)構(gòu)或內(nèi)容上不一致.2010-05-05SQL Server 置疑、可疑、正在恢復(fù)等情況分析
有些時(shí)候當(dāng)你重啟了數(shù)據(jù)庫服務(wù),會(huì)發(fā)現(xiàn)有些數(shù)據(jù)庫變成了正在恢復(fù)、置疑、可疑等情況,這個(gè)時(shí)候DBA就會(huì)很緊張了,下面是一些在實(shí)踐中得到證明的方法2011-12-12SQL查詢某列指定長度的字符串多余的用省略號(hào)來表示
有時(shí)候?yàn)榱嗣烙^,只需要顯示前面幾個(gè)字符串,剩下的可以用省略號(hào)來表示,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下2013-11-11SQL Server利用bcp命令把SQL語句結(jié)果生成文本文件
在SQL Server里可以調(diào)用DOS下的命令行工具bcp來實(shí)現(xiàn)把表里的數(shù)據(jù)或者SQL語句結(jié)果生成文本文件,詳細(xì)看下操作方法,感興趣的你可不要錯(cuò)過了哈2013-02-02SQL Server誤區(qū)30日談 第16天 數(shù)據(jù)的損壞和修復(fù)
我已經(jīng)聽過很多關(guān)于數(shù)據(jù)修復(fù)可以做什么、不可以做什么、什么會(huì)導(dǎo)致數(shù)據(jù)損壞以及損壞是否可以自行消失。其實(shí)我已經(jīng)針對(duì)這類問題寫過多篇博文,因此本篇博文可以作為“流言終結(jié)者”來做一個(gè)總結(jié),希望你能有收獲2013-01-01sql注入數(shù)據(jù)庫修復(fù)的兩種實(shí)例方法
這篇文章介紹了sql注入數(shù)據(jù)庫修復(fù)的兩種實(shí)例方法,有需要的朋友可以參考一下2013-09-09如何恢復(fù)數(shù)據(jù)庫備份到一個(gè)已存在的正在使用的數(shù)據(jù)庫上
如何恢復(fù)數(shù)據(jù)庫備份到一個(gè)已存在的正在使用的數(shù)據(jù)庫上...2007-01-01