SQLite3數(shù)據(jù)庫常用命令_第1頁
SQLite3數(shù)據(jù)庫常用命令_第2頁
SQLite3數(shù)據(jù)庫常用命令_第3頁
SQLite3數(shù)據(jù)庫常用命令_第4頁
SQLite3數(shù)據(jù)庫常用命令_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

一、 查看版本信息:#sqlite3-version二、 sqlite3常用命令1、 當前目錄下建立或打開test.db數(shù)據(jù)庫文件,并進入sqlite命令終端,以sqlite>前綴標識:2、 輸出幫助信息:sqlite>.help3、 查看數(shù)據(jù)庫文件信息命令(注意命令前帶字符'.'):sqlite>.database4、 退出sqlite終端命令:sqlite>.quit或sqlite>.exit列出當前顯示格式的配置:sqlite>.show6、顯示數(shù)據(jù)庫結構:.schema顯示表的結構:.schema表名其實就是一些SQL語句,他們描述了數(shù)據(jù)庫的結構,如圖sqltte>,schemaCREATETABLECarsfldtnt&gerPREflARYKE匚Nametext,tostintege>;CREATETABLED「d肝氈陰S樣茨tF期幣聃弋磔初朗鶻癱ri"StegerCiECK(OrderPrtce>eXCustonertext);7、導出某個表的數(shù)據(jù):.dump表名收EATEVALUES(1,'Audi',5M42)lVALUES(2,1Hertels*,57127);!H密:喝卿制SfikhoneS9yALUE5(S,■Bentley1,3S0eea);VALUES{石* 吆電巾',21009);VALUES(7*'Humner1,41400);VALUESta,'Volkswagenh,21600);sqlttes-.dunpC^rsPRAGMAfore\gn_keys=QFF;PEGINTRANSACTION;TABLECarsfldintegerPRIMARYKEY,Nanetext?Costinteger&設置導出目標:INSERTINTO"Cars*INSERTINTO"Cars"INSERTINTO"Cars'INSERTINTOhCariLINSERTINTOfears"INSERTINTO"Cars"INSERTINTOINSERTINTO,,Cars,iCOMMIT;.output文件名或者.outputstdout先運行.outputcars.sql,然后再運行.dump命令試試看?如果要回復成導出到終端(標準輸出),則運行.outputstdout10、設置分隔符:.separator分隔符我們可以首先運行SELECT*FROMCars;,可以看到默認的分隔符是丨運行.separator:以后,再SELECT*FROMCars;,可以看到分隔符已經(jīng)變成:了11、顯示標題欄:.headerson

