亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQLite > 正文

解析SQLite中的常見問題與總結詳解

2024-09-07 00:09:52
字體:
來源:轉載
供稿:網友
1、 創建數據
如果不往數據庫里面添加任何的表,這個數據庫等于沒有建立,不會在硬盤上產生任何文件,如果數據庫已經存在,則會打開這個數據庫。

2、 如何通過sqlite3.dll與sqlite3.def生成sqlite3.lib文件
LIB /DEF:sqlite3.def /machine:IX86

3、 sqlite3_open打開一個數據庫時,如果數據庫不存在就會新生成一個數據庫文件。如果接著執行其他查詢語句就會失敗,比如sqlite3_prepare,編程中出現明明指定了數據庫而且里面也有數據,為什么查詢失敗了,主要是數據庫名路徑不對引起的。一般的做法是先檢查數據庫文件是否存在,如果存在就使用sqlite3_open打開數據庫;否則創建一個新的數據庫。

4、 如何建立自動增長字段
聲明為INTEGER PRIMARY KEY的列將會自動增長。

5、SQLite3支持何種數據類型?
NULL
INTEGER
REAL
TEXT
BLOB
但實際上,sqlite3也接受如下的數據類型:
smallint 16位元的整數。
interger 32位元的整數。
decimal(p,s) p精確值和s大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數點後有幾位數。如果沒有特別指定,則系統會設為p=5; s=0。
float 32位元的實數。
double 64位元的實數。
char(n) n長度的字串,n不能超過254。
varchar(n)長度不固定且其最大長度為n的字串,n不能超過4000。
graphic(n)和char(n)一樣,不過其單位是兩個字元double-bytes,n不能超過127。這個形態是為了支援兩個字元長度的字體,例如中文字。
vargraphic(n)可變長度且其最大長度為n的雙字元字串,n不能超過2000。
date包含了年份、月份、日期。
time包含了小時、分鐘、秒。
timestamp包含了年、月、日、時、分、秒、千分之一秒。

