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 [可省略]

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM