Java系列進(jìn)去Android之HTML與SQLite

1? ? ? HTML&SQLiteN26

1.1????get和post請(qǐng)求

兩者的區(qū)別:

1、 get提交將數(shù)據(jù)顯示在地址欄脓斩,對(duì)于敏感信息不安全;post提交不顯示在地址欄,對(duì)于敏感信息安全

2分俯、 地址欄中存放的數(shù)據(jù)是有限,所以get方式對(duì)提交的數(shù)據(jù)體積有限制哆料。post可以提交大體積數(shù)據(jù)

3缸剪、 對(duì)提交數(shù)據(jù)的封裝方式不同《get:將提交數(shù)據(jù)封裝到了http消息頭的第一行,請(qǐng)求行中????? ??????????????????post:將提交的數(shù)據(jù)封裝到消息頭后东亦,在請(qǐng)求數(shù)據(jù)體中》

使用場(chǎng)景:

1杏节、 如果說訪問服務(wù)器數(shù)據(jù),客戶端不需要提交數(shù)據(jù)信息,只需要從服務(wù)器獲取信息奋渔,那么通常使用get方式镊逝,例如:訪問圖片、音頻等卒稳。蹋半。他巨。

2充坑、如果說訪問服務(wù)器數(shù)據(jù),客戶端需要提交數(shù)據(jù)信息(用戶名染突、密碼...)捻爷,通常會(huì)使用post方式,例如:注冊(cè)份企、登陸等...

1.2????提交示例POST與GET

Inserttitle here

-->

action:服務(wù)器的地址

method:數(shù)據(jù)的提交方式,常用的有兩種:get也榄、post

-->

用戶名:

密碼:

publicclass Server {

/**

* @param args

* @throws IOException

*/

public static void main(String[] args)throws IOException {

// TODO Auto-generated methodstub

//tcp服務(wù)端

ServerSocket serverSocket =new ServerSocket(6666);

Socket socket =serverSocket.accept();

InputStream is =socket.getInputStream();

byte[] buf = new byte[1024];

int length = is.read(buf);

System.out.println(newString(buf, 0, length));

serverSocket.close();

}

}

1.3????數(shù)據(jù)庫

SQL Server?微軟

Oracle

MySQL

SyBase

DB2

SQLite,弱類型的數(shù)據(jù)庫

安全性、并發(fā)性司志、

簡(jiǎn)介:

是一款微型數(shù)據(jù)庫甜紫,它用在嵌入式系統(tǒng)中,比如Android系統(tǒng)骂远。它跟傳統(tǒng)的數(shù)據(jù)庫有比較大的差別囚霸。省略了大多數(shù)的功能,比如權(quán)限激才,管理拓型、觸發(fā)器、存儲(chǔ)過程等瘸恼。只保留對(duì)數(shù)據(jù)庫最常用到的增刪改查操作劣挫。(弱類型的數(shù)據(jù)庫)。

DB(數(shù)據(jù)庫)

DBMS(數(shù)據(jù)庫管理系統(tǒng)):Database Management System

DBA: 數(shù)據(jù)庫管理員

標(biāo)準(zhǔn)的SQL(結(jié)構(gòu)化查詢語言)

?? 分類:

ü? DDL(數(shù)據(jù)定義語言):創(chuàng)建庫东帅、創(chuàng)建表压固、刪除庫、刪除表

ü? DML(數(shù)據(jù)操作語言):插入靠闭、刪除帐我、修改數(shù)據(jù)

ü? DQL(數(shù)據(jù)查詢語言):數(shù)據(jù)查詢語言

ü? DCL(數(shù)據(jù)控制語言):創(chuàng)建用戶、設(shè)置權(quán)限阎毅、撤銷權(quán)限等焚刚。

?sqlite數(shù)據(jù)庫支持的數(shù)據(jù)類型(5種類型)

1)??null??????????? 空

2)??integer???????? 整型

3)??real??????????? 浮點(diǎn)型

4)??text/varchar??? 字符串

5)??blob??????????? 二進(jìn)制

?sqlite支持的約束條件

1)??primarykey:主鍵約束,非空且唯一

每張表都應(yīng)該設(shè)置一個(gè)主鍵扇调,找不到合適的主鍵的話矿咕,可以添加一個(gè)自增長(zhǎng)列(只能是整型)來作為表的主鍵。

一張表最多只能有一個(gè)主鍵

2)??notnull:非空約束

3)??unique:唯一約束,可以為空

4)??check:檢查約束

5)??default:默認(rèn)約束

6)??foreignkey:外鍵約束

ü? 主要用于維護(hù)引用的完整性(默認(rèn)沒有開啟碳柱,要想使用必須手動(dòng)開啟)

