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

sqlite 跟MS的access一樣是文件型數(shù)據(jù)庫,就是說,一個數(shù)據(jù)庫就是一個文件,此數(shù)據(jù)庫里可以建立很多的表,可以建立索引、觸發(fā)器等等,但是,它實際上得到的就是一個文件。備份這個文件就備份了整個數(shù)據(jù)庫。
sqlite 不需要任何數(shù)據(jù)庫引擎,這意味著如果你需要 sqlite 來保存一些用戶數(shù)據(jù),甚至都不需要安裝數(shù)據(jù)庫(如果你做個小軟件還要求人家必須裝了sqlserver 才能運行,那也太黑心了)。
刪除表: 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 條件;
增加一個列: Alter table 表名 add column 字段 數(shù)據(jù)類型;
選擇查詢: select 字段(以”,”隔開) from 表名 where 條件;
日期和時間: Select datetime('now')
日期: select date('now');
時間: 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 值為帶符號的整型,根據(jù)類別用1,2,3,4,6,8字節(jié)存儲
REAL 值為浮點型,8字節(jié)存儲
TEXT 值為text字符串,使用數(shù)據(jù)庫編碼(UTF-8, UTF-16BE or UTF-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)會設(shè)為 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 包含了 年、月、日、時、分、秒、千分之一秒。
如果將聲明表的一列設(shè)置為 INTEGER PRIMARY KEY,則具有:
1.每當(dāng)你在該列上插入一NULL值時, NULL自動被轉(zhuǎn)換為一個比該列中最大值大1的一個整數(shù);
2.如果表是空的, 將會是1;
算術(shù)函數(shù)
abs(X)返回給定數(shù)字表達式的絕對值。
max(X,Y[,...])返回表達式的最大值。
min(X,Y[,...])返回表達式的最小值。
random(*)返回隨機數(shù)。
round(X[,Y])返回數(shù)字表達式并四舍五入為指定的長度或精度。
字符處理函數(shù)
length(X)返回給定字符串表達式的字符個數(shù)。
lower(X)將大寫字符數(shù)據(jù)轉(zhuǎn)換為小寫字符數(shù)據(jù)后返回字符表達式。
upper(X)返回將小寫字符數(shù)據(jù)轉(zhuǎn)換為大寫的字符表達式。
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()
二.有關(guān)事務(wù)的操作
(成批操作的時候,啟動事務(wù),比不啟動事務(wù)快n倍)
開始事物處理
BEGIN TRANSACTION;
…………..
進行對數(shù)據(jù)庫操作
…………..
事物提交
COMMIT;
具體事例如下:
假設(shè)有一個 t1 表,其中有 "a", "b", "c" 三列, 如果要刪除列 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擴展提高了25%的性能。
在可用時使用編譯器內(nèi)置函數(shù)(例如:__builtin_bswap32()或_byteswap_ulong())進行字節(jié)交換。
使用sqlite3_blob鍵/值訪問對象而不是SQL從R-Tree節(jié)點中拉出內(nèi)容
其他各種增強功能,如循環(huán)展開。
添加SQLITE_DEFAULT_LOOKASIDE編譯時選項。
將默認后備大小從512,125增加到1200,100,因為這樣可以提供更好的性能,而每個連接只添加56KB的額外內(nèi)存。對內(nèi)存敏感的應(yīng)用程序可以在編譯時,啟動時或運行時恢復(fù)舊的默認值。
使用編譯器內(nèi)置__builtin_sub_overflow(),__builtin_add_overflow()和__builtin_mul_overflow()(如果可用)。(使用SQLITE_DISABLE_INTRINSIC編譯時選項可以省略所有編譯器內(nèi)建函數(shù)。)
添加了SQLITE_ENABLE_NULL_TRIM編譯時選項,這可能會導(dǎo)致某些應(yīng)用程序的數(shù)據(jù)庫文件大大減小,從而有可能與舊版本的SQLite不兼容。
將SQLITE_DEFAULT_PCACHE_INITSZ從100更改為20,以提高性能。
添加了SQLITE_UINT64_TYPE編譯時選項作為SQLITE_INT64_TYPE的模擬。
在單遍而不是兩遍中執(zhí)行一些UPDATE操作。
增強會話擴展以支持WITHOUTROWID表。
修復(fù)了具有數(shù)十萬行的多行VALUES子句創(chuàng)建視圖時的性能問題和潛在的堆棧溢出。
添加了sha1.c擴展。
在命令行shell中,增強“.mode”命令,以便它恢復(fù)模式“l(fā)ine”,“l(fā)ist”,“column”和“tcl”的默認列和行分隔符。
增強SQLITE_DIRECT_OVERFLOW_READ選項,以便它在WAL模式下工作,只要正在讀取的頁面不在WAL文件中。
增強LEMON解析器生成器,以便它可以將解析器對象存儲為堆棧變量,而不是從堆分配空間,并利用合并中的增強。
其他性能改進。使用大約6.5%的CPU周期。
sqlite3是目前世界最棒的小型數(shù)據(jù)庫,大名鼎鼎的瀏覽器Firefox就是使用這個數(shù)據(jù)庫,所以大家可不要小看這個數(shù)據(jù)庫的潛力,而且還能夠和眾多的程序語言相結(jié)合,比如Tcl、PHP、JAVA等等。

