基于Android SQLite的使用介紹
在Android平臺(tái)中,集成了一個(gè)嵌入式關(guān)系型數(shù)據(jù)庫--SQLite,它支持NULL、INTEGER、REAL(浮點(diǎn)數(shù)字)、TEXT(字符串文本)和BLOB(二進(jìn)制對(duì)象)數(shù)據(jù)類型,雖然只支持五種數(shù)據(jù)類型,實(shí)際上可以接受varchar(n),char(n),decimal(p,s)等數(shù)據(jù)類型,在進(jìn)行運(yùn)算或保存的時(shí)候會(huì)轉(zhuǎn)換成對(duì)應(yīng)的五種數(shù)據(jù)類型。
ex: 可以在Integer類型的字段中存放字符串,或者在布爾類型字段中存放浮點(diǎn)數(shù),或者在字符型字段中存放日期,but!定義為INTEGER PRIMARY KEY的字段只能存儲(chǔ)64位整數(shù),另外,在編寫CREATE TABLE語句時(shí),可以省略跟在字段名稱后面的數(shù)據(jù)類型;
create table person(personid integer primary key autoincrement,name varchar(20))//name的類型可省略;
select * from tablename where tiaojian group by 分組字句 having... order by 排序字句
select * from person
select * from person order by id desc/asc
select name from person group by name having count(*)>1
分頁:select * from Account limit 5 offset 3 或者 select * from Account limit3,5
插入語句:insert into tablename(字段列表) values(值列表)
insert into person(name,age) values("Livingstone",22)
更新語句:update tablename set field1=val1,field2=val2 where 條件語句
update person set name="Livingstone" where id = 10
刪除語句:delete from tablename where 條件語句
delete from person where id=10
獲取添加記錄后自增長(zhǎng)的ID值:select last_insert_rowid()
SQLiteDatabase專門提供了對(duì)于添加、刪除、更新、查詢的操作方法:insert(),delete(),update()和query();
Insert()方法用于添加數(shù)據(jù),各個(gè)字段的數(shù)據(jù)使用ContentValues進(jìn)行存放,ContentValues類似于MAP,相對(duì)于 MAP,它提供了存取數(shù)據(jù)對(duì)應(yīng)的put(String key,Xxx value)和getAsXxx(String key)方法;
long rowid=db.insert("person",null,values);//返回新添記錄的行號(hào),與主鍵id無關(guān);
不管第三個(gè)參數(shù)是否包含數(shù)據(jù),執(zhí)行Insert()方法必然添加一條記錄,如果第三個(gè)參數(shù)為空,會(huì)添加一條除主鍵之外
其他字段值為Null的記錄,Insert()方法內(nèi)部其實(shí)是通過構(gòu)造SQL語句完成數(shù)據(jù)的添加,第二個(gè)參數(shù)用于指定空值字段的名稱:如果第三個(gè)參數(shù)values為Null或者元素個(gè)數(shù)為0,由于Insert()方法要求必須添加一條除了主鍵之外其它字段為Null值的記錄,為了滿足SQL語法要求,insert語句必須給定一個(gè)字段名,ex:insert into person(name) values(NULL),若不給字段名,insert語句就為:insert into person() values(),對(duì)于字段名,建議使用主鍵之外的字段,如果使用了INTEGER類型的主鍵字段,執(zhí)行類似insert into person(personid) values(NULL)的insert語句后,該主鍵字段值也不會(huì)為NULL,若第三個(gè)參數(shù)values不為Null并且元素個(gè)數(shù)大于0,第二個(gè)參數(shù)設(shè)置為null。
- 基于Android SQLiteOpenHelper && CRUD 的使用
- Android開發(fā)之SQLite的使用方法
- android中使用SharedPreferences進(jìn)行數(shù)據(jù)存儲(chǔ)的操作方法
- Android SQLite數(shù)據(jù)庫增刪改查操作的使用詳解
- Android開發(fā)筆記之: 數(shù)據(jù)存儲(chǔ)方式詳解
- 在android開發(fā)中進(jìn)行數(shù)據(jù)存儲(chǔ)與訪問的多種方式介紹
- Android使用SQLite數(shù)據(jù)庫的簡(jiǎn)單實(shí)例
- Android 數(shù)據(jù)存儲(chǔ)方式有哪幾種
- Android數(shù)據(jù)存儲(chǔ)之SQLite使用
相關(guān)文章
Android開發(fā) 旋轉(zhuǎn)屏幕導(dǎo)致Activity重建解決方法
Android開發(fā)文檔上專門有一小節(jié)解釋這個(gè)問題。簡(jiǎn)單來說,Activity是負(fù)責(zé)與用戶交互的最主要機(jī)制,接下來為您詳細(xì)介紹2012-11-11Android使用AsyncTask下載圖片并顯示進(jìn)度條功能
這篇文章主要介紹了Android使用AsyncTask下載圖片并顯示進(jìn)度條功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-02-02Android實(shí)現(xiàn)院系專業(yè)三級(jí)聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)院系專業(yè)三級(jí)聯(lián)動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03Android入門教程之RecyclerView的具體使用詳解
RecyclerView是Android一個(gè)更強(qiáng)大的控件,其不僅可以實(shí)現(xiàn)和ListView同樣的效果,還有優(yōu)化了ListView中的各種不足。其可以實(shí)現(xiàn)數(shù)據(jù)縱向滾動(dòng),也可以實(shí)現(xiàn)橫向滾動(dòng)(ListView做不到橫向滾動(dòng))。接下來講解RecyclerView的用法2021-10-10Android 開發(fā)使用PopupWindow實(shí)現(xiàn)加載等待界面功能示例
這篇文章主要介紹了Android 開發(fā)使用PopupWindow實(shí)現(xiàn)加載等待界面功能,結(jié)合實(shí)例形式分析了Android使用PopupWindow組件實(shí)現(xiàn)加載等待界面功能相關(guān)布局與功能實(shí)現(xiàn)技巧,需要的朋友可以參考下2020-05-05基于Android AppWidgetProvider的使用介紹
本篇文章小編為大家介紹,基于Android AppWidgetProvider的使用。需要的朋友參考下2013-04-04一文詳解Android無需權(quán)限調(diào)用系統(tǒng)相機(jī)拍照
這篇文章主要為大家介紹了Android無需權(quán)限調(diào)用系統(tǒng)相機(jī)拍照詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Android?Camera開發(fā)實(shí)現(xiàn)可復(fù)用的相機(jī)組件
這篇文章主要為大家詳細(xì)介紹了Android?Camera開發(fā)實(shí)現(xiàn)可復(fù)用的相機(jī)組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05