Sum
()求和函数。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Avg
()求平均值函数。
Max
()求最大值函数。
Min
()求最小值函数。
Count
()汇总函数。
例
1.
求所有员工的年龄总和。
Select sum
(年龄)
from
表名
![](https://i-blog.csdnimg.cn/blog_migrate/83e4c48d9e3ac6752c1b73daf3cfed16.jpeg)
例2.求女同志的平均年龄。
select avg(
年龄
) from
表名
where
性别
='
女
'
![](https://i-blog.csdnimg.cn/blog_migrate/799fd8fbc159460e999a9365faccfc08.jpeg)
例
3.
求所用员工的平均工资。
平均工资
=
工资总和
/
人数
Select sum
(工资)
/count
(
*
)
from
表名
*
可以用工资代替。
![](https://i-blog.csdnimg.cn/blog_migrate/553e446a955d3a3fc81967bcdbeaeff4.jpeg)
例
4.
求工资最小值。
Select min
(工资)
from
表名
![](https://i-blog.csdnimg.cn/blog_migrate/eb9e01f91b0f9c33a437f8cea5ed810d.jpeg)
例
5.
求工资最少的员工信息。
Select * from
表名
where
工资
=
(
select min
(工资)
from
表名)
![](https://i-blog.csdnimg.cn/blog_migrate/8375ffc01e10d86f3ee436384d3e2330.jpeg)
例
6.
求每个部门的平均工资。
分组:
group by
Select
部门,
avg
(工资)
from
表名
group by
部门
![](https://i-blog.csdnimg.cn/blog_migrate/6c379e92a3a7cbd7a019b0802d7ba042.jpeg)
例
7.
求男女员工的人数。
Select
性别,
count
(
*
)
from
表名
group by
性别
![](https://i-blog.csdnimg.cn/blog_migrate/a98458c42ae55066d42286e1819c6e38.jpeg)
例
8.
求每个部门的平均工资。
Select
部门,
avg
(工资)
as
部门平均工资
from
表名
group by
部门
![](https://i-blog.csdnimg.cn/blog_migrate/3b838f0fb1584896bbf6bc1a8c1ab529.jpeg)
例
9.
显示部门平均工资在
4000
元以上的部门名称。
Select
部门,
avg
(工资)
as
部门平均工资
from
表名
Group by
部门
where avg
(工资)
>4000—
这条命令错误。
--
是表示注释。
在
SQL
中规定:对
group by
的结果进行过滤时不允许使用
where
,只能是
having
如:
Select
部门
,avg(
工资
)as
部门平均工资
from
表名
Group by
部门
having avg(
工资
)>4000
![](https://i-blog.csdnimg.cn/blog_migrate/af8c0473a6932f487dac74efd25c72a3.jpeg)
例
10
.在校期间参加三次考试,规定连接三次都在
90
分以上,为优秀生。请找出所有优秀生。
在这个实验需创建一个表,先创建表
stu
![](https://i-blog.csdnimg.cn/blog_migrate/885190dce0e017be7cd9bf9253273142.jpeg)
语法为:
select
姓名
from
表名
成绩
>=90 group by
姓名
having count
(
*
)
=3.
![](https://i-blog.csdnimg.cn/blog_migrate/d8d0932be4f749c61e1fd4d44824a14c.jpeg)
联合:
union
:创建表
nan
和表
nv.
![](https://i-blog.csdnimg.cn/blog_migrate/25bf9e04d06c3d61ce768263018d1dbe.jpeg)
Select * from
表
1 union select * from
表
2
注意:
1.
每个
select
语句字段名必须一致。
2.
如果字段名不同,则以第一个
select
语句为准。
Select * from nan union select
,姓名,性别,年龄
from nv
重复记录值显示一条。
![](https://i-blog.csdnimg.cn/blog_migrate/49e436d49ca36ebc0b31443d8bbf40a8.jpeg)
例1.
统计
nan
,
nv
以及
yuangong
表中男女同志的人数。
语法为:
select
性别
,count(*) from (select * from nan union select * from nv union select
姓名
,
性别
,
年龄
from yuangong)as ls group by
性别。
![](https://i-blog.csdnimg.cn/blog_migrate/ef85ff3274da2672de0a6bb6628bc167.jpeg)
例
2.
对三个表的年龄按照升序进行排列。
select * from (select * from nan union select * from nv union select
姓名
,
性别
,
年龄
from yuangong) as age order by
年龄
asc
![](https://i-blog.csdnimg.cn/blog_migrate/a8e98192ed0dafbe407d0bbac13e6140.jpeg)
自连接:一个表的自我连接
。
创建一个表
home
,类型的、找出父子对应关系
![](https://i-blog.csdnimg.cn/blog_migrate/6677fa9a10471bb63d00023e9069f3d3.jpeg)
语法为:
select homea.
姓名
as
儿子
,homeb.
姓名
as
父亲
from
home as homea,home as homeb where homea.
父
id=homeb.id
![](https://i-blog.csdnimg.cn/blog_migrate/745a8eb75eb3351413a6c98f13c6072e.jpeg)
例
3.
显示出工资高于本部门平均工资的员工信息。
创建一个类型为
p
的表。
![](https://i-blog.csdnimg.cn/blog_migrate/307dc5159ac29668d9015780951acf86.jpeg)
语法为:
select * from p
,(
select
部门,
avg
(工资)
as
平均工资
from p group by
部门)
as ls where
工资
>
平均工资
and p.
部门
=ls.
部门
![](https://i-blog.csdnimg.cn/blog_migrate/bd857dbc07844625d6c0c23b9059a08b.jpeg)
Select
有关的语句以完成。
转载于:https://blog.51cto.com/guoweishuai/244025