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