數(shù)據(jù)庫 二
一 基礎(chǔ)語法
1.select xx:數(shù)值類xx可以直接做四則運(yùn)算
2.別名as:列名 select xx from food as aaaa(新列名中間有空格加引號(hào),不分單雙)
3.Distinct去重:select distinct
4.運(yùn)算符:<,<=,>,>=,!=,<>
5.默認(rèn)日期格式:'1900-01-01'
6.where 可以接 not,四則遠(yuǎn)算
7.or:等價(jià)于使用多個(gè)or條件
8.between:邏輯等同于范圍閉區(qū)間,時(shí)間要打引號(hào)
9.like: 匹配符,
'%':代表任意形式、任意長度的字符,如'%b','%b%'
'_':代表一個(gè)未知字符
多個(gè)值:一個(gè) 列表名 +like后面加一個(gè),不能直接like+'xx' or 'xx'
regexp(正則表達(dá)式):like '%xx%' = regexp 'xx'
1.'^':如'^zhao'代表這個(gè)字符串以'zhao'作為開頭
2.'$':如'yun$'代表這個(gè)字符串以'yun'作為結(jié)尾
3.'|':類似or,同時(shí)進(jìn)行多個(gè)搜尋,'^zhao|qian|sun|li',符號(hào)互相獨(dú)立
4.[gim]e:意味著[]內(nèi)任何一個(gè)單字符匹配e尋找,如ge、ie、me,也可以是e[gim]
5.[a-z]e:支持26個(gè)字母
Null:代表對(duì)象的內(nèi)容為空,可以賦給任何對(duì)象,但空格代表一個(gè)對(duì)象實(shí)例,代表這是一個(gè)長度為0的空字符串
order by :desc:降序 ASC:升序(不加默認(rèn))
limit:limit a,b (a:偏移量,跳過) (b:提取的數(shù)量,跳過前a條,提取第a條后的b條數(shù)據(jù))
二 連接
1.內(nèi)連接(inner join):查找兩表相同項(xiàng),但不同項(xiàng)不顯示
2.跨數(shù)據(jù)庫連接:當(dāng)前使用的表不需要加前綴,另一個(gè)未使用的數(shù)據(jù)庫表前面加數(shù)據(jù)庫名
3.自連接:自己連接自己
4.多表連接:將多個(gè)表使用多個(gè)join on 連接,join后跟表名,on后跟條件,兩兩相連相同列。
5.復(fù)合連接查詢:復(fù)合主鍵符合條件,要將復(fù)合主鍵的列都加入條件
6.隱式內(nèi)連接:沒有join on,采用from + 表一+表二+where的形式
7.外連接:
1.左外連接:左表的一切與右表的交集,沒有對(duì)應(yīng)的部分用空來補(bǔ)齊
2.右外連接:右表的一切與左表的交集,沒有對(duì)應(yīng)的部分用空來補(bǔ)齊

8.自外連接:采用左連接,因?yàn)樽筮B接不管有沒有那一項(xiàng)的數(shù)值,都會(huì)顯示出來,內(nèi)連接只顯示共有的項(xiàng)
9.using簡化查詢:using(id,name)= ?on (a.id = b.id) and a.name = b.name
10.自然連接:數(shù)據(jù)庫自動(dòng)判斷并搜索共有列:nature join
11.交叉連接(笛卡爾積):兩個(gè)集合的元素依次組合,a={1,2} b={3,4,5} 笛卡爾積:{(1,3),(1,4),(1,5),(2,3),(2,4),(2,5)}
表現(xiàn)形式:顯式:cross join 沒有on ? ?隱式:去掉join和where
12.聯(lián)合Union:行與行之間結(jié)合成新的表,查詢列名數(shù)量必須一致,列名以首個(gè)列名命名
三 插入數(shù)據(jù)
1.Insert into xx values (default,'x','xx','1990-01-01') default(默認(rèn))
2.復(fù)制表:create table xx as ?(select .....),但沒有表性質(zhì),如主鍵
3.更新單行:update + set
4.更新多行:update+set+where+in
5.刪除行:delete xx from xxx where
四 聚合函數(shù)
1.MAX():跟在select后面,里面可以跟四則運(yùn)算
2.MIN()
3.SUM()
4.COUNT():只返回有記錄的值 ?count(*):所有記錄不管是否為空
5.AVG:
6.group by:數(shù)據(jù)分組,必須要把該分組的都分組,比如只分日期,那么不同類型但同日期的只會(huì)顯示一個(gè)
7.having:配合聚合函數(shù)使用,對(duì)聚合函數(shù)項(xiàng)進(jìn)行篩選,即分組后篩選,where只能在分組前篩選,group 后面一般跟select的字段
8.rollup:只能用于聚合值的列,with rollup:出現(xiàn)新的一列匯總值