SQLite3是一款嵌入式的輕型數(shù)據(jù)庫軟件,該軟件所占內存較低,需要搭配嵌入式產品使用,能夠適用于Windows/Linux/Unix等主流的操作系統(tǒng),需要搭配嵌入式產品使用,相比較于同種類軟件來講,其處理速度要快的多。


軟件亮點
你能夠用這些函數(shù)操作數(shù)據(jù)庫,通過使用這些接口,傳遞一些標準sql語句(以char*類型)給sqlite函數(shù),SQLite3就會為你操作數(shù)據(jù)庫。
SQLite3跟MS的access一樣是文件型數(shù)據(jù)庫,就是說,一個數(shù)據(jù)庫就是一個文件,此數(shù)據(jù)庫里可以建立很多的表,可以建立索引、觸發(fā)器等等,但是,它實際上得到的就是一個文件。備份這個文件就備份了整個數(shù)據(jù)庫。
SQLite3不需要任何數(shù)據(jù)庫引擎,這意味著如果你需要sqlite來保存一些用戶數(shù)據(jù),甚至都不需要安裝數(shù)據(jù)庫。
SQLite3特色
【算術函數(shù)】
abs(X)返回給定數(shù)字表達式的絕對值。
max(X,Y[,...])返回表達式的最大值。
min(X,Y[,...])返回表達式的最小值。
random(*)返回隨機數(shù)。
round(X[,Y])返回數(shù)字表達式并四舍五入為指定的長度或精度。
【字符處理函數(shù)】
length(X)返回給定字符串表達式的字符個數(shù)。
lower(X)將大寫字符數(shù)據(jù)轉換為小寫字符數(shù)據(jù)后返回字符表達式。
upper(X)返回將小寫字符數(shù)據(jù)轉換為大寫的字符表達式。
substr(X,Y,Z)返回表達式的一部分。
randstr()
quote(A)
like(A,B)
確定給定的字符串是否與指定的模式匹配。
glob(A,B)
【條件判斷函數(shù)】
coalesce(X,Y[,...])
ifnull(X,Y)
nullif(X,Y)
【集合函數(shù)】
avg(X)返回組中值的平均值。
count(X)返回組中項目的數(shù)量。
max(X)返回組中值的最大值。
min(X)返回組中值的最小值。
sum(X)返回表達式中所有值的和。
【其他函數(shù)】
typeof(X)返回數(shù)據(jù)的類型。
last_insert_rowid()返回最后插入的數(shù)據(jù)的ID。
sqlite_version(*)返回SQLite的版本。
change_count()返回受上一語句影響的行數(shù)。
last_statement_change_count()
SQLite3命令操作
創(chuàng)建表:createtable表名(元素名類型,…);
刪除表:droptable表名;
插入數(shù)據(jù):insertinto表名values(,,,);
創(chuàng)建索引:create[unique]index索引名on表名(col….);
刪除索引:dropindex索引名(索引是不可更改的,想更改必須刪除重新建)
刪除數(shù)據(jù):deletefrom表名;
更新數(shù)據(jù):update表名set字段=’修改后的內容’where條件;
增加一個列:Altertable表名addcolumn字段數(shù)據(jù)類型;
選擇查詢:select字段(以”,”隔開)from表名where條件;
日期和時間:Selectdatetime('now')
日期:selectdate('now');
時間:selecttime('now');
總數(shù):selectcount(*)fromtable1;
求和:selectsum(field1)fromtable1;
平均:selectavg(field1)fromtable1;
最大:selectmax(field1)fromtable1;
最?。簊electmin(field1)fromtable1;
排序:select字段fromtable1orderby字段(desc或asc);(降序或升序)
分組:select字段fromtable1groupby字段,字段…;
限制輸出:select字段fromtable1limitxoffsety;
SQLite3支持數(shù)據(jù)類型
NULL值為NULL
INTEGER值為帶符號的整型,根據(jù)類別用1,2,3,4,6,8字節(jié)存儲
REAL值為浮點型,8字節(jié)存儲
TEXT值為text字符串,使用數(shù)據(jù)庫編碼(UTF-8,UTF-16BEorUTF-16-LE)存儲
BLOB值為二進制數(shù)據(jù),具體看實際輸入
但實際上,sqlite3也接受如下的數(shù)據(jù)類型:
smallint 16位元的整數(shù)
interger 32位元的整數(shù)
decimal(p,s)p精確值和s大小的十進位整數(shù),精確值p是指全部有幾個數(shù)(digits)大小值,s是指小數(shù)點後有幾位數(shù)。如果沒有特別指定,則系統(tǒng)會設為p=5;s=0。
float 32位元的實數(shù)。
double 64位元的實數(shù)。
char(n)n長度的字串,n不能超過254。
varchar(n)長度不固定且其最大長度為n的字串,n不能超過4000。
graphic(n)和char(n)一樣,不過其單位是兩個字元double-bytes,n不能超過127。這個形態(tài)是為了支援兩個字元長度的字體,例如中文字。
vargraphic(n)可變長度且其最大長度為n的雙字元字串,n不能超過2000。
date包含了年份、月份、日期。
time包含了小時、分鐘、秒。
timestamp包含了年、月、日、時、分、秒、千分之一秒。
如果將聲明表的一列設置為INTEGERPRIMARYKEY,則具有:
1.每當你在該列上插入一NULL值時,NULL自動被轉換為一個比該列中最大值大1的一個整數(shù);
2.如果表是空的,將會是1;