二、MySQL基础语法重点!(增删查改)_数据库增删改查基本语csdn(2)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数HarmonyOS鸿蒙开发工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年HarmonyOS鸿蒙开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img

img
img
htt

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上HarmonyOS鸿蒙开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注鸿蒙获取)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

select workaddress as ‘工作地址’ from emp;        对于单个字段选取别名
select distinct emp.workaddress as ‘工作地址’ from emp;        #去除重复字段名


![](https://img-blog.csdnimg.cn/direct/920f44ffcc18422fad5b07297bf49af1.png)


###  (二)条件查询


 ![](https://img-blog.csdnimg.cn/direct/328d0dae3e864d029eba5cac2825e501.png)




#查询表中所有数据
select * from emp;
#查询表中年龄=18
select * from emp where age=18;
#查询表中年龄小于等于20
select * from emp where age<=20;
#查询表中身份证号为空
select * from emp where idcard is null;
#查询身份证不为空
select * from emp where idcard is not null;
#查询年龄不等于18
select * from emp where age<>18;
#查询年龄大于等于15小于等于18
select * from emp where age>=15 and age<=18;
select * from emp where age between 15 and 20;        #between…and…之间只能由小到大



select * from emp where gender=‘女’ and age < 30;
select * from emp where age=18 or age=38 or age=30;
select * from emp where age in(18,20,30); #在in中满足条件
select * from emp where name like ‘'; #模糊查询两个字的员工姓名
select * from emp where name like '
_’;
select * from emp where idcard like ‘%0’; #查询身份证号最后一位为0


 ![](https://img-blog.csdnimg.cn/direct/acf7c959bc394fdeac68c50e72b633d2.png)


###  (三)聚合函数


![](https://img-blog.csdnimg.cn/direct/06c4c76ce0804923a645d085198c83bc.png)


![](https://img-blog.csdnimg.cn/direct/5e085bdb99c24f9a8cdb3009db9bc51a.png)


**注意:null值不参与所有聚合行数运算;**



select count(*) from emp;
select count(name) from emp; #统计字段数量
select count(emp.idcard) from emp;
select avg(emp.age) from emp; #查询年龄平均值
select max(emp.age) from emp; #查询年龄最大值
select min(emp.age) from emp; #查询年龄最小值
select sum(age) from emp where workaddress=‘北京’; #查询北京地区年龄之和


![](https://img-blog.csdnimg.cn/direct/1b5717209cab485fac12136aaed0fce9.png)


### (四)分组查询


![](https://img-blog.csdnimg.cn/direct/817aa1e0b72f42919323aefe2d9a56c6.png)


案例语句: 



select gender,count() from emp group by gender;
#根据性别分组,统计男性员工和女性员工人数
select gender,avg(age) from emp group by gender;
#根据性别分组,统计男性员工和女性员工平均年龄
select workaddress,count(
) from emp where age<45 group by workaddress having count()>=2;
#查询年龄小于45,并根据工作地址来分组,获取员工数量大于等于2的工作地址
select workaddress,count(
) as address_count from emp where age<45 group by workaddress having address_count>=2;


![](https://img-blog.csdnimg.cn/direct/3d232099777c4e4da0eebf7e01422254.png)


###  (五)排序查询


![](https://img-blog.csdnimg.cn/direct/c6e8583c1941495e8c29eeb51c32e3f7.png)


 案例语句:



select * from emp order by age asc;
#根据年龄升序
select * from emp order by age desc ;
select * from emp order by entrydate desc ;
#根据工作时间降序
select * from emp order by entrydate asc ;
#根据年龄进行升序,年龄相同按工作日期降序排
select * from emp order by age asc ,entrydate desc ;


![](https://img-blog.csdnimg.cn/direct/7f379403cbda40218efba19e1facbbc1.png)


### (六)分页查询


![](https://img-blog.csdnimg.cn/direct/fb4ccec7e4524602ae56c5719ff2fc6a.png) **注意:**  
**起始索引从0开始,起始索引= (查询页码 - 1) \* 每页显示记录数;**


**分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT;**


**如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。**


 案例语句:



select * from emp limit 0,5;
#查询第一页员工数据,每页展示5条记录
select * from emp limit 10,5;
#查询员工表数据第二页,展示5条数据 ------》注意:(页码数-1)*页面展示数量


![](https://img-blog.csdnimg.cn/direct/758744766524411b95e56ee4fb507d0a.png)


**案例练习:**


![](https://img-blog.csdnimg.cn/direct/9464b5a90bf5475faef5f337cd8a1e74.png)


案例实现:



select * from emp where gender=‘女’ and age in(18,20,30);
#统计表中性别为女,年龄在18,20,30的人

select * from emp where gender=‘男’ and (age between 10 and 30) and name like ‘__’;
#统计表中性别为男,年龄在10到30之间以及姓名两个字

select gender,count(*) from emp where age<60 group by gender;
#统计表中年龄小于60,男性和女性员工人数

select name,age from emp where age<=30 order by age asc ,entrydate desc ;
#查询数据表中所有年龄小于等于30的人员性别和年龄,并对查询年龄按升序排序,年龄相同按入职时间降序排序

select * from emp where gender=‘男’ and (age between 20 and 40) order by emp.age ,entrydate desc limit 0,5;
#查询员工性别为男,且年龄在20-40以内的前52位员工信息,对查询结果按年龄升序排序,年龄相同按入职时间降序排


###  (七)总结


![](https://img-blog.csdnimg.cn/direct/26fa524b89e247c9a0598a55542fce45.png)


![](https://img-blog.csdnimg.cn/direct/adafe9027da74376a8e167891e0a0f75.png)


##  三、SQL的数据控制语言(DCL)


![](https://img-blog.csdnimg.cn/direct/ea681a02caac42b59cf46f0da3158f62.png)


![](https://img-blog.csdnimg.cn/direct/b93d34b6edb7445da7bd94f6471790ef.png)


实战案例:


![](https://img-blog.csdnimg.cn/direct/367d51090a354085b4d313951a56862d.png)


![](https://img-blog.csdnimg.cn/direct/90d361ca1c224b099dec7d5a95f7a697.png)


可以到自己数据库中查看用户数 



#创建用户itcast只能够在当前主机localhost访问,密码为123456
create user ‘itcast’@‘localhost’ identified by ‘123456’;
#创建用户zch,可以在任何主机上访问数据库,密码为123456
create user ‘zch’@‘%’ identified by ‘123456’;
#修改用户zch访问密码为123456789
alter user ‘zch’@‘%’ identified with mysql_native_password by ‘123456789’; #语句有误
set password for ‘zch’@‘%’ = password (‘123456789’);
set password for ‘zch’@‘%’ = password (‘123456’);

#删除用户itcast
drop user ‘itcast’@‘localhost’;


**注意:**


* **主机名可以使用 % 通配。**
* **这类SQL开发人员操作的比较少,主要是DBA(DatabaseAdministrator数据库管理员)使用。**


权限控制 


![](https://img-blog.csdnimg.cn/direct/48db28a81bd244dcb75ff69b8a5a7dec.png)


**注意:**


* 多个权限之间,使用逗号分隔
* **授权时,数据库名和表名可以使用\*进行通配,代表所有。**


案例:


![](https://img-blog.csdnimg.cn/direct/5870d812ff1149bca5147e38fb7053e9.png)



#查询权限
show grants for ‘zch’@‘%’;
#授予权限
grant all on itcast.* to ‘zch’@‘%’;
#撤销权限
revoke all on itcast.* from ‘zch’@‘%’;


 查询权限的结果:![](https://img-blog.csdnimg.cn/direct/44acdb501fe44273aa538a89043bdb77.png)


## **重点这是以上使用的MySQL代码:**



select * from emp;
select workno,name,age from emp;
select id,workno,name,gender,age,idcard,workaddress,entrydate from emp;
select emp.workaddress from emp;
select emp.workaddress as ‘工作地址’ from emp;
select distinct emp.workaddress as ‘工作地址’ from emp;
select * from emp;
select * from emp where age=18;
select * from emp where age<=20;
select * from emp where idcard is null;
select * from emp where idcard is not null;
select * from emp where age<>18;
select * from emp where age>=15 and age<=18;
select * from emp where age between 15 and 20;
select * from emp where gender=‘女’ and age < 30;
select * from emp where age=18 or age=38 or age=30;
select * from emp where age in(18,20,30); #在in中满足条件
select * from emp where name like ‘'; #模糊查询两个字的员工姓名
select * from emp where name like '
_’;
select * from emp where idcard like ‘%0’; #查询身份证号最后一位为0

select count() from emp;
select count(name) from emp; #统计字段数量
select count(emp.idcard) from emp;
select avg(emp.age) from emp; #查询年龄平均值
select max(emp.age) from emp; #查询年龄最大值
select min(emp.age) from emp; #查询年龄最小值
select sum(age) from emp where workaddress=‘北京’; #查询北京地区年龄之和
select emp.gender,count(
) from emp order by gender;
select * from emp;
select gender,count() from emp group by gender; #根据性别分组,统计男性员工和女性员工人数
select gender,avg(age) from emp group by gender; #根据性别分组,统计男性员工和女性员工平均年龄
select workaddress,count(
) from emp where age<45 group by workaddress having count()>=2;
#查询年龄小于45,并根据工作地址来分组,获取员工数量大于等于2的工作地址
select workaddress,count(
) as address_count from emp where age<45 group by workaddress having address_count>=2;
select * from emp order by age asc;
#根据年龄升序
select * from emp order by age desc ;
select * from emp order by entrydate desc ;
#根据工作时间降序
select * from emp order by entrydate asc ;
#根据年龄进行升序,年龄相同按工作日期降序排
select * from emp order by age asc ,entrydate desc ;
select * from emp limit 0,5;
#查询第一页员工数据,每页展示5条记录
select * from emp limit 10,5;
#查询员工表数据第二页,展示5条数据 ------》注意:(页码数-1)*页面展示数量

select * from emp where gender=‘女’ and age in(18,20,30);
#统计表中性别为女,年龄在18,20,30的人
select * from emp where gender=‘男’ and (age between 10 and 30) and name like ‘__’;
#统计表中性别为男,年龄在10到30之间以及姓名两个字
select gender,count(*) from emp where age<60 group by gender;
#统计表中年龄小于60,男性和女性员工人数
select name,age from emp where age<=30 order by age asc ,entrydate desc ;
#查询数据表中所有年龄小于等于30的人员性别和年龄,并对查询年龄按升序排序,年龄相同按入职时间降序排序
select * from emp where gender=‘男’ and (age between 20 and 40) order by emp.age ,entrydate desc limit 0,5;
#查询员工性别为男,且年龄在20-40以内的前52位员工信息,对查询结果按年龄升序排序,年龄相同按入职时间降序排

e<60 group by gender;
#统计表中年龄小于60,男性和女性员工人数
select name,age from emp where age<=30 order by age asc ,entrydate desc ;
#查询数据表中所有年龄小于等于30的人员性别和年龄,并对查询年龄按升序排序,年龄相同按入职时间降序排序
select * from emp where gender='男' and (age between 20 and 40) order by emp.age ,entrydate desc limit 0,5;
#查询员工性别为男,且年龄在20-40以内的前52位员工信息,对查询结果按年龄升序排序,年龄相同按入职时间降序排
  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值