版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫SQLServer/SQlite教程授課教師:第11章SQLite數(shù)據(jù)庫操作SQLite是世界上部署最廣泛的SQL數(shù)據(jù)庫引擎。它是由D.RichardHipp在2000年5月發(fā)布,實(shí)現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的SQL數(shù)據(jù)庫引擎。SQLite是一款輕量級的開源的嵌入式數(shù)據(jù)庫,已經(jīng)在很多嵌入式產(chǎn)品中使用,能夠支持Windows/Linux/UNIX等主流操作系統(tǒng),同時(shí)能夠和很多程序語言相結(jié)合,如Python、Java、C#、PHP等。它具有ODBC接口,比起MySQL、PostgreSQL這兩款開源的世界著名的數(shù)據(jù)庫管理系統(tǒng),它的處理速度比它們都快,已經(jīng)廣泛應(yīng)用于消費(fèi)電子、醫(yī)療、工業(yè)控制、軍事等各種領(lǐng)域。第11章
SQLite數(shù)據(jù)庫操作11.1SQLite概述目錄11.2SQLite基本操作11.1SQLite概述11.1SQLite概述SQLite是一款輕量級的開源的嵌入式數(shù)據(jù)庫,由D.RichardHipp在2000年5月發(fā)布。如果要開發(fā)小型的應(yīng)用,或者想做嵌入式開發(fā),沒有合適的數(shù)據(jù)庫系統(tǒng),那么就可以考慮使用SQLite。由于使用方便,性能出眾,因此SQLite廣泛應(yīng)用于消費(fèi)電子、醫(yī)療、工業(yè)控制、軍事等領(lǐng)域。與其他數(shù)據(jù)庫管理系統(tǒng)不同,SQLite不是一個(gè)C/S結(jié)構(gòu)的數(shù)據(jù)庫引擎,而是被集成在用戶程序中的。SQLite是由C和C++實(shí)現(xiàn)的,可以從C/C++程序中使用sqlite3.h庫,還有一個(gè)Python模塊叫做PySQLite。PHP從HP5.0開始包含了SQLite,但是自5.1版之后開始成為一個(gè)延伸函式庫。Rails2.0.3將缺省的數(shù)的數(shù)據(jù)庫系統(tǒng)就是SQLite。11.1SQLite概述SQLite的主要特點(diǎn)如下:(1)體積小:在嵌入式設(shè)備中,最低只需要幾百千字節(jié)的內(nèi)存就可以運(yùn)行SQLite。(2)性能高:SQLite對數(shù)據(jù)庫的訪問性能很高,其運(yùn)行速度比MySQL等開源數(shù)據(jù)庫要快很多。(3)可移植性強(qiáng):SQLite能支持各種32位和64位體系的硬件Windows、Linux、BSD、MacOS、Solaries等軟件平臺中運(yùn)行。1.SQLite的特點(diǎn)11.1SQLite概述SQLite的主要特點(diǎn)如下:1.SQLite的特點(diǎn)(4)SQL支持:SQLite支持ANSISQL92中的大多數(shù)標(biāo)準(zhǔn),提供了對子查詢、視圖、觸發(fā)器等機(jī)制的支持。(5)接口:SQLite為C、Java、PHP、Python等多種語言提供了API接口,所有的應(yīng)用程都必須通過接口訪問SQLite數(shù)據(jù)庫。11.1SQLite概述SQLite由SQL編譯器、內(nèi)核、后端以及附件等部分組成。SQLite通過利用虛擬機(jī)和虛擬數(shù)據(jù)庫引擎(VDBE),使調(diào)試、修改和擴(kuò)展SQLite的內(nèi)核變得更加方便。SQLite組件的詳細(xì)介紹如下:(1)數(shù)據(jù)庫引擎。數(shù)據(jù)庫引擎是SQLite的核心,負(fù)責(zé)運(yùn)行中間代碼,指揮數(shù)據(jù)庫的具體操作。2.SQLite的組件11.1SQLite概述(2)編譯器。編譯器由詞法分析、語法分析和中間代碼生成3個(gè)模塊組成。其中,詞法分析模塊和語法分析模塊負(fù)責(zé)檢查SQL語句的語法,然后把生成的語法樹傳遞給中間代碼生成模塊。中間代碼生成模塊負(fù)責(zé)生成SQLite引擎可以識別的中間代碼。2.SQLite的組件(3)后臺。后臺由B樹、頁緩存和系統(tǒng)調(diào)用3個(gè)模塊組成。其中,B樹負(fù)責(zé)維護(hù)索引,頁緩存負(fù)責(zé)頁面數(shù)據(jù)的傳送,系統(tǒng)調(diào)用負(fù)責(zé)和操作系統(tǒng)交互,最終實(shí)現(xiàn)數(shù)據(jù)庫的訪問。11.2SQLite基本操作11.2.1SQLite3的下載與數(shù)據(jù)類型SQLite3是目前最新的SQLite版本,可以從/download.html網(wǎng)站上下載SQLite3的源代碼。下載完成后,解壓到某一盤符下,雙擊“sqlite3.exe”,啟動SQLite,如圖11-1所示。1.下載并啟動圖11-1啟動SQLite11.2.1SQLite3的下載與數(shù)據(jù)類型大多數(shù)的數(shù)據(jù)庫引擎(除了SQLite的每個(gè)SQL數(shù)據(jù)庫引擎)都使用靜態(tài)的和剛性的類型。使用靜態(tài)類型,數(shù)據(jù)的類型就由它的容器決定。SQLite使用一個(gè)更一般的動態(tài)類型系統(tǒng)。在SQLite中,值的數(shù)據(jù)類型與值本身相關(guān),而不是與它的容器相關(guān),是一種弱數(shù)據(jù)類型。2.SQLite3支持的基本數(shù)據(jù)類型11.2.1SQLite3的下載與數(shù)據(jù)類型(1).NULL——blob(數(shù)據(jù)塊),值是Null。SQLite沒有單獨(dú)的布爾存儲類型,它使用INTEGER作為存儲類型,0為“false”,1為“true”。SQLite沒有另外為存儲日期和時(shí)間設(shè)定一個(gè)存儲類集,內(nèi)置的SQLite日期和時(shí)間函數(shù)能夠?qū)⑷掌诤蜁r(shí)間以TEXT、REAL或INTEGER形式存放。(2).INTEGER——int,值是有符號整型。(3).REAL——float、double,值是浮點(diǎn)型。(4).TEXT——char、varchar,值是文本字符串。(5).NUMERIC——其余的情形。2.SQLite3支持的基本數(shù)據(jù)類型11.2.1SQLite3的下載與數(shù)據(jù)類型SQLite3數(shù)據(jù)庫中的任何列,除了整型主鍵列,可以用于存儲任何一個(gè)存儲列的值。SQL語句中的所有值,不管它們是嵌入在SQL文本中或者是作為參數(shù)綁定到一個(gè)預(yù)編譯的SQL語句,它們的存儲類型都是未定的。2.SQLite3支持的基本數(shù)據(jù)類型11.2.2SQLite3的使用在Windows平臺下,打開DOS窗口,切換到含有剛解壓的sqlite3.exe的目錄下,如d:\sqlite>sqlite3-version后回車,將出現(xiàn)對應(yīng)的版本號信息。1.版本假設(shè)需要使用一個(gè)test.db數(shù)據(jù)庫,只需在命令行下輸入“sqlite3test.db”即可。如果數(shù)據(jù)庫test.db已經(jīng)存在,則命令“sqlite3test.db”會在當(dāng)前目錄下打開test.db;如果數(shù)據(jù)庫test.db不存在,則命令在當(dāng)前目錄下新建數(shù)據(jù)庫test.db。為了提高效率,SQLite3并不會馬上創(chuàng)建test.db,而是等到第一個(gè)表創(chuàng)建完成后才會在物理上創(chuàng)建數(shù)據(jù)庫。11.2.2SQLite3的使用2.數(shù)據(jù)庫的創(chuàng)建與查詢1)命令創(chuàng)建使用“.database”命令可以查詢所使用的數(shù)據(jù)庫,如圖11-2所示。11.2.2SQLite3的使用2.數(shù)據(jù)庫的創(chuàng)建與查詢2)數(shù)據(jù)庫的查詢圖11-2版本和數(shù)據(jù)庫打開SQLiteStudio,單擊“添加數(shù)據(jù)庫”按鈕。單擊綠色的“+”表示新建一個(gè)數(shù)據(jù)庫,單擊文件夾符號表示打開一個(gè)現(xiàn)有的數(shù)據(jù)庫。在“文件”處輸入完整的路徑和文件名,然后單擊“OK”按鈕,如圖11-3所示。11.2.2SQLite3的使用2.數(shù)據(jù)庫的創(chuàng)建與查詢3)菜單創(chuàng)建圖11-3啟動SQLiteStudio創(chuàng)建數(shù)據(jù)庫由于SQLite3是弱類型的數(shù)據(jù)庫,因此在create語句中并不要求給出列的類型。另外注意,所有的SQL指令都是以分號(;)結(jié)尾的。如果遇到兩個(gè)減號(--)則代表注解,SQLite3會略過去。表的創(chuàng)建過程如下:(1)在數(shù)據(jù)庫ddwq1中新建表tb1,數(shù)據(jù)庫ddwq2中新建表tb2。(2)設(shè)置表的結(jié)構(gòu)。在“Tablename:”處輸入表名“tb1”“tb2”。單擊“Structure”選項(xiàng),再單擊“添加字段”按鈕,依次添加字段及其類型、長度等。然后,單擊“√”按鈕,如圖11-4、圖11-5所示。11.2.2SQLite3的使用3.表的創(chuàng)建11.2.2SQLite3的使用3.表的創(chuàng)建圖11-4啟動SQLitetudio創(chuàng)建數(shù)據(jù)庫圖11-5表的結(jié)構(gòu)在tb2中,單擊“Data”選項(xiàng),再單擊“+”按鈕,依次添加3條記錄。1)菜單命令在SQLiteStudio中添加數(shù)據(jù),如圖11-6所示。單擊“+”添加一行,數(shù)據(jù)輸入結(jié)束,單擊“√”保存。2)插入命令插入如下命令:sqlite>insertintotb1values('12','kkk');sqlite>insertintotb1values('13','mjjj');單擊“
”(刷新)按鈕,如圖11-7所示。11.2.2SQLite3的使用4.添加數(shù)據(jù)11.2.2SQLite3的使用4.添加數(shù)據(jù)圖11-6添加表的數(shù)據(jù)11.2.2SQLite3的使用4.添加數(shù)據(jù)圖11-7“刷新”按鈕1)中文界面選擇“tools”選項(xiàng),選擇并單擊“Openconfigurationdialog”,選擇“Look&feel”,在“Language”處選擇“簡體中文”,選擇“Apply”,最后單擊“OK”按鈕,將界面外觀設(shè)置為中文。2)UTF-8編碼在CMD窗口中輸入“chcp65001”后回車確定。注意65001是Unicode(UTF-8)65001的編碼設(shè)置。11.2.2SQLite3的使用5.修改設(shè)置(1)%:表示任意0個(gè)或多個(gè)字符,可匹配任意類型和長度的字符,有些情況下若是中文,可使用兩個(gè)百分號(%%)表示。(2)_:表示任意單個(gè)字符,可匹配單個(gè)任意字符,它常用來限制表達(dá)式的字符長度語句。(3)[]:表示括號內(nèi)所列字符中的一個(gè)(類似正則表達(dá)式),可指定一個(gè)字符、字符串或范圍,要求所匹配對象為它們中的任一個(gè)。(4)[^]:表示不在括號所列之內(nèi)的單個(gè)字符,其取值和[]相同,但它要求所匹配對象為指定字符以外的任一個(gè)字符。11.2.2SQLite3的使用6.查詢1)相關(guān)模糊查詢的知識(1)腳本命令方式。例11-1
把name為“張三”“張貓三”“三腳貓”“唐三藏”等有“三”的記錄全部找出來。代碼如下:select*from[user]wherenamelike'%三%';11.2.2SQLite3的使用6.查詢2)查詢操作(1)腳本命令方式。例11-2
只找出“唐三藏”這樣name為三個(gè)字且中間一個(gè)字是“三”的記錄。代碼如下:select*from[user]wherenamelike'_三_';11.2.2SQLite3的使用6.查詢2)查詢操作例11-3
找出“張三”“李三”“王三”(而不是“張李王三”)。代碼如下:select*from[user]wherenamelike'[張李王]三';(2)DOS命令方式。例11-4
在cmd下,查詢表tb1的數(shù)據(jù)。代碼如下:d:\sqlite>.tabled:\sqlite>select*fromtb1;運(yùn)行結(jié)果如圖11-8所示。11.2.2SQLite3的使用6.查詢2)查詢操作圖11-8查詢表中的數(shù)據(jù)例11-5
以列的形式顯示各個(gè)字段,列的顯示寬度設(shè)置為10。代碼如下:sqlite>.headeronsqlite>.modecolumnsqlite>.width10運(yùn)行結(jié)果如圖11-9所示。11.2.2SQLite3的使用7.格式化顯示select的輸出信息圖11-9格式化輸出習(xí)題1.SQLite是一款輕量級的
的嵌入式數(shù)據(jù)庫,由D.RichardHipp在2000年發(fā)布。2.在d:\sqlite>下輸入
,然后回車,將出現(xiàn)對應(yīng)的版本號信息。3.假設(shè)需要使用一個(gè)test.db數(shù)據(jù)庫,只需在命令行下輸入
即可,如果存在test.db則打開,否則將創(chuàng)建test.db數(shù)據(jù)庫。(填空題剩余習(xí)題見教材223頁)一、填空題1.由于使用方便,性能出眾,所以SQLite廣泛應(yīng)用于消費(fèi)電子、醫(yī)療、工業(yè)控制、軍事等各種領(lǐng)域。2.在嵌入式設(shè)備中,最低只需要幾百千字節(jié)的內(nèi)存就可以運(yùn)行。習(xí)題二、判斷題(
)(
)習(xí)題1.SQLite3支持的基本數(shù)據(jù)類型有()。A.text
B.real
C.date
D.numeric2.可把name為“張三”“張貓三”“三腳貓”“唐三藏”等有“三”的記錄全部找出來的語句是()。A.select*from[user]wherenamelike'[張李王]三';B.select*from[user]wherenamelike'_三_';C.select*from[user]wherenamelike'%三%';D.sele
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度醫(yī)院醫(yī)療廢物處理設(shè)施建設(shè)合同4篇
- 2025年度個(gè)人創(chuàng)業(yè)貸款合同示范文本8篇
- 二零二五年度美容院美容護(hù)膚品生產(chǎn)股份合作合同4篇
- 二零二五版木質(zhì)家具定制設(shè)計(jì)與生產(chǎn)加工合同3篇
- 二零二五年度電子商務(wù)平臺標(biāo)志設(shè)計(jì)及用戶體驗(yàn)合同3篇
- 二零二五年度托盤租賃與供應(yīng)鏈金融結(jié)合合同范本3篇
- 二零二五年度昌平區(qū)食堂員工激勵(lì)與績效考核合同3篇
- 2025年度汽車租賃與品牌合作推廣合同范本3篇
- 二零二五年度城市綠化工程承包合同14篇
- 2025年度線上線下聯(lián)動大型促銷活動合作合同3篇
- 項(xiàng)目前期選址分析報(bào)告
- 急性肺栓塞搶救流程
- 《統(tǒng)計(jì)學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語言-時(shí)間序列分析和預(yù)測
- 《形象價(jià)值百萬》課件
- 紅色文化教育國內(nèi)外研究現(xiàn)狀范文十
- 中醫(yī)基礎(chǔ)理論-肝
- 小學(xué)外來人員出入校門登記表
- 《土地利用規(guī)劃學(xué)》完整課件
- GB/T 25283-2023礦產(chǎn)資源綜合勘查評價(jià)規(guī)范
- 《汽車衡全自動智能稱重系統(tǒng)》設(shè)計(jì)方案
- 義務(wù)教育歷史課程標(biāo)準(zhǔn)(2022年版)
評論
0/150
提交評論