標籤:android sqlite database 資料庫 工作表
資料庫的應用相當廣泛,可以應用在Java、Android、IOS、Windows等所有主要的作業系統上
SQLite雖然是輕量級的小引擎,但是能夠支援高達2TB大小的資料庫,其以單個檔案的形式存在,以B-Tree的資料結構形式儲存在磁碟,具有輕量級、獨立性、隔離性、跨平台、多語言及介面、安全性等特點。
多個進程可以再統一時間從統一資料庫讀取資料,但只有一個可以寫入資料
關於SQLite的資料類型:SQlite支援NULL(空值)、INTEGER(整形值)、REAL(浮點值)、TEXT(字串值)和BLOB(二進位對象)資料類型
動態資料類型(弱引用):當某個值插入到資料庫時,SQLite將會檢查它的類型,如果該類型與關聯的列不匹配,SQLite則會嘗試將該值轉換成該列的類型,如果不能轉換,則該值將作為本身的類型儲存
資料庫(database):相當於excel檔案,是若干個資料表的載體,內部可以存在若干資料表
資料表(table):相當於excel檔案中的某個工作表,用於儲存資料
列/欄位(column):即一豎排
行(row):即一橫排
相關英文:design:設計、unique:唯一的、execute:執行、insert:插入、into:到...裡面、delete:刪除、auto:自動、increment:增長/增加、primary:主要的、primary key:主鍵、version:版本
SQL的語句是一系列固定的語句,格式規定,用來實現對資料庫的所有內容進行管理。
接下來就是SQLite的使用了
SQLite主要有兩個類:1.SQLiteDatabase 2.SQLiteOpenHelper
1.SQLiteDatabase:提供了一些管理SQLite資料庫的類、提供建立,刪除,修改,執行SQL命令,並執行其他常見的資料庫管理工作的方法
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/85/AC/wKioL1esGzLBX8gfAAESx-t1t9g046.png-wh_500x0-wm_3-wmp_4-s_729274968.png" style="float:none;" title="SQL1.png" alt="wKioL1esGzLBX8gfAAESx-t1t9g046.png-wh_50" />
650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/85/AE/wKiom1esGzPDFRX9AACbfd-3sc4528.png-wh_500x0-wm_3-wmp_4-s_2046027021.png" style="float:none;" title="SQL2.png" alt="wKiom1esGzPDFRX9AACbfd-3sc4528.png-wh_50" />
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/85/DB/wKiom1esWdDyWPm7AACwEPpaNbo819.png-wh_500x0-wm_3-wmp_4-s_1468303480.png" title="SQL3.png" alt="wKiom1esWdDyWPm7AACwEPpaNbo819.png-wh_50" />
這些就是主要的增刪查改語句.
【建立資料表】
文法:create table 表名 (欄位設計列表)
欄位設計列表文法:欄位名 欄位資料類型 欄位約束
各欄位之間使用英文的逗號進行分隔
樣本:create table teachers (name varchar(8) not null unique, tel varchar(16), email varchar(50)) //括弧裡的數字為限制輸入最大字數
注意上面,每一項屬性與屬性之間一定要有空格
【增加資料】
文法:insert into 表名 (欄位列表) values (值列表)
樣本:
insert into teachers (name, tel, email) values (‘王五‘, ‘13800138001‘, ‘[email protected]‘)
insert into teachers (email, name, tel) values (‘[email protected]‘, ‘李四‘, ‘13800138006‘)
insert into teachers (name) values (‘張三‘)
【刪除資料】
文法:delete from 表名 [where子句]
where子句的文法:where 欄位 條件運算子 值 [關係運算子 欄位 條件運算子 值]
條件運算子:= <> >= <=
關係運算子:and or not
樣本:
delete from teachers // 刪除teacher表中的所有資料
delete from teachers where name=‘張三‘ // 刪除name欄位的值為‘張三‘的資料
delete from teachers where tel=‘010-66778899‘ // 刪除tel欄位的值為‘010-66778899‘的資料
delete from teacher where name=‘李四‘ and tel=‘10086‘ // 刪除name字元的值為‘成恒‘,並且tel欄位的值為‘10086‘的資料,以上2個條件必須同時滿足
delete from teachers where name=‘李四‘ or tel=‘13800138007‘ // 刪除name字元的值為‘李四‘,或者tel欄位的值為‘13800138007‘的資料,以上2個條件滿足其中任何1條均可
【修改資料】
文法:update 表名 set 欄位賦值列表 [where子句]
欄位賦值列表:欄位名=欄位值
樣本:
update teachers set tel=‘010-66778899‘ // 設定每一條資料的tel欄位的值為‘010-66778899‘
update teachers set email=‘[email protected]‘ where name=‘張三‘ // 設定name欄位的值為‘張三‘的資料的email欄位值為‘[email protected]‘
2.SQLiteOpenHelper:是SQLiteDatabase的協助類,用於管理資料庫的建立和版本更新,一般是建立一個類繼承它,並重寫onCreate()和onUpgrade()方法
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/85/DB/wKiom1esXyHjt9MaAAD9UxPFpHE119.png-wh_500x0-wm_3-wmp_4-s_867092353.png" title="SQL4.png" alt="wKiom1esXyHjt9MaAAD9UxPFpHE119.png-wh_50" />
就是SQLiteOpenHelper的主要方法
當1和2配合使用效果最佳
650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/85/DB/wKioL1esYkKzLRctAAC8hPOCs1A118.png-wh_500x0-wm_3-wmp_4-s_1045471634.png" style="float:none;" title="SQL5.png" alt="wKioL1esYkKzLRctAAC8hPOCs1A118.png-wh_50" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/85/DB/wKiom1esYkTBRoVXAAE0t-yPNt8263.png-wh_500x0-wm_3-wmp_4-s_275012774.png" style="float:none;" title="SQL6.png" alt="wKiom1esYkTBRoVXAAE0t-yPNt8263.png-wh_50" />
650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/85/DB/wKioL1esYkWBUZXfAAD-0Ck8S5I717.png-wh_500x0-wm_3-wmp_4-s_1028802133.png" style="float:none;" title="SQL7.png" alt="wKioL1esYkWBUZXfAAD-0Ck8S5I717.png-wh_50" />
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/85/DB/wKioL1esYkfygKfWAAC4uLFKqrw608.png-wh_500x0-wm_3-wmp_4-s_3235060306.png" style="float:none;" title="SQL8.png" alt="wKioL1esYkfygKfWAAC4uLFKqrw608.png-wh_50" />
本文出自 “11828641” 部落格,請務必保留此出處http://11838641.blog.51cto.com/11828641/1837047
(資料庫)SQLite的使用