2 .5.3 排序查詢(xún)
????????使用關(guān)鍵字order by
????????????排序方式:
????????????????????升序:默認(rèn),asc
????????????????????降序:desc
????????例如:對(duì)員工的銷(xiāo)售額進(jìn)行降序排列
????????????????select * from emp order by? sales desc;
????????例如:升序查詢(xún)所有女性員工的工資
????????????????select * from emp where sex ="女" order by money asc;
注:如果多個(gè)條件進(jìn)行排序嘹叫,只有當(dāng)前一個(gè)條件的值相同時(shí)酸休,才會(huì)比較第二個(gè)條件
????????格式:order by 排序字段1 排序方式 幕垦,排序字段2 排序方式 湃崩,...
????????????例如:以工資降序的方式查詢(xún)所有員工切揭,如果工資相同則按銷(xiāo)售額升序排列
????????????????select????*????from????emp????order????by????money????desc, ????sales;
2.5.4 聚合函數(shù)
????????概念:將一列數(shù)據(jù)作為一個(gè)整體遍希,進(jìn)行縱向的計(jì)算。
????????????avg():計(jì)算平均值
????????????sum():求和
????????????max():求最大值
????????????min():求最小值
????????????count():求個(gè)數(shù)
????????????????????count()中一般使用非空字段->主鍵? 或者? *
????????計(jì)算平均工資
????????????select????avg(money)????from????emp;
????????計(jì)算總銷(xiāo)售額
????????????select????sum(sales)????from????emp;
????????查詢(xún)工資最高的員工
????????????select????*????from????emp????where????money = (select????max(money)????from????emp)
????????統(tǒng)計(jì)部門(mén)字段為空的人數(shù)
????????????select????count(*)????from????emp????where????department????is????null;
????????????????注:聚合函數(shù)的計(jì)算排除null值
2.5.5 分頁(yè)查詢(xún)
????????語(yǔ)法:limit 開(kāi)始索引裂允,每頁(yè)查詢(xún)的記錄數(shù)
????????????注:索引從0開(kāi)始
????????????公式:開(kāi)始索引 = (當(dāng)前頁(yè)碼 - 1) *? 每頁(yè)查詢(xún)的記錄數(shù)
2.5.6 分組查詢(xún)
????????語(yǔ)法:group by 分組字段
注:
分組后查詢(xún)的字段應(yīng)該是:分組字段损离、聚合函數(shù)
????????????where和having的區(qū)別:? ? ? 1. where在分組前進(jìn)行篩選,如果不滿(mǎn)足where條件則不進(jìn)入分組绝编。having在分組后進(jìn)行篩選草冈,如果不滿(mǎn)足則不被查詢(xún)到? ? ? 2. where后不能跟聚合函數(shù),having后可以使用聚合函數(shù)進(jìn)行篩選
????查詢(xún)每個(gè)部門(mén)的平均銷(xiāo)售額
????????select????avg(sales),????department????from????emp????group????by????department;
?
????查詢(xún)男員工和女員工的最高收入
????????select????sex,max(money)????from????emp????group????by????sex;
?
????查詢(xún)每個(gè)部門(mén)女性員工的平均銷(xiāo)售額瓮增,以平均銷(xiāo)售額降序方式排列
????????select????avg(sales),department????from????emp????where????sex ="女"????groupby????department????order????by????avg(sales)????desc;
?
????查詢(xún)平均銷(xiāo)售額超過(guò)9000的部門(mén)
????select????avg(sales),department????from????emp????group????by????department????having????avg(sales) >9000;
?
查詢(xún)每個(gè)部門(mén)男性員工平均銷(xiāo)售額超過(guò)9000的部門(mén)
selectavg(sales),departmentfromempwheresex ='男'groupbydepartmenthavingavg(sales) >9000;
2.6 約束
????概念:對(duì)表中數(shù)據(jù)進(jìn)行限定
????????分類(lèi):
????????????1.? ????非空約束:not null
????????????????????唯一約束:unique
????????????????????主鍵約束:primary key
????????????????????外鍵約束:foreign key
2.6.1 非空約束
????????限定字段值不能為空
????????????創(chuàng)建表時(shí)怎棱,添加非空約束
????????????????????createtable表名(字段名 字段類(lèi)型notnull, 字段名 字段類(lèi)型 [約束], ...);
????????????創(chuàng)建表后,添加非空約束
????????????????????altertable表名 modify 字段名 字段類(lèi)型notnull;
注:已存在空值的字段不能被設(shè)置成非空的
????刪除非空約束(設(shè)置字段允許有空值)
????altertable表名 modify 字段名 字段類(lèi)型;