Mysql 聚合函数;及模糊查询、分组查询、别名

运用前面所学,完成创建表、插入数据等操作

创建员工信息表和部门信息表

t_emp(员工信息表)

t_dept(部门信息表)

eno(编号) ename(姓名) sex(性别) phone(手机号) address(家庭住址) deptno(部门编号)
           
           
           

         

deptno(部门编号) dname(部门名称) loc(部门地址)
10 妖怪大道 妖怪路
20 芭蕉洞 火焰山
30 花柳楼 女儿国

答案:1、创建表
create table t_emp(
eno int,
ename varchar(20),
sex varchar(2),
phone varchar(11),
address varchar(50),
deptno int
);
2、添加数据
insert into t_emp values(1,'孙悟空','男','110','花果山水帘洞',10);
insert into t_emp values(2,'猪八戒','男','120','高老庄',10);
insert into t_emp values(3,'沙悟净','男','130','流沙河',10);
insert into t_emp values(4,'牛魔王','男','140','火焰山',20);
insert into t_emp values(5,'罗刹女','女','150','火焰山',20);
insert into t_emp values(6,'玉面狐','女','160','火焰山',20);
insert into t_emp values(7,'白骨精','女','170','白骨洞',30);
insert into t_emp values(8,'蜘蛛精','女','190','盘丝洞',30);
insert into t_emp values(9,'百花仙子','女','101','天宫',30);
新增薪资列
alter table t_emp add salary double;

3.创建t_dept部门表,及添加数据

create table t_dept(
deptno int,
dname varchar(20),
loc varchar(20)
);

insert into t_dept values(10,'妖怪大道','妖怪路');
insert into t_dept values(20,'芭蕉洞','火焰山');
insert into t_dept values(30,'花柳楼','女儿国');

一、聚合函数

sum() 求和(列的和)

max() 求列中的最大值

 min() 求列中的最小值

avg() 求列的平均值

 count() 求总行数

 count函数在求总行数时,为null的不计入总数
select count(*) from 表名; 结果是以该表中行数最多的列的行数为主
select count(eno) from t_emp; 以eno的总条数为结果
select count(1) from t_emp; 类似于*的功能

ifnull(参数一,参数二);

    判断指定列的值是否为空,如果为空以什么来代替,参数一代表列,参数二代表要替换的值

 二、模糊查询

关键字:like

特殊字符:%任意字符 _任意的单个字符,%可以是任意个字符 _ 一个下划线代表一个任意字符

三、分组查询:

概念:指定以某一个特点为依据进行划分

关键字:group by ,having

需求:查询该公司员工中男女的数量分配

select sex,count(*) from t_emp group by sex;

需求:查询各部门薪资的总和

select deptno,sum(salary) from t_emp group by deptno;

需求:查询部门薪资总和中大于12000的

select deptno,sum(salary) from t_emp group by deptno having sum(salary)>12000;

注意:

where和having的区别:where是直接筛选数据的,having是针对group by分组后的数据进行二次筛选的

where是跟在表的后面使用的,having是需要结合group by使用的,having很耗性能

四、别名

别名只是在显示的时候使用的,是不影响表本身的数据/也可以指代当前的字段名进行使用

关键词:as [可省略]

猜你喜欢

转载自www.cnblogs.com/chengjinsheng/p/12929867.html