Mysql学习03

– 查询员工的姓名和年薪((月薪+补贴)*13)(处理空值)
select ename, (sal+ifnull(comm,0))*13 as annsal
from tb_emp order by annsal desc;

– 查询有员工的部门的编号和人数
select dno, count(eno) from tb_emp group by dno with rollup;

– 查询所有部门的名称和人数
select dname, ifnull(total,0) from tb_dept t1 left join
(select dno, count(eno) as total from tb_emp group by dno) t2
on t1.dno=t2.dno;

– 查询月薪最高的员工(Boss除外)的姓名和月薪
select ename, sal from tb_emp
where sal=(
select max(sal) from tb_emp where mgr is not null
);

– 查询薪水超过平均薪水的员工的姓名和月薪
select @a:=(select avg(sal) from tb_emp);

select @a;

select ename, sal, round(sal-@a,2) from tb_emp
where sal>@a;

– 查询薪水超过其所在部门平均月薪的员工的姓名、部门编号和月薪
select ename, t1.dno, sal from tb_emp t1 inner join
(select dno, avg(sal) as avgsal from tb_emp group by dno) t2
on t1.dno=t2.dno where sal>avgsal;

– 查询部门中薪水最高的人姓名、月薪和所在部门名称

– 查询主管的姓名和职位
– distinct - 耗时操作
– in / not in - 耗时操作(集合中元素多了以后性能急剧下降)
– 建议:使用exits/ not exists取代去重和集合运算
select ename, job from tb_emp where eno in (
select distinct mgr from tb_emp where mgr is not null
);

Hao(jackfrued) 2020/11/18 11:16:13
– 查询主管的姓名和职位
– distinct - 耗时操作
– in / not in - 耗时操作(集合中元素多了以后性能急剧下降)
– 建议:使用exists/ not exists取代去重和集合运算
select ename, job from tb_emp where eno in (
select distinct mgr from tb_emp where mgr is not null
);

select ename, job from tb_emp t1
where exists (select ‘x’ from tb_emp t2 where t1.eno=t2.mgr);

– 查询月薪排名4~6名的员工排名、姓名和月薪
select rn, ename, sal from
(select @no:=@no+1 as rn, ename, sal from tb_emp
order by sal desc) t1, (select @no:=0) t2
limit 3 offset 3;

select @no:=@no+1 as rn, ename, sal
from tb_emp, (select @no:=3) t2
order by sal desc limit 3,3;

Hao(jackfrued) 2020/11/18 11:52:00
show variables like ‘%password%’;

– 如果需要使用弱口令可以先修改两个全局变量
– 注意:商业项目中绝不应该为数据库用户设置弱口令
set global validate_password_policy=0;
set global validate_password_length=6;

– 创建用户
create user ‘wangdachui’@’%’ identified by ‘123456’;

– 授予权限
grant select on hrs.tb_emp to ‘wangdachui’@’%’;

grant insert,delete,update on hrs.* to ‘wangdachui’@’%’;

– 将所有数据库所有对象的所有权限授予’wangdachui’@’%’
grant all privileges on . to ‘wangdachui’@’%’ with grant option;

– 召回权限
revoke all privileges on . from ‘wangdachui’@’%’;

revoke insert on hrs.* from ‘wangdachui’@’%’;

– 删除用户
drop user ‘wangdachui’@’%’;

– 修改用户
alter user ‘wangdachui’@’%’ identified by ‘654321’;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL学习路线可以分为三个阶段:基础阶段、优化阶段和部署阶段。在基础阶段,你需要学习MySQL数据库的基本操作,包括增删改查,以及一些高级操作如视图、触发器、函数和存储过程等。[1]在优化阶段,你需要学习如何提高数据库的效率,比如学习索引、分表等技术,以提升数据库的性能和响应速度。而在部署阶段,你需要学习如何搭建真实的环境系统,比如学习服务器集群、负载均衡等技术,以确保数据库的可用性和可靠性。 此外,对于初学者来说,推荐一本适合入门的书籍《sql基础教程》是很有帮助的。这本书相对容易理解,特别适合零基础的朋友学习。初学者入门只需要掌握一本书的知识就足够了,而不需要一下子读很多本书。重要的是让初学者能够理解并掌握基本概念和技能。 综上所述,MySQL学习路线包括基础阶段、优化阶段和部署阶段。在学习过程中,推荐使用《sql基础教程》这本书作为入门指南。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MySQL(一)](https://blog.csdn.net/feijiges/article/details/77412824)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MySQL数据库学习路线汇总整理全集(附详细的学习路线介绍图)](https://blog.csdn.net/mysql012/article/details/104138150)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值