一.SQLite的介紹
1.SQLite簡介
SQLite是一款輕型的數據庫,是遵守ACID的關聯式數據庫管理系統,它的設計目標是嵌入 式的,而且目前已經在很多嵌入式產品中使用了它,它佔用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支持 Windows/Linux/Unix等等主流的操作系統,同時能夠跟很多程序語言相結合,比如Tcl、PHP、Java、C++、.Net等,還有ODBC接口,同樣比起 Mysql、PostgreSQL這兩款開源世界著名的數據庫管理系統來講,它的處理速度比他們都快。
2.SQLite的特點:
- 輕量級
SQLite和C/S模式的數據庫軟件不同,它是進程內的數據庫引擎,因此不存在數據庫的客戶端和服務器。使用SQLite一般只需要帶上它的一個動態 庫,就可以享受它的全部功能。而且那個動態庫的尺寸也挺小,以版本3.6.11爲例,Windows下487KB、Linux下347KB。
- 不需要"安裝"
SQLite的核心引擎本身不依賴第三方的軟件,使用它也不需要"安裝"。有點類似那種綠色軟件。
- 單一文件
數據庫中所有的信息(比如表、視圖等)都包含在一個文件內。這個文件可以自由複製到其它目錄或其它機器上。
- 跨平臺/可移植性
除了主流操作系統 windows,linux之後,SQLite還支持其它一些不常用的操作系統。
- 弱類型的字段
同一列中的數據可以是不同類型
- 開源
3.SQLite數據類型
一般數據採用的固定的靜態數據類型,而SQLite採用的是動態數據類型,會根據存入值自動判斷。SQLite具有以下五種常用的數據類型:
NULL: 這個值爲空值
VARCHAR(n):長度不固定且其最大長度爲 n 的字串,n不能超過 4000。
CHAR(n):長度固定爲n的字串,n不能超過 254。
INTEGER: 值被標識爲整數,依據值的大小可以依次被存儲爲1,2,3,4,5,6,7,8.
REAL: 所有值都是浮動的數值,被存儲爲8字節的IEEE浮動標記序號.
TEXT: 值爲文本字符串,使用數據庫編碼存儲(TUTF-8, UTF-16BE or UTF-16-LE).
BLOB: 值是BLOB數據塊,以輸入的數據格式進行存儲。如何輸入就如何存儲,不改 變格式。
DATA :包含了 年份、月份、日期。
TIME: 包含了 小時、分鐘、秒。
二、SQL語句記錄
創表語句:
create table student_table(_id integer primary key autoincrement, name text, age integer);
在升級過程中,添加表字段:注意升級過程中新增到表子段要允許爲null
alter table student_table add age integer null
新增:
insert into student_table(name,age) values('青冘',19);
刪除:
delete from student_table where _id = 1;
更新:
update student_table set name='青' where _id = 1;
查詢:
select _id,name,age from student_table;
select * from student_table;
select * from student_table where _id = 1;
其他語句:
// 判斷不存在才執行
IF NOT EXISTS
if not exists
清除表裏面的所有數據:
String dropSQL = "delete from " + TABLE_NAME;
刪除表,直接把表刪除,慎用 drop table
String dropSQL = "drop table if exists " + TABLE_NAME;