
Sqlite3(小型關(guān)系型數(shù)據(jù)庫(kù))官方版
詳情介紹
開發(fā)軟件的用戶對(duì)于數(shù)據(jù)庫(kù)都不會(huì)陌生,這款sqlite3官方版就是一款小巧切好用的關(guān)系型數(shù)據(jù)庫(kù),也是一款能夠代替MySql的數(shù)據(jù)庫(kù),目前已經(jīng)綁定到了PHP5.0上,就像我們的ASP和access結(jié)合一樣。如果你是一位網(wǎng)頁(yè)P(yáng)HP開發(fā)人員,那么這個(gè)sqlite3就是你必須掌握使用的東西,并且這款軟件的設(shè)計(jì)目標(biāo)是嵌入式的設(shè)計(jì),所以目前已經(jīng)有很多嵌入式產(chǎn)品在使用這個(gè)數(shù)據(jù)庫(kù),而且由于軟件的資源占用非常低,所以諸多嵌入設(shè)備都開始使用這個(gè)數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)數(shù)據(jù),讓我們的嵌入式設(shè)備有更多的資源運(yùn)行。
sqlite3是目前世界最棒的小型數(shù)據(jù)庫(kù),大名鼎鼎的瀏覽器Firefox就是使用這個(gè)數(shù)據(jù)庫(kù),所以大家可不要小看這個(gè)數(shù)據(jù)庫(kù)的潛力,而且還能夠和眾多的程序語(yǔ)言相結(jié)合,比如Tcl、PHP、JAVA等等。

