做網(wǎng)站模板的海報(bào)尺寸多少錢電商seo優(yōu)化是什么意思
目錄
select
全列查詢
特定列查詢
用表達(dá)式查詢?
(as) + 名字?
distinct 去重?
where子句?
比較運(yùn)算符
列數(shù)據(jù)之間的比較
?編輯?
別名不能參與比較
null查詢
between and
in ( ... , ...)?
模糊匹配?
邏輯運(yùn)算符
order by子句
可以使用別名?
總結(jié)mysql執(zhí)行順序
篩選分頁?
示例
select
全列查詢
select * from +表名
- 相當(dāng)于遍歷了一遍表數(shù)據(jù)
- 如果數(shù)據(jù)量大,最好不要這樣做
特定列查詢
select + 列名(,列名1,列名2...) + from 表名
- 可以查某列/多列數(shù)據(jù),按照指定的列順序顯示數(shù)據(jù)
''
用表達(dá)式查詢?
select + 常數(shù)/表達(dá)式 + from 表名
- 會(huì)將常數(shù)/表達(dá)式的結(jié)果與每行拼接在一起
可以用于計(jì)算表中數(shù)據(jù),然后將結(jié)果顯示出來:
(as) + 名字?
select 列1+列2... as + 名字 + from 表名
- 可以為查詢結(jié)果重命名
- as可加可不加
- 屬于顯示范疇
?
distinct 去重?
select distinct+列名/表達(dá)式
為某列去重:
為表達(dá)式的運(yùn)算結(jié)果去重:
where子句?
比較運(yùn)算符
列數(shù)據(jù)之間的比較
?
別名不能參與比較
這是mysql的執(zhí)行順序?qū)е碌?/p>
- 首先確定數(shù)據(jù)從哪來 -- 某張表
- 然后帶著篩選條件去所選數(shù)據(jù)中尋找 -- where子句,而不是先拿到所有數(shù)據(jù),再去篩選
- 最后將找到的數(shù)據(jù)按照給定的顯示方式,顯示出來
所以,where子句在先,他就無法識(shí)別sum是什么
null查詢
不安全指的是,null無法參與比較
- 所以返回的是null,而不是1/0
!=和<>也是null不安全的:
所以,一般如果需要和null進(jìn)行比較,會(huì)使用is (not) null
between and
in ( ... , ...)?
可以將列數(shù)據(jù)與()內(nèi)所給數(shù)據(jù)匹配的行顯示出來:
模糊匹配?
分為兩種匹配方式:匹配任意字符%,匹配一個(gè)字符_
其實(shí),mysql是不區(qū)分' '和" "的,習(xí)慣哪種就用哪種:
?
邏輯運(yùn)算符
相當(dāng)于我們代碼中的&&,||,!
非常好理解的
比如:找到數(shù)學(xué)成績(jī)>60,英語成績(jī)大于90的學(xué)生:
order by子句
order by + 列名 asc(升序)/desc(降序)
可以將某列數(shù)據(jù)按升序或降序排列顯示
- 默認(rèn)是升序
也可以將多列進(jìn)行排序,當(dāng)?shù)谝涣惺窍嗤瑪?shù)據(jù)時(shí),按照第二個(gè)給出的順序排列
null會(huì)被看作是最小值
可以使用別名?
order?by子句中可以使用查詢列時(shí)使用的別名
- 因?yàn)槿绻胍判?就得先拿到所有找到的數(shù)據(jù),也就是說,它的順序在顯示范疇之后
總結(jié)mysql執(zhí)行順序
所以,再次總結(jié)一下mysql執(zhí)行的順序:
- 首先確定是操作哪張表
- 如果有where子句,說明我們只需要表中的一部分?jǐn)?shù)據(jù),如果不先篩選掉,在之后的處理中,就會(huì)處理無效數(shù)據(jù)(沒必要)
- 所以,我們先執(zhí)行where子句,拿到有效數(shù)據(jù)(篩選行)
- 然后根據(jù)需要顯示的列,拿到相應(yīng)的列數(shù)據(jù)(篩選列)
- 最后,將我們拿到的完全有效的數(shù)據(jù),進(jìn)行排序,顯示給我們
?
篩選分頁?
limit + m,n / limit n offset m
- 用于在數(shù)據(jù)量大的時(shí)候使用,防止進(jìn)程卡死
- m:從哪個(gè)位置開始顯示(默認(rèn)開始位置為0,可以看作是下標(biāo))
- n:顯示行數(shù)
它比order的執(zhí)行順序還要更后
- 因?yàn)樗窃跀?shù)據(jù)已經(jīng)準(zhǔn)備好了的情況下,決定顯示哪幾條的
示例
這樣就可以顯示出從第二個(gè)位置(下標(biāo)為1)的一條數(shù)據(jù):
(注意,這里兩次打印中,sum相同時(shí),名字順序不同,是因?yàn)?我們不能相信不經(jīng)過排序的列數(shù)據(jù)順序,他很可能是隨機(jī)的)
如果要分頁顯示:
只需要要每次變化m的值即可(m+=n)