- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
SQLlite數據庫可能是目前來(lái)說(shuō)最輕量級、使用最為廣泛的SQL數據庫。
SQLlite數據庫本身是開(kāi)源的,自身包含在C中的一個(gè)相對小的庫中,支持ACID事務(wù)、零配置、儲存在單一磁盤(pán)文件中的一個(gè)完整的數據庫,它所使用的資源非常低,在幾百K的內存環(huán)境下也可以穩定運行,而目前支持的數據大小到2TB,自身又沒(méi)有什么額外的依賴(lài)、移植性好、支持多種開(kāi)發(fā)語(yǔ)言,所以SQLlite被廣泛運用在各個(gè)系統平臺上、一些軟件應用、小型網(wǎng)站、以及嵌入式應用、簡(jiǎn)單的數據分析、代替磁盤(pán)臨時(shí)文件、文件檔案、緩存等等。
在Unix系統下一般默認就是有安裝過(guò)的,即使是沒(méi)有安裝也可以同在Windows、macOS中一樣到官網(wǎng)上把二進(jìn)制包下載下來(lái)解壓后配置好PATH環(huán)境變量就可以使用,或者是下載源碼包編譯亦可,平時(shí)可以在系統中使用shell直接交互或者使用各個(gè)gui來(lái)使用。
建立好的一個(gè)schema在SQLlite就是一存儲在磁盤(pán)上的一個(gè)文件,注意一旦刪除了表的數據文件數據就會(huì )丟失,至于使用也很簡(jiǎn)單
[root@localhost data]# sqlite3 #調用二進(jìn)制文件直接進(jìn)入命令交互界面
[root@localhost data]# sqlite3 /data/my_test.db #建立一個(gè)名為my_test的schema后綴用什么都可以但是要注意不同的文件名后綴相同的文件名就是不同的文件,是完全2個(gè)完全獨立的schema,建議是用.db是標準的容易區分,如果有這個(gè)文件名的schema則不創(chuàng )建數據文件,建好了默認有一個(gè)main的database,其次默認建立的schema是不加密的,如果是重要數據建議加密
[root@localhost data]# sqlite3 /data/my_test.db #進(jìn)入my_test的schema,要注意的是,如果是新建立的schema在其中沒(méi)有建立任何項目時(shí)是不會(huì )產(chǎn)生相應的數據文件的
SQLite version 3.6.20
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .database #查看當前的schema下的database信息
seq name file
--- --------------- ----------------------------------------------------------
0 main /data/my_test.db
sqlite> .help #幫助信息
sqlite> .exit #退出
sqlite> SELECT * FROM sqlite_master; #系統表,在SQLite中唯一的一張,是只讀的,是無(wú)法刪除的執行刪除該表是是在做類(lèi)似于flush的操作
sqlite> .show
echo: off
explain: off
headers: off
mode: list
nullvalue: ""
output: stdout
separator: "|"
width:
以上就是SQLlite數據庫比較常用的交互命令,至于其他更多可以通過(guò)help查看,在這個(gè)就不做過(guò)多的介紹,在平時(shí)可以通過(guò)查詢(xún)SQLlite數據庫中唯一的一張系統表sqlite_master表獲知當前的schema下所有表、視圖、索引、觸發(fā)器相關(guān)等等信息,在sqlite_master表中有4個(gè)列:
type列記錄了項目的類(lèi)型,如表、視圖、索引、觸發(fā)器
name列記錄了項目的名稱(chēng),如表名、索引名、視圖名等
tbl_name列記錄所從屬的表名,如索引所在的表名。對于表來(lái)說(shuō),該列就是表名本身
rootpage列記錄項目在數據庫頁(yè)中存儲的編號。對于視圖該列值為0,觸發(fā)器該列值NULL。
sql列記錄建表的DDL
一些常用的系統表查詢(xún):
sqlite> SELECT * FROM sqlite_master WHERE type = 'table'; #查看當前schema下所有表信息
sqlite> SELECT * FROM sqlite_master WHERE rootpage = 0; #查看當前schema下所有的視圖信息
sqlite> SELECT * FROM sqlite_master WHERE rootpage IS NULL; #查看當前schema下所有的視圖信息
sqlite> SELECT sql FROM sqlite_master WHERE type = 'table' AND tbl_name = 'tablename'; #查看tablenameDDL或者直接使用schma命令查看
sqlite> .schema sqlite_master
CREATE TABLE sqlite_master (
type text,
name text,
tbl_name text,
rootpage integer,
sql text
);
在SQLlite目前下有5種數據存儲類(lèi)型:
NULL | 值是一個(gè) NULL 值 |
INTEGER | 值是一個(gè)帶符號的整數,根據值的大小存儲在 1、2、3、4、6 或 8 字節中 |
REAL | 值是一個(gè)浮點(diǎn)值,存儲為 8 字節的 IEEE 浮點(diǎn)數字 |
TEXT | 值是一個(gè)文本字符串,使用數據庫編碼(UTF-8、UTF-16BE 或 UTF-16LE)存儲 |
BLOB | 值是一個(gè) blob 數據,完全根據它的輸入存儲 |
而SQLlite其自身有支持列的親和數據類(lèi)型、親和數據名稱(chēng)概念。任何列仍然可以存儲任何類(lèi)型的數據,當數據插入時(shí),該字段的數據將會(huì )優(yōu)先采用親緣類(lèi)型作為該值的存儲方式,
如各種int型存入INTEGER中,在建好的表中用的是INTEGER類(lèi)型,或者還是用其它的數據類(lèi)型名稱(chēng),但是實(shí)際中還是存在INTEGER中,要注意的是SQLlite本身僅僅是一個(gè)很小的輕量級數據庫平時(shí)不要把SQLlite當成其它大型數據來(lái)使用,其次因為SQLlite的數據文件一般都是以文件的形式存儲的,而在平時(shí)就可以通過(guò)對其文件來(lái)進(jìn)行壓縮備份即可。
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP