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'是相同的,因為他們在作為整數比較時是相等的(參見上一問題)。所以,這樣值就不唯一了。 |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信