14、配置文件.sqliterc如果我們每次進入命令行都要重新設置顯示格式,很麻煩,其實.show命令列出的所有設置項都可以保存到一個.sqliterc文件中,這樣每次進入命令行就自動設置好了。.sqlterc文件在Linux下保存在用戶的Home目錄下,在Windows下可以保存到任何目錄下,但是需要設置環(huán)境變量讓數(shù)據(jù)庫引擎能找到它,感興趣的可以看看幫助。三、數(shù)據(jù)庫和表的相關命令1、創(chuàng)建一個新的數(shù)據(jù)庫:sqlite3文件名創(chuàng)建一個test.db數(shù)據(jù)庫文件,打開控制臺窗口,命令如下:sqlite>sqlite3test.db2、 打開一個已經(jīng)存在的數(shù)據(jù)庫:sqlite3已經(jīng)存在的文件名創(chuàng)建一個新數(shù)據(jù)庫和打開一個已經(jīng)存在的數(shù)據(jù)庫命令是一模一樣的,如果文件在當前目錄下不存在,則新建;如果存在,則打開。3、 建立數(shù)據(jù)表createtabletable_namefieldltypel,field2typel,...);table_name是要創(chuàng)建數(shù)據(jù)表名稱,fieldx是數(shù)據(jù)表內(nèi)字段名稱,typex則是字段類型。如:該語句創(chuàng)建一個記錄學生信息的數(shù)據(jù)表。sql的指令格式:所有sql指令都是以分號(;)結尾,兩個減號(--)則表示注釋。4、添加數(shù)據(jù)記錄insertintotable_name(列fieldl,field2,...)values(值vail,val2,...);valx為需要存入字段的值。例,往老師信息表添加數(shù)據(jù):INTOINTOINTOINTOT?dchers例,往老師信息表添加數(shù)據(jù):INTOINTOINTOINTOT?dchers:sq^ttTe^SalitesINSERTIN5ERTINSERTIM5ERTSELECTB4b]25BRAChsrlfi33朮Jh?n|4J|USAT-eecharsVAlUEStl/Alice1fZ5「匚HN1>;leechersVALUESCZt'Bob-'BfiA');T?iehers(idPName,Ag亡^country)values(3.charIsR(33('usah);_ .t<adwrft(NMw>Age|VMuibCjho?i4>43)?*FRohIt誹M由枱b1Qg.cs(.n?門巳lspnono89很簡單,創(chuàng)建了一個Teachers表并向其中添加了四條數(shù)據(jù),設定了一些約束,其中有自動增加的主鍵、默認值等等。5、修改數(shù)據(jù)UPDATE表SET歹U='新值’【W(wǎng)HERE條件語句】UPDATE語句用來更新表中的某個列,如果不設定條件,則所有記錄的這一列都被更新;如果設定了條件,則符合條件的記錄的這一列被更新,WHERE子句被用來設定條件,如下例:

.readtest.sql即將所有的數(shù)據(jù)導入到test.d數(shù)據(jù)庫中。BEGINTRANSACTION;CREATETABLECars(ldintegerPRIMARYKEY,Nametext,Costinteger);INSERTINTOCarsVALUES(1,'Audi',52642);INSERTINTOCarsVALUES(2,'Mercedes',57127);INSERTINTOCarsVALUES(3,'Skoda',9000);INSERTINTOCarsVALUES(4,'Volvo',29000);INSERTINTOCarsVALUES(5,'Bentley',350000);INSERTINTOCarsVALUES(6,'Citroen',21000);INSERTINTOCarsVALUES(7,'Hummer',41400);INSERTINTOCarsVALUES(8,'Volkswagen',21600);COMMIT;BEGINTRANSACTION;CREATETABLEOrders(IdintegerPRIMARYKEY,OrderPriceintegerCHECK(OrderPrice>0),Customertext);INSERTINTOOrders(OrderPrice,Customer)VALUES(1200,"Williamson");INSERTINTOOrders(OrderPrice,Customer)VALUES(200,"Robertson");INSERTINTOOrders(OrderPrice,Customer)VALUES(40,"Robertson");INSERTINTOOrders(OrderPrice,Customer)VALUES(1640,"Smith");INSERTINTOOrders(OrderPrice,Customer)VALUES(100,"Robertson");INSERTINTOOrders(OrderPrice,Customer)VALUES(50,"Williamson");INSERTINTOOrders(OrderPrice,Customer)VALUES(150,"Smith");INSERTINTOOrders(OrderPrice,Customer)VALUES(250,"Smith");INSERTINTOOrders(OrderPrice,Customer)VALUES(840,"Brown");INSERTINTOOrders(OrderPrice,Customer)VALUES(440,"Black");INSERTINTOOrders(OrderPrice,Customer)VALUES(20,"Brown");COMMIT;&查詢數(shù)據(jù)記錄

a查詢輸出所有數(shù)據(jù)記錄select*fromtable_name;b限制輸出數(shù)據(jù)記錄數(shù)量若數(shù)據(jù)庫中的數(shù)據(jù)太多,全部返回可不行,可以限制返回的數(shù)量,還可以設定返回的起始位置select*fromtable_namelimitval;sqltte>select*fromCarsLIMIT4OFFSET2csdn,net/splione893|Skoda|9000csdn,net/splione895|Bentleyj b16|Citroen|21000sqlite?c升序輸出數(shù)據(jù)記錄select*fromtable_nameorderbyfieldasc;d降序輸出數(shù)據(jù)記錄select*fromtable_nameorderbyfielddesc;sqliselect*fromCarsorderbycostdesc;5;Ben七回1350000^jriercedes|5712711Audij5264Z7|Hunner|414034|voivo| :///sphone898IVolkswagen|216006|Citroen|21O90sjSkoda|9900書cjlite~A-e條件查詢select*fromtable_namewhereexpression;IN(集合)select*fromtable_namewherefieldin('val1','val2','val3');

sqlltoselect土froniCarswhereNameIN(Audf,?HtrnnerF);1|Audi|&26427|Huhrttr|41400旳litiselectJTtf伏叭的用圉際補略吧挪血擾的1|Audi|52642sqltte^BETWEEN值1AND值2select*fromtable_namewherefieldbetweenvailandval2;sqLite>select*fronCarswherecostbetween41400andSSODQO >;11Audi1524422|Mer?d?|S7127http://blog,csdn?net/sphone895|Bentley|350000?。跦UEE皂「|4140Bf、查詢記錄數(shù)目selectcount(*)fromtable_name;g、 區(qū)分列數(shù)據(jù)selectdistinctfieldfromtable_name;有一些字段的值可能會重復出現(xiàn),distinet去掉重復項,將列中各字段值單個列出。h、 別名SELECT列AS別名,列AS別名FROM可以給返回數(shù)據(jù)集中的某些列起一個比較直觀的名字,比如把Cost改為"PriceOfCar"sqlite>selectName,Costes'PriceofCor1FromCars;Audi|52642Mercedes|57127Skoda|9009350000p:/350000p://blog?csdn?net/sphone89Rmntley1350090P://blog?csdn?net/sphone89Citroen|21009Hummer|41400Volks-w^gen121600I、條件查詢SELECT列FROM表【W(wǎng)HERE條件語句】一般的條件語句都是大于、小于、等于之類的,這里有幾個特別的條件語句LIKELIKE用通配符匹配字符串下劃線_匹配一個字符串百分號%匹配多個字符串LIKE匹配字符串時不區(qū)分大小寫sqlites-sele匚t*fromCarswhereNamelike'';&qlisele匚t*fromCarswhereNamelike'1l|Audt|52642sql sele匚t*fromCarswhereNamelike'^en';6|Citroen|210308|Volkswagen:|.2i60o/blog?/sphone89&qli七亡》sele匚t*fromCarswhereNamelike'9fiEN';6|Citroen|21030B|Volkswagen|21699salitesGLOBJ區(qū)分DISTINCT歹U有一些字段的值可能會出現(xiàn)重復,比如訂單表中,一個客戶可能會有好幾份訂單,因此客戶的名字會重復出現(xiàn)。到底有哪些客戶下了訂單呢?下面的語句將客戶名字區(qū)分出來。

qvLte>seLeci*rrornOrders;rownLackLqvLte>seLeci*rrornOrders;rownLackL|丄口|LLLLtiri^^ll!|200|Rober七son11401Robertson111640ISntth>|109|Robertson>|50|Williamsonq150ISntthl|?50|Snith>|840|Brown[印144B|eta匚山ttp://blog?csd門.net/sphone89LljZfllBrownilltte>selectDISTINCTCustomerFromOrders;JLLLLdFISOIlobertsonmithk分組GROUPBY歹U分組和前面的區(qū)分有一點類似。區(qū)分僅僅是為了去掉重復項,而分組是為了對各類不同項進行統(tǒng)計計算。比如上面的例子,我們區(qū)分出5個客戶,這5個客戶一共下了下了不止一個訂單。11個訂單,說明很多客戶都F面的語句統(tǒng)計每個客戶在訂單上總共花費了多少錢。sqlite>select*fronOrders;1|12&Wtlltamscn2I20&|Robertson3|40|R&bsrtson4|1640|5nith5|10&|Robertson右|5日|Wlllianson7|15&8|^SB9(840Smith7|15&8|^SB9(840SmithSmithBrown1^1440|Blackill2&|Brown/s^lione89古qlttze>selectsurtfOrderPrice)TotalsCueFromOrdersOrcupby匚ustomer;440|&lack|Brown3401RobertsonZ54e|snith1253]HilltansQnsqlito「這里Sum是SQLite內(nèi)置的統(tǒng)計函數(shù),在這個例子中用來求每個顧客的訂單價格的和。統(tǒng)計結果也可以設定返回條件,但是不能用WHERE子句,而是用HAVING子句,如下例,返回訂單總額大于1000的顧客。sqlltoselectsunfOrderPrtee)A5Total,CustonerfromOrdersGroipbyCustomerhavingsum(OrderPriceljsqwuitdnsonhttp://blog,esdn?net/sphone89sqttte>|9、建立索引當說數(shù)據(jù)表存在大量記錄,索引有助于加快查找數(shù)據(jù)表速度。createindexindex_nameontable_namefield);例,針對學生表stu_no字段,建立一個索引:createindexstudent_indexonstudent_table(stu_no);建立完成后,sqlite3在對該字段查詢時,會自動使用該索引。10、刪除數(shù)據(jù)表或索引droptabletable_name;dropindexindex_name;四、 sqlite3存儲數(shù)據(jù)的類型NULL:標識一個NULL值INTERGER:整數(shù)類型REAL:浮點數(shù)TEXT:字符串BL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論