sqlite 跟MS的access一樣是文件型數(shù)據(jù)庫(kù),就是說(shuō),一個(gè)數(shù)據(jù)庫(kù)就是一個(gè)文件,此數(shù)據(jù)庫(kù)里可以建立很多的表,可以建立索引、觸發(fā)器等等,但是,它實(shí)際上得到的就是一個(gè)文件。備份這個(gè)文件就備份了整個(gè)數(shù)據(jù)庫(kù)。
sqlite 不需要任何數(shù)據(jù)庫(kù)引擎,這意味著如果你需要 sqlite 來(lái)保存一些用戶數(shù)據(jù),甚至都不需要安裝數(shù)據(jù)庫(kù)(如果你做個(gè)小軟件還要求人家必須裝了sqlserver 才能運(yùn)行,那也太黑心了)。
刪除表: drop table 表名;
插入數(shù)據(jù): insert into 表名 values(, , ,) ;
創(chuàng)建索引: create [unique] index 索引名on 表名(col….);
刪除索引: drop index 索引名(索引是不可更改的,想更改必須刪除重新建)
刪除數(shù)據(jù): delete from 表名;
更新數(shù)據(jù): update 表名 set 字段=’修改后的內(nèi)容’ where 條件;
增加一個(gè)列: Alter table 表名 add column 字段 數(shù)據(jù)類型;
選擇查詢: select 字段(以”,”隔開) from 表名 where 條件;
日期和時(shí)間: Select datetime('now')
日期: select date('now');
時(shí)間: select time('now');
總數(shù):select count(*) from table1;
求和:select sum(field1) from table1;
平均:select avg(field1) from table1;
最大:select max(field1) from table1;
最?。簊elect min(field1) from table1;
排序:select 字段 from table1 order by 字段(desc或asc) ;(降序或升序)
分組:select 字段 from table1 group by 字段,字段… ;
限制輸出:select 字段 from table1 limit x offset y;
= select 字段 from table1 limit y , x;
(備注:跳過y行,取x行數(shù)據(jù))
(操作仍待完善)…
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-16BE or UTF-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ù)。如果沒有特別指定,則系統(tǒng)會(huì)設(shè)為 p=5; s=0 。
float 32位元的實(shí)數(shù)。
double 64位元的實(shí)數(shù)。
char(n) n 長(zhǎng)度的字串,n不能超過 254。
varchar(n) 長(zhǎng)度不固定且其最大長(zhǎng)度為 n 的字串,n不能超過 4000。
graphic(n) 和 char(n) 一樣,不過其單位是兩個(gè)字元 double-bytes, n不能超過127。這個(gè)形態(tài)是為了支援兩個(gè)字元長(zhǎng)度的字體,例如中文字。
vargraphic(n) 可變長(zhǎng)度且其最大長(zhǎng)度為 n 的雙字元字串,n不能超過 2000。
date 包含了 年份、月份、日期。
time 包含了 小時(shí)、分鐘、秒。
timestamp 包含了 年、月、日、時(shí)、分、秒、千分之一秒。
如果將聲明表的一列設(shè)置為 INTEGER PRIMARY KEY,則具有:
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)將大寫字符數(shù)據(jù)轉(zhuǎn)換為小寫字符數(shù)據(jù)后返回字符表達(dá)式。
upper(X)返回將小寫字符數(shù)據(jù)轉(zhuǎn)換為大寫的字符表達(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()
二.有關(guān)事務(wù)的操作
(成批操作的時(shí)候,啟動(dòng)事務(wù),比不啟動(dòng)事務(wù)快n倍)
開始事物處理
BEGIN TRANSACTION;
…………..
進(jìn)行對(duì)數(shù)據(jù)庫(kù)操作
…………..
事物提交
COMMIT;
具體事例如下:
假設(shè)有一個(gè) t1 表,其中有 "a", "b", "c" 三列, 如果要?jiǎng)h除列 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;
R-Tree擴(kuò)展提高了25%的性能。
在可用時(shí)使用編譯器內(nèi)置函數(shù)(例如:__builtin_bswap32()或_byteswap_ulong())進(jìn)行字節(jié)交換。
使用sqlite3_blob鍵/值訪問對(duì)象而不是SQL從R-Tree節(jié)點(diǎn)中拉出內(nèi)容
其他各種增強(qiáng)功能,如循環(huán)展開。
添加SQLITE_DEFAULT_LOOKASIDE編譯時(shí)選項(xiàng)。
將默認(rèn)后備大小從512,125增加到1200,100,因?yàn)檫@樣可以提供更好的性能,而每個(gè)連接只添加56KB的額外內(nèi)存。對(duì)內(nèi)存敏感的應(yīng)用程序可以在編譯時(shí),啟動(dòng)時(shí)或運(yùn)行時(shí)恢復(fù)舊的默認(rèn)值。
使用編譯器內(nèi)置__builtin_sub_overflow(),__builtin_add_overflow()和__builtin_mul_overflow()(如果可用)。(使用SQLITE_DISABLE_INTRINSIC編譯時(shí)選項(xiàng)可以省略所有編譯器內(nèi)建函數(shù)。)
添加了SQLITE_ENABLE_NULL_TRIM編譯時(shí)選項(xiàng),這可能會(huì)導(dǎo)致某些應(yīng)用程序的數(shù)據(jù)庫(kù)文件大大減小,從而有可能與舊版本的SQLite不兼容。
將SQLITE_DEFAULT_PCACHE_INITSZ從100更改為20,以提高性能。
添加了SQLITE_UINT64_TYPE編譯時(shí)選項(xiàng)作為SQLITE_INT64_TYPE的模擬。
在單遍而不是兩遍中執(zhí)行一些UPDATE操作。
增強(qiáng)會(huì)話擴(kuò)展以支持WITHOUTROWID表。
修復(fù)了具有數(shù)十萬(wàn)行的多行VALUES子句創(chuàng)建視圖時(shí)的性能問題和潛在的堆棧溢出。
添加了sha1.c擴(kuò)展。
在命令行shell中,增強(qiáng)“.mode”命令,以便它恢復(fù)模式“l(fā)ine”,“l(fā)ist”,“column”和“tcl”的默認(rèn)列和行分隔符。
增強(qiáng)SQLITE_DIRECT_OVERFLOW_READ選項(xiàng),以便它在WAL模式下工作,只要正在讀取的頁(yè)面不在WAL文件中。
增強(qiáng)LEMON解析器生成器,以便它可以將解析器對(duì)象存儲(chǔ)為堆棧變量,而不是從堆分配空間,并利用合并中的增強(qiáng)。
其他性能改進(jìn)。使用大約6.5%的CPU周期。
sqlite3是目前世界最棒的小型數(shù)據(jù)庫(kù),大名鼎鼎的瀏覽器Firefox就是使用這個(gè)數(shù)據(jù)庫(kù),所以大家可不要小看這個(gè)數(shù)據(jù)庫(kù)的潛力,而且還能夠和眾多的程序語(yǔ)言相結(jié)合,比如Tcl、PHP、JAVA等等。

sqlite3官方版操作入門
sqlite提供的是一些C函數(shù)接口,你可以用這些函數(shù)操作數(shù)據(jù)庫(kù)。通過使用這些接口,傳遞一些標(biāo)準(zhǔn) sql 語(yǔ)句(以 char * 類型)給 sqlite 函數(shù),sqlite 就會(huì)為你操作數(shù)據(jù)庫(kù)。sqlite 跟MS的access一樣是文件型數(shù)據(jù)庫(kù),就是說(shuō),一個(gè)數(shù)據(jù)庫(kù)就是一個(gè)文件,此數(shù)據(jù)庫(kù)里可以建立很多的表,可以建立索引、觸發(fā)器等等,但是,它實(shí)際上得到的就是一個(gè)文件。備份這個(gè)文件就備份了整個(gè)數(shù)據(jù)庫(kù)。
sqlite 不需要任何數(shù)據(jù)庫(kù)引擎,這意味著如果你需要 sqlite 來(lái)保存一些用戶數(shù)據(jù),甚至都不需要安裝數(shù)據(jù)庫(kù)(如果你做個(gè)小軟件還要求人家必須裝了sqlserver 才能運(yùn)行,那也太黑心了)。
常用SQL語(yǔ)句
創(chuàng)建表: create table 表名(元素名 類型,…);刪除表: drop table 表名;
插入數(shù)據(jù): insert into 表名 values(, , ,) ;
創(chuàng)建索引: create [unique] index 索引名on 表名(col….);
刪除索引: drop index 索引名(索引是不可更改的,想更改必須刪除重新建)
刪除數(shù)據(jù): delete from 表名;
更新數(shù)據(jù): update 表名 set 字段=’修改后的內(nèi)容’ where 條件;
增加一個(gè)列: Alter table 表名 add column 字段 數(shù)據(jù)類型;
選擇查詢: select 字段(以”,”隔開) from 表名 where 條件;
日期和時(shí)間: Select datetime('now')
日期: select date('now');
時(shí)間: select time('now');
總數(shù):select count(*) from table1;
求和:select sum(field1) from table1;
平均:select avg(field1) from table1;
最大:select max(field1) from table1;
最?。簊elect min(field1) from table1;
排序:select 字段 from table1 order by 字段(desc或asc) ;(降序或升序)
分組:select 字段 from table1 group by 字段,字段… ;
限制輸出:select 字段 from table1 limit x offset y;
= select 字段 from table1 limit y , x;
(備注:跳過y行,取x行數(shù)據(jù))
(操作仍待完善)…
支持的數(shù)據(jù)類型介紹
NULL 值為NULLINTEGER 值為帶符號(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-16BE or UTF-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ù)。如果沒有特別指定,則系統(tǒng)會(huì)設(shè)為 p=5; s=0 。
float 32位元的實(shí)數(shù)。
double 64位元的實(shí)數(shù)。
char(n) n 長(zhǎng)度的字串,n不能超過 254。
varchar(n) 長(zhǎng)度不固定且其最大長(zhǎng)度為 n 的字串,n不能超過 4000。
graphic(n) 和 char(n) 一樣,不過其單位是兩個(gè)字元 double-bytes, n不能超過127。這個(gè)形態(tài)是為了支援兩個(gè)字元長(zhǎng)度的字體,例如中文字。
vargraphic(n) 可變長(zhǎng)度且其最大長(zhǎng)度為 n 的雙字元字串,n不能超過 2000。
date 包含了 年份、月份、日期。
time 包含了 小時(shí)、分鐘、秒。
timestamp 包含了 年、月、日、時(shí)、分、秒、千分之一秒。
如果將聲明表的一列設(shè)置為 INTEGER PRIMARY KEY,則具有:
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)將大寫字符數(shù)據(jù)轉(zhuǎn)換為小寫字符數(shù)據(jù)后返回字符表達(dá)式。
upper(X)返回將小寫字符數(shù)據(jù)轉(zhuǎn)換為大寫的字符表達(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()
二.有關(guān)事務(wù)的操作
(成批操作的時(shí)候,啟動(dòng)事務(wù),比不啟動(dòng)事務(wù)快n倍)
開始事物處理
BEGIN TRANSACTION;
…………..
進(jìn)行對(duì)數(shù)據(jù)庫(kù)操作
…………..
事物提交
COMMIT;
具體事例如下:
假設(shè)有一個(gè) t1 表,其中有 "a", "b", "c" 三列, 如果要?jiǎng)h除列 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;
更新日志
v3.17.0版本R-Tree擴(kuò)展提高了25%的性能。
在可用時(shí)使用編譯器內(nèi)置函數(shù)(例如:__builtin_bswap32()或_byteswap_ulong())進(jìn)行字節(jié)交換。
使用sqlite3_blob鍵/值訪問對(duì)象而不是SQL從R-Tree節(jié)點(diǎn)中拉出內(nèi)容
其他各種增強(qiáng)功能,如循環(huán)展開。
添加SQLITE_DEFAULT_LOOKASIDE編譯時(shí)選項(xiàng)。
將默認(rèn)后備大小從512,125增加到1200,100,因?yàn)檫@樣可以提供更好的性能,而每個(gè)連接只添加56KB的額外內(nèi)存。對(duì)內(nèi)存敏感的應(yīng)用程序可以在編譯時(shí),啟動(dòng)時(shí)或運(yùn)行時(shí)恢復(fù)舊的默認(rèn)值。
使用編譯器內(nèi)置__builtin_sub_overflow(),__builtin_add_overflow()和__builtin_mul_overflow()(如果可用)。(使用SQLITE_DISABLE_INTRINSIC編譯時(shí)選項(xiàng)可以省略所有編譯器內(nèi)建函數(shù)。)
添加了SQLITE_ENABLE_NULL_TRIM編譯時(shí)選項(xiàng),這可能會(huì)導(dǎo)致某些應(yīng)用程序的數(shù)據(jù)庫(kù)文件大大減小,從而有可能與舊版本的SQLite不兼容。
將SQLITE_DEFAULT_PCACHE_INITSZ從100更改為20,以提高性能。
添加了SQLITE_UINT64_TYPE編譯時(shí)選項(xiàng)作為SQLITE_INT64_TYPE的模擬。
在單遍而不是兩遍中執(zhí)行一些UPDATE操作。
增強(qiáng)會(huì)話擴(kuò)展以支持WITHOUTROWID表。
修復(fù)了具有數(shù)十萬(wàn)行的多行VALUES子句創(chuàng)建視圖時(shí)的性能問題和潛在的堆棧溢出。
添加了sha1.c擴(kuò)展。
在命令行shell中,增強(qiáng)“.mode”命令,以便它恢復(fù)模式“l(fā)ine”,“l(fā)ist”,“column”和“tcl”的默認(rèn)列和行分隔符。
增強(qiáng)SQLITE_DIRECT_OVERFLOW_READ選項(xiàng),以便它在WAL模式下工作,只要正在讀取的頁(yè)面不在WAL文件中。
增強(qiáng)LEMON解析器生成器,以便它可以將解析器對(duì)象存儲(chǔ)為堆棧變量,而不是從堆分配空間,并利用合并中的增強(qiáng)。
其他性能改進(jìn)。使用大約6.5%的CPU周期。
下載地址
- 電腦版
Sqlite3(小型關(guān)系型數(shù)據(jù)庫(kù))官方版 v3.17.0綠色版
- 本地下載通道:
- 浙江電信下載
- 北京聯(lián)通下載
- 江蘇電信下載
- 廣東電信下載
同類軟件
Database.NET(多數(shù)據(jù)庫(kù)管理工具) v36.4.9133.3官方版
Database Tour(數(shù)據(jù)庫(kù)管理工具) Pro版 v11.2.9.443
DbWrench(可視化數(shù)據(jù)庫(kù)設(shè)計(jì)工具) v5.1.1官方版
Microsoft Access 2019中文版 完整版
SysTools SQL Log Analyzer(sql數(shù)據(jù)庫(kù)日志分析工具) v8.1
Beetlsql(數(shù)據(jù)庫(kù)訪問工具) v3.27.2
Full Convert Enterprise官方版(數(shù)據(jù)庫(kù)轉(zhuǎn)換工具) v19.01.1523
dbvisualizer pro 9官方版 v9.1.5(附使用教程)
網(wǎng)友評(píng)論
共0條評(píng)論(您的評(píng)論需要經(jīng)過審核才能顯示)