Android Studio 之 SQLite的學(xué)習(xí)與使用(1) 數(shù)據(jù)庫(kù)的創(chuàng)建


SQLite的學(xué)習(xí)

1.特點(diǎn)

????程序驅(qū)動(dòng),嵌入式,不需要專門的數(shù)據(jù)庫(kù)引擎+

????SQLite其實(shí)是無(wú)數(shù)據(jù)類型的。指定類型后但不做檢查。

????有五種類型:Integer varchar(10) float double char(10) text

2.Sql通用常用指令

? ? 2.1創(chuàng)建表的語(yǔ)句

????????create table 表名(字段名稱 數(shù)據(jù)類型 約束,字段名稱 數(shù)據(jù)類型 約束......)

????????create table person(_id Integer primary key,namevarchar(10),age Integer not null)

? ? 2.2刪除表的語(yǔ)句

????????Drop table 表名

? ? 2.3插入數(shù)據(jù)

????????Insert into 表名[字段,字段] values(值1,值2......)

????????//中括號(hào)此處表示可有可無(wú)

????????Insert into person(_id,age) values(1,20)

????????Insert into person values(2,”zs”,30)? //如果沒(méi)有在person后加字段,則values里的值按順序給各字段插入

? ? 2.4修改數(shù)據(jù)

????????Update 表名set 字段=新值where 修改的條件

????????Update person set name=”ls” where _id=1?? //意思是把_id等于1的人的名字修改成ls

????????如果是要修改多個(gè)值,就Update person set name=”ls”,age=20 where _id=1

? ? 2.5刪除數(shù)據(jù)

????????Delete from 表名 where 刪除的條件

????????Delete from person where _id=2? //person后不加字段限制則全部刪除

? ? 2.6查詢語(yǔ)句

????????Select 字段名 from 表名 where 查詢條件 group by 分組的字段 having 篩選的條件order by 排序字段

????????Select * from person; //將person中的所有數(shù)據(jù)展示??*是通配符

????????Select * from person where _id=1;//查詢person表中_id等于1的人的情況

????????Select * from person where _id<>1;//查詢person表中_id不等于1的人的情況

????????Select * from person where _id<>1 and age>18;//多個(gè)條件。查詢person表中_id不等于1且age大于18的人的情況

????????...

????????Select * from person where _id<>1 order by age;//查詢person表中_id不等于1的人的情況,并且按年齡排序






3.Sqlite數(shù)據(jù)庫(kù)創(chuàng)建

? ? 3.1用SQLiteOpenHelper這樣一個(gè)已經(jīng)定義好的類來(lái)創(chuàng)建。這個(gè)類里定義了創(chuàng)建方法:onCreate(),數(shù)據(jù)庫(kù)升級(jí)方法:onUpgrade(),打開(kāi)數(shù)據(jù)庫(kù)方法:onOpen()。

? ? 3.2一個(gè)新的項(xiàng)目。先寫一個(gè)BUTTON,在點(diǎn)擊之后觸發(fā)一個(gè)創(chuàng)建數(shù)據(jù)庫(kù)的事件。在對(duì)應(yīng)的包下新建一個(gè)utils工具類,可以起名為MySqliteHelper,在這里面實(shí)現(xiàn)創(chuàng)建數(shù)據(jù)庫(kù)/升級(jí)數(shù)據(jù)庫(kù)/打開(kāi)數(shù)據(jù)庫(kù)等功能,因此它需要extends SQLiteOpenHelper。然后ALT+回車,重寫OPEN和UPGRADE,再寫相應(yīng)的構(gòu)造函數(shù)。


????注意到,這里的構(gòu)造函數(shù)需要傳入四個(gè)參數(shù),之后的時(shí)候每次都傳四個(gè)不太方便,所以再定義一個(gè)新的常量工具類:


????,然后再寫一個(gè)新的構(gòu)造函數(shù)




????點(diǎn)擊,觀察log


????先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)對(duì)象,然后打開(kāi)。

????數(shù)據(jù)庫(kù)中大部分都是用表的形式管理。通常,創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候,我們都會(huì)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表。比如,此時(shí)在數(shù)據(jù)庫(kù)的onCREATE中寫一個(gè):

????String sql="create table person(_id Integer primary key,name

????varchar(10),age Integer)";

????Create table表示創(chuàng)建一個(gè)表?然后person是表名,括號(hào)里是字段。同理,為了提高耦合性,可以在常量工具類中定義表名/ID/NAME等信息。

????在CONSTANT里定義好了之后,這句命令改寫為:

????String sql="create table "+Constant.TABLE_NAME+"("+Constant._ID+" Integer primary key,"+Constant.NAME+" varchar(10),"+Constant.AGE+" Integer)";

????在雙引號(hào)括起來(lái)的字符串中可以再加“+...+”,中間寫變量名。

?????? 定義好sql表后,在下面寫一個(gè)執(zhí)行語(yǔ)句。


?????? 然后這張數(shù)據(jù)庫(kù)表就創(chuàng)建完成了。



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 觀其大綱 page 01 基礎(chǔ)知識(shí) 1 MySQL數(shù)據(jù)庫(kù)概要 2 簡(jiǎn)單MySQL環(huán)境 3 數(shù)據(jù)的存儲(chǔ)和獲取 4 M...
    周少言閱讀 3,171評(píng)論 0 33
  • MYSQL 基礎(chǔ)知識(shí) 1 MySQL數(shù)據(jù)庫(kù)概要 2 簡(jiǎn)單MySQL環(huán)境 3 數(shù)據(jù)的存儲(chǔ)和獲取 4 MySQL基本操...
    Kingtester閱讀 7,838評(píng)論 5 116
  • 什么是SQLite?數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)的步驟 ●SQLite是一款輕型的嵌入式數(shù)據(jù)庫(kù),它占用資源非常的低,在嵌入式設(shè)備...
    飛行的貓閱讀 2,516評(píng)論 1 7
  • 導(dǎo)語(yǔ): 數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù).請(qǐng)不要被「數(shù)據(jù)庫(kù)」三個(gè)字所迷惑,數(shù)據(jù)...
    Han_105a閱讀 664評(píng)論 0 0
  • Nginx為centos提供了Pre-Built的發(fā)布包,使得安裝起來(lái)非常簡(jiǎn)單。 配置nginx軟件包倉(cāng)庫(kù) 在Li...
    JohnShen閱讀 524評(píng)論 0 5