6、SQLite允許向一個integer型字段中插入字符串
這是一個特性,而不是一個bug。SQLite不強制數據類型約束。任何數據都可以插入任何列。你可以向一個整型列中插入任意長度的字符串,向布爾型列中插入浮點數,或者向字符型列中插入日期型值。在CREATE TABLE中所指定的數據類型不會限制在該列中插入任何數據。任何列均可接受任意長度的字符串(只有一種情況除外:標志為INTEGER PRIMARY KEY的列只能存儲64位整數,當向這種列中插數據除整數以外的數據時,將會產生錯誤。

但SQLite確實使用聲明的列類型來指示你所期望的格式。所以,例如你向一個整型列中插入字符串時,SQLite會試圖將該字符串轉換成一個整數。如果可以轉換,它將插入該整數;否則,將插入字符串。這種特性有時被稱為類型或列親和性(type or column affinity).

7、為什么SQLite不允許在同一個表不同的兩行上使用0和0.0作主鍵?
主鍵必須是數值類型,將主鍵改為TEXT型將不起作用。
每一行必須有一個唯一的主鍵。對于一個數值型列,SQLite認為'0'和'0.0'是相同的,因為他們在作為整數比較時是相等的(參見上一問題)。所以,這樣值就不唯一了。

8、多個應用程序或一個應用程序的多個實例可以同時訪問同一個數據庫文件嗎?

多個進程可同時打開同一個數據庫。多個進程可以同時進行SELECT操作,但在任一時刻,只能有一個進程對數據庫進行更改。

SQLite使用讀、寫鎖控制對數據庫的訪問。(在Win95/98/ME等不支持讀、寫鎖的系統下,使用一個概率性的模擬來代替。)但使用時要注意:如果數據庫文件存放于一個NFS文件系統上,這種鎖機制可能不能正常工作。這是因為fcntl()文件鎖在很多NFS上沒有正確的實現。在可能有多個進程同時訪問數據庫的時候,應該避免將數據庫文件放到NFS上。在Windows上,Microsoft的文檔中說:如果使用FAT文件系統而沒有運行share.exe守護進程,那么鎖可能是不能正常使用的。那些在Windows上有很多經驗的人告訴我:對于網絡文件,文件鎖的實現有好多Bug,是靠不住的。如果他們說的是對的,那么在兩臺或多臺Windows機器間共享數據庫可能會引起不期望的問題。

我們意識到,沒有其它嵌入式的SQL數據庫引擎能象SQLite這樣處理如此多的并發。SQLite允許多個進程同時打開一個數據庫,同時讀一個數據庫。當有任何進程想要寫時,它必須在更新過程中鎖住數據庫文件。但那通常只是幾毫秒的時間。其它進程只需等待寫進程干完活結束。典型地,其它嵌入式的SQL數據庫引擎同時只允許一個進程連接到數據庫。

但是,Client/Server數據庫引擎(如PostgreSQL, MySQL,或Oracle)通常支持更高級別的并發,并且允許多個進程同時寫同一個數據庫。這種機制在Client/Server結構的數據庫上是可能的,因為總是有一個單一的服務器進程很好地控制、協調對數據庫的訪問。如果你的應用程序需要很多的并發,那么你應該考慮使用一個Client/Server結構的數據庫。但經驗表明,很多應用程序需要的并發,往往比其設計者所想象的少得多。

當SQLite試圖訪問一個被其它進程鎖住的文件時,缺省的行為是返回SQLITE_BUSY。可以在C代碼中使用sqlite3_busy_handler()sqlite3_busy_timeout() API函數調整這一行為。

9、SQLite線程安全嗎?
線程是魔鬼(Threads are evil)。避免使用它們。
SQLite是線程安全的。由于很多用戶會忽略我們在上一段中給出的建議,我們做出了這種讓步。但是,為了達到線程安全,SQLite在編譯時必須將SQLITE_THREADSAFE預處理宏置為1。在Windows和Linux上,已編譯的好的二進制發行版中都是這樣設置的。如果不確定你所使用的庫是否是線程安全的,可以調用sqlite3_threadsafe()接口找出。

10、在SQLite數據庫中如何列出所有的表和索引?
如果你運行sqlite3命令行來訪問你的數據庫,可以鍵入“.tables”來獲得所有表的列表?;蛘撸憧梢暂斎搿?schema”來看整個數據庫模式,包括所有的表的索引。輸入這些命令,后面跟一個LIKE模式匹配可以限制顯示的表。

11、SQLite數據庫有已知的大小限制嗎?
在Windows和Unix下,版本2.7.4的SQLite可以達到2的41次方字節(2T字節)。老版本的為2的31次方字節(2G字節)。
SQLite版本2.8限制一個記錄的容量為1M。SQLite版本3.0則對單個記錄容量沒有限制。
表名、索引表名、視圖名、觸發器名和字段名沒有長度限制。但SQL函數的名稱(由sqlite3_create_function() API函數創建)不得超過255個字符。

12、在SQLite中,VARCHAR字段最長是多少?
SQLite不強制VARCHAR的長度。你可以在SQLITE中聲明一個VARCHAR(10),SQLite還是可以很高興地允許你放入500個字符。并且這500個字符是原封不動的,它永遠不會被截斷。

13、在SQLite中,如何在一個表上添加或刪除一列?
SQLite有有限地ALTER TABLE支持。你可以使用它來在表的末尾增加一列,可更改表的名稱。如果需要對表結構做更復雜的改變,則必須重新建表。重建時可以先將已存在的數據放到一個臨時表中,刪除原表,創建新表,然后將數據從臨時表中復制回來。

如,假設有一個t1表,其中有"a", "b", "c"三列,如果要刪除列c,以下過程描述如何做:

BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;
14、在SQLite中支持分頁嗎?

SQLite分頁是世界上最簡單的。如果我要去11-20的Account表的數據Select * From Account Limit 9 Offset 10;
以上語句表示從Account表獲取數據,跳過10行,取9行。這個特性足夠讓很多的web中型網站使用這個了。也可以這樣寫 select * from account limit10,9和上面的的效果一樣。這種寫法MySQL也支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久精品国产91久久| 98精品国产自产在线观看| 亚洲一区二区三区在线视频| 精品人伦一区二区三区蜜桃网站| 欧美视频一二三| 夜夜嗨av一区二区三区免费区| 欧洲成人在线视频| 国产成人精品电影久久久| 欧美激情一区二区三区高清视频| 亚洲精品国产综合区久久久久久久| 国产精品视频网站| 国产欧美日韩中文字幕在线| 亚洲午夜av久久乱码| 国产69精品99久久久久久宅男| 亚洲国产一区二区三区在线观看| 亚洲福利视频专区| 欧美亚洲国产精品| 91日本视频在线| 日韩精品视频在线观看免费| 日韩av网址在线观看| 国产欧美在线看| 国产91在线高潮白浆在线观看| 久久精品国产免费观看| 日韩一级黄色av| 国产精品都在这里| 国内精品久久久| 国产精品欧美日韩| 国产精品久久久久久av下载红粉| 国产亚洲欧美另类中文| 亚洲第一福利视频| 午夜精品久久久久久久久久久久久| 91久久精品久久国产性色也91| 懂色av一区二区三区| 日韩乱码在线视频| 久久网福利资源网站| 91wwwcom在线观看| 国产98色在线| 国产自产女人91一区在线观看| 日韩免费av一区二区| 久久影视三级福利片| 日韩中文在线视频| 国内精品久久久久影院优| 亚洲电影免费在线观看| 日韩久久免费电影| 日韩精品在线视频美女| 奇门遁甲1982国语版免费观看高清| 成人网中文字幕| 亚洲欧洲一区二区三区在线观看| 久久精品视频在线观看| 欧美激情乱人伦一区| 久久天天躁狠狠躁夜夜躁| 亚洲第一视频网| 国外成人免费在线播放| 国产精品嫩草影院久久久| 国产精选久久久久久| 久久国产精品偷| 久久久国产在线视频| 日日狠狠久久偷偷四色综合免费| 俺也去精品视频在线观看| 亚洲精品一区二区三区婷婷月| 久久久精品在线| 欧美在线免费视频| 欧美午夜宅男影院在线观看| 亚洲视频欧洲视频| 色久欧美在线视频观看| 成人黄色av播放免费| 黑人巨大精品欧美一区二区一视频| 国产精品久久二区| 国产精品久久久久久久9999| 日韩经典一区二区三区| 亚洲xxx自由成熟| 日韩中文在线中文网三级| 欧美福利视频在线| 欧美高清一级大片| 亚洲性av在线| 91精品久久久久久久久久久久久| 91精品免费视频| 国产成人精品网站| 在线观看国产成人av片| 久久久久久久网站| 亚洲在线免费观看| 日韩最新免费不卡| 亚洲一区二区三| 亚洲国产天堂久久国产91| 中文字幕亚洲一区二区三区| 一区二区三区久久精品| 亚洲精品一二区| 国产成人精品综合久久久| 91在线视频精品| 久久综合久久88| 欧洲日韩成人av| 国产精品96久久久久久又黄又硬| 亚洲欧美资源在线| 韩日欧美一区二区| 日韩av在线免费播放| 欧美性色视频在线| 92看片淫黄大片欧美看国产片| 亚洲精品一区二三区不卡| 欧美精品免费在线观看| 国产精品青青在线观看爽香蕉| 一夜七次郎国产精品亚洲| 欧美激情小视频| 成人黄色免费网站在线观看| 亚洲精品第一国产综合精品| 亚洲国产日韩欧美综合久久| 精品小视频在线| 亚洲爱爱爱爱爱| 国产精品扒开腿做爽爽爽的视频| 久久露脸国产精品| 精品国产乱码久久久久久婷婷| 亚洲国产天堂网精品网站| 欧美在线观看日本一区| 亚洲国产精品成人精品| 亚洲欧美日韩国产中文专区| 欧美多人乱p欧美4p久久| 91九色精品视频| 精品国产一区二区三区久久狼黑人| 国产精品视频在线播放| 亚洲sss综合天堂久久| 亚洲欧美激情精品一区二区| 国产精品中文字幕在线观看| 日韩亚洲国产中文字幕| 亚洲国模精品一区| 77777亚洲午夜久久多人| 亚洲淫片在线视频| 欧美黑人xxxⅹ高潮交| 性色av一区二区三区在线观看| 国产精品女人久久久久久| 不卡av电影院| 韩国19禁主播vip福利视频| 欧美极品少妇与黑人| 欧美黄色成人网| 精品中文视频在线| 日韩一区二区福利| www.亚洲男人天堂| 91精品国产亚洲| 91影院在线免费观看视频| 亚洲精品电影网站| 91网在线免费观看| 91国内精品久久| 成人黄色激情网| 91国产精品91| 中文亚洲视频在线| 亚洲欧美日韩精品| 精品国内产的精品视频在线观看| 中文字幕久精品免费视频| 国产97在线观看| 亚洲天堂av在线播放| 91精品久久久久久久久久另类| 国产精品久久久久久搜索| 91大神福利视频在线| 欧美xxxx14xxxxx性爽| 欧美中文字幕在线观看| 国产丝袜一区二区三区免费视频| 国产一区二区三区日韩欧美| 亚洲国产成人精品电影| 欧美视频在线观看免费网址| 久久久在线观看| 国产美女被下药99| 日韩av中文字幕在线播放| 亚洲性xxxx| 欧美日韩日本国产| 亚洲欧美制服另类日韩| 久久天天躁狠狠躁夜夜爽蜜月|