ü? 手動(dòng)開啟外鍵約束:PRAGMAforeign_keys = ON

ü? 外鍵列的值必須在主鍵列中存在捡絮,否則就會(huì)出錯(cuò)。

ü? 語法:字段名 數(shù)據(jù)類型 references表名(字段名)

刪除表:drop table 表名;

l常用的指令

?? .quit?????????????? 退出

?? .tables???????????? 查看數(shù)據(jù)庫中所有表名

?.headers on/off顯示/隱藏表頭

?.schema表名查看表結(jié)構(gòu)

?? select * from 表名? 查看指定表內(nèi)的所有數(shù)據(jù)(一般用于測(cè)試)

數(shù)據(jù)庫操作:select莲镣、insert福稳、update、delete

插入:語法:insert into 表名 (字段列表) values(值列表);

實(shí)例:insert into stu (id,name,score,age,gender)values(1,’xiaohua’,60,20,’男’);

注意:主鍵如果是整型瑞侮,那么就自動(dòng)擁有自增長(zhǎng)的特性的圆。

==如給添加數(shù)據(jù)的時(shí)候是給所有的字段都賦值了話,那么字段列表可以省略不寫半火。

Insert into stu values(5,’xiaohua’,60,20,’男’)

更新:語法:update 表名 set 字段名1 = 越妈?,字段名2 = ?, ... [where 條件];

刪除:語法:delete from 表名 [where 條件];

Delete from stu?? //表中的數(shù)據(jù)回全部刪除

Deletefrom stu where id=3

查詢:語法:select 列名1,列名2,...from 表名 [where 條件][group by 列名]

[having條件][order by列名 asc/desc][limit 初始位置,查詢個(gè)數(shù)]

給列取別名:select id as 學(xué)號(hào),name 姓名,score,age,gender from stu

//在給列取別名的時(shí)候钮糖,as可以省略不寫梅掠。

//給表去別名

Selects.id,name from stu as s;

?多表查詢

ü內(nèi)聯(lián)(inner join)

要求:把兩張表中滿足條件的記錄拼成一條記錄。

有兩種寫法:

1)??selecti.name,i.age,i.gender,i.address,c.math,c.english from stu_info as i,stu_score cwherei.stuno=c.sno;

2)??selecti.name,i.age,i.gender,i.address,c.math,c.english from stu_info as iinner joinstu_score as coni.stuno=c.sno;

ü外聯(lián)(outer join)

1)? 左外查詢(left [outer] join)

以左表為基準(zhǔn)表店归,先和右表做內(nèi)聯(lián)阎抒,接下來左表中匹配不到的記錄也會(huì)拼成一條記錄,只是值為null

selects.id,s.name,s.tid,t.name from stu s left join teacher t on s.tid=t.tid;

2)? 右外查詢(right [outer] join)

sqlite不支持

為表添加一列

alter table stu add tid integer;

ü交叉連接(cross join)

沒有連接條件消痛。

示例:

selecti.name,i.age,i.gender,i.address,c.math,c.english from stu_info as icross joinstu_score as c;

selects.id,s.name,s.tid,t.name from stu scross jointeacher t on s.tid=t.tid;

?按列來進(jìn)行排序

selectname,age,gender,address from stu_infoorder by age asc;

selectname,age,gender,address from stu_infoorder by age desc;

selectname,age,gender,address from stu_info order by age desc,name desc;

以多個(gè)列來排序且叁,先按age降序,再把a(bǔ)ge相同的記錄按名字降序排序

獲取指定個(gè)數(shù)的記錄

要求:查詢出班級(jí)中年齡最大的前三個(gè)學(xué)員的個(gè)人信息

selectname,age,address from stu_infoorder by age desc limit0,3;

?聚合函數(shù)

count(列名)肄满、sum(列名)谴古、max(列名)、min(列名)稠歉,avg(列名)

在做查詢語句的時(shí)候掰担,我們不能使用列名和聚合函數(shù)一起查詢,因?yàn)榱胁樵兂鰜淼膫€(gè)數(shù)可能有多個(gè)怒炸,而聚合函數(shù)的結(jié)構(gòu)只有一個(gè)带饱,不能組成一張規(guī)則的表。

Select count(*)from stu;???? //計(jì)數(shù)求和

?分組查詢

要求:打印輸出班級(jí)中每個(gè)城市所對(duì)應(yīng)的學(xué)生數(shù)勺疼。

select address,count(*) as 人數(shù) from stu_info group by address order by 人數(shù)desc;

select count(*) from stu group by tidhavingtidis not null;

注意事項(xiàng):

