SQLite3基本說(shuō)明
SQLite3提供的是一些C函數(shù)接口,你可以用這些函數(shù)操作數(shù)據(jù)庫(kù)。通過(guò)使用這些接口,傳遞一些標(biāo)準(zhǔn)sql語(yǔ)句(以char *類型)給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命令(常用Sql語(yǔ)句)操作
創(chuàng)建表: createtable表名(元素名類型,…);
刪除表: 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ù)類型;
選擇查詢: 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;
最小:selectmin(field1)fromtable1;
排序:select字段fromtable1orderby字段(desc或asc);(降序或升序)
分組:select字段fromtable1groupby字段,字段…;
限制輸出:select字段fromtable1limitxoffsety;
SQLite3支持的數(shù)據(jù)類型
NULL 值為NULL
INTEGER值為帶符號(hào)的整型,根據(jù)類別用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ù)類型:
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;
算術(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ù)的類型。
last_insert_rowid()返回最后插入的數(shù)據(jù)的ID。
sqlite_version(*)返回SQLite的版本。
change_count()返回受上一語(yǔ)句影響的行數(shù)。
last_statement_change_count()
SQLite3更新日志:
1.修復(fù)BUG,新版體驗(yàn)更佳
2.更改了部分頁(yè)面
華軍小編推薦:
SQLite3,良心出品,保證性能,小編親測(cè),相信小編的童鞋可以試驗(yàn)一下!我華軍軟件園還有更多好用的軟件萬(wàn)彩辦公大師OfficeBox、福昕PDF套件高級(jí)編輯器、GWD Text Editor、Lizard Safeguard Secure PDF Viewer、XML Explorer(XML Editor)!
您的評(píng)論需要經(jīng)過(guò)審核才能顯示
有用
有用
有用