SQLite3資料庫簡介
◆SQLite第一個Alpha版本誕生于2000年5月. 至今已經有10個年頭了. SQLite也迎來了一個版本 SQLite 3已經發布.
◆SQLite是一款輕型的資料庫,是遵守ACID的關系式資料庫管理系統,它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的記憶體就夠了,它能夠支持Windows/Linux/Unix等等主流的作業系統,同時能夠跟很多程式語言相結合,比如Tcl、PHP、Java等,還有ODBC介面,同樣比起Mysql、PostgreSQL這兩款開源世界著名的資料庫管理系統來講,它的處理速度比他們都快,
創建SQLite資料庫
在Linux命令列下,啟動sqlite3
示例:sqlite3 mydb.txt
說明: 打開資料庫檔案mydb.txt,資料庫名默認為main,如果mydb.txt不存在,則新建檔案
附加資料庫Attach
附加資料庫Attach陳述句:
是指附加已經存在的資料庫,使得多個資料庫并存,由sqlite統一管理
命令格式: ATTACH [DATABASE] database-filename AS database-name
示例:
sqlite>attach database ‘mydb.dat’ as mydb
注意:檔案名有.符號,需要用引號(sqlite>表示這里是在linux下運行的)
分離資料庫Detach陳述句
命令格式:DETACH [DATABASE] database-name
在附加資料庫中添加一個與已有表同名的表是不允許的,但你可以附加帶有與主資料庫中的表同名的表的資料庫,也可以多次附加同一資料庫,使用database-name.table-name來參考附加資料庫中的表
SQLite3點命令
| 命令 | 命令說明 | 備注 |
|---|---|---|
| .database | 查看資料庫 | |
| .tables | 查看資料庫表有哪些? | |
| .schema[表名] | 查看所有或單表的結構 | |
| .output[file丨stdout] | 將結果輸出到檔案或標準螢屏 | .output file1.txt |
| .separator[分隔符] | 設定列資料間的分隔符 | .separator |
| .mode | 改變輸出格式 | .mode insert tab .mode column |
| .help | 幫助 | |
| .quit | 退出sqlite3命令列 |
SQLite資料庫邏輯物件
表TABLE、索引INDEX、視圖VIEW、觸發器TRIGGER
SQLITE_MASTER表
查看資料庫所有邏輯物件
sqlite>Select * from sqlite_master
sqlite>.schema sqlite_master
CREATE TABLE sqlite_master (
type text,
name text,
tbl_name text,
rootpage integer,
sql text
);
SQL92標準
SQL-92概述
ISO/ANSI和IEC共同制定了針對資料庫操作的結構化查詢語言SQL,92年推出國際標準,稱為SQL-92
各關系資料庫廠家在遵循SQL-92標準基礎上,在自己產品上擴展了SQL;比如:SQL SERVER-TSQL,ORACLE-PL/SQL等等
SQL92標準包含:
①資料定義語言(DDL):例如:CREATE、DROP、ALTER等陳述句,
②資料操作語言(DML):例如:INSERT(插入)、UPDATE(修改)、DELETE(洗掉)陳述句,
③資料查詢語言(DQL):例如:SELECT陳述句
④資料控制語言(DCL):例如:GRANT、REVOKE、COMMIT、ROLLBACK等陳述句
SQLite不支持的特性
用戶自定義函式,存盤程序
外鍵的約束(不過可以通過自定義觸發器來替代)
right out join/full out join
Grant/revoke
SQLite資料型別
| 資料型別 | 型別說明 | 兼容SQL92 |
|---|---|---|
| NULL | 空置 | |
| INTEGER | 用來存盤一個整數,根據大小可以使用1,2,3,4,6,8位 | int,smallint |
| REAL | IEEE浮點數 | float,numeric |
| TEXT | 按照字串來存盤 | varchar,char |
| BLOB | 按照二進制值存盤 |
一般資料采用的固定的靜態資料型別,而SQLite采用的是動態資料型別;
TEXT: TEXT列使用NULL,TEXT或者BLOB存盤任何插入到此列的資料,如果資料是數字,則轉換為TEXT,
NUMERIC: NUMERIC列可以使用任何存盤型別,它首先試圖將插入的資料轉換為REAL或INTEGER型的,如果成功則存盤為REAL和INTEGER型,否則不加改變的存入,
INTEGER:和NUMERIC類似,只是它將可以轉換為INTEGER值都轉換為INTEGER,如果是REAL型,且沒有小數部分,也轉為INTEGER,
REAL: 和NUMERIC型別 只是它將可以轉換為REAL和INTEGER值都轉換為REAL,
NONE:不做任何改變的嘗試,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/274184.html
標籤:其他