1)??在分組中使用聚合函數(shù),聚合函數(shù)統(tǒng)計(jì)的不是表中的所有記錄捏鱼,而是統(tǒng)計(jì)每個(gè)組中的記錄

2)??在分組查詢中执庐,分組的列可以和聚合函數(shù)一起查詢

3)??可以以多個(gè)列進(jìn)行分組。

select address,count(*)as 人數(shù) from stu_info group by addresshaving 人數(shù)>1;

PS:where和 having的區(qū)別导梆?

where在分組之前對(duì)表中所有的記錄進(jìn)行條件過濾轨淌,而having必須用在groupby 之后迂烁,主要用來對(duì)組進(jìn)行設(shè)置過濾條件。

Where用于分組之前查詢結(jié)果的篩選递鹉,而having是用于分組之后查詢結(jié)果的篩選

Select tid,count(*) from stu where score >=60 group by tidhaving tid is not null;

?模糊查詢

ü關(guān)鍵字: like

% : 代表任意多個(gè)字符(0到多)

_ : 代表任意一個(gè)字符(1)

Select * from stu where name like ‘x%’;

ü? 示例:

a)??查詢姓名中包含字母a的所有人

selectname,age,address from stu_info where name like '%a%';

b)??查詢姓名中第二個(gè)字母為h的人員信息

selectname,age,address from stu_info where name like '_h%';

SQLite3

命令行軟件

注意:不要直接雙擊打開sqlite3.exe,如果直接雙擊打開軟件會(huì)將數(shù)據(jù)保存在內(nèi)存的一塊

Ctrl+c??.quit?? .tables

//創(chuàng)建表

create table stu(

idinteger primary key,?????? //主鍵約束?? autoincrement 自增長(zhǎng)功能

namevarchar(20) not null,?? //不能為空

ageinteger check(age>18),

socrereal???????? unique,????????? //唯一性約束

gendervarchar(2) default(‘男’)?? //默認(rèn)值

);

//查詢指定字段為空的記錄

Select * from stu where tid is null;?? //is not null

?語法:select列名1,列名2,...from 表名 [where 條件][group by 列名]

[having條件][orderby列名 asc/desc][limit 初始位置,查詢個(gè)數(shù)]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盟步,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子躏结,更是在濱河造成了極大的恐慌却盘,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件媳拴,死亡現(xiàn)場(chǎng)離奇詭異黄橘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)禀挫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門旬陡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人语婴,你說我怎么就攤上這事∈荒溃” “怎么了砰左?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)场航。 經(jīng)常有香客問我缠导,道長(zhǎng),這世上最難降的妖魔是什么溉痢? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任僻造,我火速辦了婚禮,結(jié)果婚禮上孩饼,老公的妹妹穿的比我還像新娘髓削。我一直安慰自己,他們只是感情好镀娶,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布立膛。 她就那樣靜靜地躺著,像睡著了一般梯码。 火紅的嫁衣襯著肌膚如雪宝泵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天轩娶,我揣著相機(jī)與錄音儿奶,去河邊找鬼。 笑死鳄抒,一個(gè)胖子當(dāng)著我的面吹牛闯捎,可吹牛的內(nèi)容都是我干的搅窿。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼隙券,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼男应!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起娱仔,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤沐飘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后牲迫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體耐朴,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年盹憎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筛峭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡陪每,死狀恐怖影晓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情檩禾,我是刑警寧澤挂签,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站盼产,受9級(jí)特大地震影響饵婆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜戏售,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一侨核、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧灌灾,春花似錦搓译、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至跑芳,卻和暖如春轴总,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背博个。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工怀樟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盆佣。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓往堡,卻偏偏與公主長(zhǎng)得像械荷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子虑灰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法吨瞎,類相關(guān)的語法,內(nèi)部類的語法穆咐,繼承相關(guān)的語法颤诀,異常的語法,線程的語...
    子非魚_t_閱讀 31,581評(píng)論 18 399
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,790評(píng)論 0 11
  • 一、數(shù)據(jù)庫操作: 1.1 創(chuàng)建數(shù)據(jù)庫: create database student拍柒; 1.2 刪除數(shù)據(jù)庫: ...
    __71db閱讀 777評(píng)論 0 0
  • 2017年10月23日 周一 霜降 6:30--7:30 起床心傀,瑜伽20分鐘,孩子上學(xué)前的準(zhǔn)備拆讯,陪孩子一起上學(xué)脂男。 ...
    茶舍花開閱讀 245評(píng)論 0 0
  • 又到一年畢業(yè)季 穿著學(xué)士服 關(guān)系好的小伙伴相約一起拍照 留念 然后一輩子 不聯(lián)系
    海苔不是海白菜閱讀 247評(píng)論 0 5