sqlite3官方版操作入門
sqlite提供的是一些C函數(shù)接口,你可以用這些函數(shù)操作數(shù)據(jù)庫。通過使用這些接口,傳遞一些標準 sql 語句(以 char * 類型)給 sqlite 函數(shù),sqlite 就會為你操作數(shù)據(jù)庫。sqlite 跟MS的access一樣是文件型數(shù)據(jù)庫,就是說,一個數(shù)據(jù)庫就是一個文件,此數(shù)據(jù)庫里可以建立很多的表,可以建立索引、觸發(fā)器等等,但是,它實際上得到的就是一個文件。備份這個文件就備份了整個數(shù)據(jù)庫。
sqlite 不需要任何數(shù)據(jù)庫引擎,這意味著如果你需要 sqlite 來保存一些用戶數(shù)據(jù),甚至都不需要安裝數(shù)據(jù)庫(如果你做個小軟件還要求人家必須裝了sqlserver 才能運行,那也太黑心了)。
常用SQL語句
創(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 條件;
增加一個列: Alter table 表名 add column 字段 數(shù)據(jù)類型;
選擇查詢: select 字段(以”,”隔開) from 表名 where 條件;
日期和時間: Select datetime('now')
日期: select date('now');
時間: 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 值為帶符號的整型,根據(jù)類別用1,2,3,4,6,8字節(jié)存儲
REAL 值為浮點型,8字節(jié)存儲
TEXT 值為text字符串,使用數(shù)據(jù)庫編碼(UTF-8, UTF-16BE or UTF-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)會設(shè)為 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 包含了 年、月、日、時、分、秒、千分之一秒。
如果將聲明表的一列設(shè)置為 INTEGER PRIMARY KEY,則具有:
1.每當(dāng)你在該列上插入一NULL值時, NULL自動被轉(zhuǎn)換為一個比該列中最大值大1的一個整數(shù);
2.如果表是空的, 將會是1;
算術(shù)函數(shù)
abs(X)返回給定數(shù)字表達式的絕對值。
max(X,Y[,...])返回表達式的最大值。
min(X,Y[,...])返回表達式的最小值。
random(*)返回隨機數(shù)。
round(X[,Y])返回數(shù)字表達式并四舍五入為指定的長度或精度。
字符處理函數(shù)
length(X)返回給定字符串表達式的字符個數(shù)。
lower(X)將大寫字符數(shù)據(jù)轉(zhuǎn)換為小寫字符數(shù)據(jù)后返回字符表達式。
upper(X)返回將小寫字符數(shù)據(jù)轉(zhuǎn)換為大寫的字符表達式。
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()
二.有關(guān)事務(wù)的操作
(成批操作的時候,啟動事務(wù),比不啟動事務(wù)快n倍)
開始事物處理
BEGIN TRANSACTION;
…………..
進行對數(shù)據(jù)庫操作
…………..
事物提交
COMMIT;
具體事例如下:
假設(shè)有一個 t1 表,其中有 "a", "b", "c" 三列, 如果要刪除列 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擴展提高了25%的性能。
在可用時使用編譯器內(nèi)置函數(shù)(例如:__builtin_bswap32()或_byteswap_ulong())進行字節(jié)交換。
使用sqlite3_blob鍵/值訪問對象而不是SQL從R-Tree節(jié)點中拉出內(nèi)容
其他各種增強功能,如循環(huán)展開。
添加SQLITE_DEFAULT_LOOKASIDE編譯時選項。
將默認后備大小從512,125增加到1200,100,因為這樣可以提供更好的性能,而每個連接只添加56KB的額外內(nèi)存。對內(nèi)存敏感的應(yīng)用程序可以在編譯時,啟動時或運行時恢復(fù)舊的默認值。
使用編譯器內(nèi)置__builtin_sub_overflow(),__builtin_add_overflow()和__builtin_mul_overflow()(如果可用)。(使用SQLITE_DISABLE_INTRINSIC編譯時選項可以省略所有編譯器內(nèi)建函數(shù)。)
添加了SQLITE_ENABLE_NULL_TRIM編譯時選項,這可能會導(dǎo)致某些應(yīng)用程序的數(shù)據(jù)庫文件大大減小,從而有可能與舊版本的SQLite不兼容。
將SQLITE_DEFAULT_PCACHE_INITSZ從100更改為20,以提高性能。
添加了SQLITE_UINT64_TYPE編譯時選項作為SQLITE_INT64_TYPE的模擬。
在單遍而不是兩遍中執(zhí)行一些UPDATE操作。
增強會話擴展以支持WITHOUTROWID表。
修復(fù)了具有數(shù)十萬行的多行VALUES子句創(chuàng)建視圖時的性能問題和潛在的堆棧溢出。
添加了sha1.c擴展。
在命令行shell中,增強“.mode”命令,以便它恢復(fù)模式“l(fā)ine”,“l(fā)ist”,“column”和“tcl”的默認列和行分隔符。
增強SQLITE_DIRECT_OVERFLOW_READ選項,以便它在WAL模式下工作,只要正在讀取的頁面不在WAL文件中。
增強LEMON解析器生成器,以便它可以將解析器對象存儲為堆棧變量,而不是從堆分配空間,并利用合并中的增強。
其他性能改進。使用大約6.5%的CPU周期。
下載地址
- 電腦版
Sqlite3(小型關(guān)系型數(shù)據(jù)庫)官方版 v3.17.0綠色版
- 本地下載通道:
- 浙江電信下載
- 北京聯(lián)通下載
- 江蘇電信下載
- 廣東電信下載
同類軟件
IBM SPSS Statistics 22簡體中文版
SysTools SQL Recovery(SQL數(shù)據(jù)庫恢復(fù)工具) v13.5
SQLyog(MYSQL數(shù)據(jù)庫管理工具) v13.1.6
Beetlsql(數(shù)據(jù)庫訪問工具) v3.27.2
AnySQL Maestro Pro官方版 v16.12.0.18
dbForge Studio for MySQL v10.0官方版
mariadb(數(shù)據(jù)庫管理系統(tǒng)) v11.1.2
NoSQL Manager for MongoDB(非關(guān)系型數(shù)據(jù)庫) v7.2
網(wǎng)友評論
共0條評論(您的評論需要經(jīng)過審核才能顯示)
分類列表
類似軟件
精彩發(fā)現(xiàn)
換一換精品推薦
-
MS SQL Maestro電腦版 v23.7 數(shù)據(jù)庫類 / 13.59M
查看 -
Beetlsql(數(shù)據(jù)庫訪問工具) v3.27.2 數(shù)據(jù)庫類 / 22.34M
查看 -
MySQL數(shù)據(jù)庫 64位安裝版 v8.0.32官方版 數(shù)據(jù)庫類 / 223.65M
查看
專題推薦
本類排行
月排行總排行