【MySQL】DQL数据查询语言(非常适合MySQL初学者学习)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 【MySQL】DQL数据查询语言(非常适合MySQL初学者学习)

🌟Where条件查询


简单查询


例1:查询用户表中的所有数据

select * from sys_user;


例2:查询用户表中的userid,username

select user_id,user_name from sys_user;

精确条件查询


例1:查询用户表中user_name为‘李学生’的数据。

select * from sys_user WHERE user_name='李学生';


例2:查询用户表中user_id不为102的数据。

select * from sys_user where user_id!=102;
select * from sys_user where user_id<>102;

范围查询


例:查询用户表中age在10~30岁之间的用户。

select * from sys_user where age between 10 and 30;

离散查询


例:查询用户表中age在11,23,20,18这些中的用户数据。

select * from sys_user where age in(11,23,20,18);

模糊条件查询


例:查询用户表中user_name中包好‘王’的数据。

select * from sys_user where user_name like '王%';

聚合查询


  • 查询数据条数:count(*)、count(1)、count(列名)
select count(*) from sys_user;
select count(1) from sys_user;
select count(id) from sys_user;


  • 查询总和:sum(列名)
//查询成绩总和
select sum(grade) from score;


  • 查询平均数:avg(列名)
//查询成绩平均数
select avg(grade) from score;


  • 查询最大值:max(列名)
//查询成绩最大值
select max(grade) from score;


  • 查询最小值:min(列名)
//查询成绩最小值
select min(grade) from score;


  • 拼接字符串、列名:concat(字符串1/列名1,字符串2/列名2)
--连接两个字符串,并将name最为列名
SELECT concat('ab', 'cd') as name;
--连接sys_user表中user_id,user_name两个列值,
--并将id_name作为新列名
select concat(user_id,user_name) as id_name from sys_user
--连接字符串和列值
SELECT CONCAT('userID为: ', user_id) AS id FROM sys_user;

去重查询


例:查询角色表中的角色名称,并去重。

select distinct(role_name) from role;


🌟group by分组查询


  • 将行按字段分组,常用于统计场合
//统计男女性别的人数
select count(*),sex from sys_user group by sex;

🌟having筛选查询


  • 对查询结果进行筛选,位于group by之后。
--统计出用户表中性别人数大于4的性别
SELECT count(*),sex FROM sys_user group by sex 
having count(*)>4

🌟order by排序查询


  • 对查询最终结果排序,位于having之后。
--从角色表中统计角色名称数量大于2的角色并升序排序
select id,role_name,count(*) as 总数 
from role group by id,role_name having 总数>=2
order by id asc;

🌟limit限制查询


  • 位于order by之后,语法格式为limit m,n。m为起始索引0,n为条数。
select * from sys_user limit 4,5;

🌟exists子查询


  • exists后的子查询若查询到数据则返回true,否则返回false。
--查询出公司有员工的部门的详细信息
select * from dept a where exists (select 1 from employee b where a.deptnu=b.deptnu);
select * from dept a where not exists (select 1 from employee b where a.deptnu=b.deptnu);

🌟左连接与右连接查询


左连接


  • 左连接又称为左外连接,left join 是left outer join的简写。左表的记录将会全部表示出来, 而右表只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。
  • 语法格式:left join 表名 on 条件 / left outer 表名 join on 条件
---:列出部门名称和这些部门的员工信息,同时列出那些没有的员工的部门
select a.dname,b.* from dept a left join employee b on a.deptnu=b.deptnu;


右连接


  • 右连接又称为右外连接,right join 是right outer join的简写。右表的记录将会全部表示出来, 而左表只会显示符合搜索条件的记录。左表记录不足的地方均为NULL。
---:列出部门名称和这些部门的员工信息,同时列出那些没有的员工的部门
select b.dname,a.* from employee a right join dept b on b.deptnu=a.deptnu;

🌟内连接与Union查询


内连接


  • 获取两个表中字段互相匹配的记录。
  • 语法格式:INNER JOIN 表名 ON 条件
---查出员工张三的所在部门的地址
select a.addr from dept a inner join employee b on a.deptnu=b.deptnu and b.ename='张
三';


Union查询


  • 查询语句的查询结果结合在一起。
  • 语法格式:… UNION … (去除重复) /… UNION ALL …(不去重复)。
  • 注意事项1:select语句的查询结果的“字段数”必须一致并且字段类型也要一致。
  • 注意事项2:用到order by排序时,需要加上limit(最大条数),需要子句用括号括起来。

🌟写在最后


最后感谢大家的阅读,欢迎大家在评论区讨论mysql相关知识点。最后您的点赞、收藏是我更新优质好文的最大动力。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
SQL 关系型数据库 MySQL
DQL操作MySql
DQL操作MySql
8 0
|
2天前
|
存储 关系型数据库 MySQL
MySQL是怎样存储数据的?
MySQL是怎样存储数据的?
|
3天前
|
存储 关系型数据库 MySQL
学习MySQL(5.7)第二战:四大引擎、账号管理以及建库(干货满满)
学习MySQL(5.7)第二战:四大引擎、账号管理以及建库(干货满满)
|
4天前
|
SQL 关系型数据库 MySQL
这篇文章带你了解:如何一次性将Centos中Mysql的数据快速导出!!!
这篇文章带你了解:如何一次性将Centos中Mysql的数据快速导出!!!
|
4天前
|
存储 SQL 关系型数据库
MySQL的优化利器⭐️索引条件下推,千万数据下性能提升273%🚀
以小白的视角探究MySQL索引条件下推ICP的优化,其中包括server层与存储引擎层如何交互、索引、回表、ICP等内容
MySQL的优化利器⭐️索引条件下推,千万数据下性能提升273%🚀
|
5天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
47 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
5天前
|
存储 关系型数据库 MySQL
MySQL字段的字符类型该如何选择?千万数据下varchar和char性能竟然相差30%🚀
本篇文章来讨论MySQL字段的字符类型选择并深入实践char与varchar类型的区别以及在千万数据下的性能测试
MySQL字段的字符类型该如何选择?千万数据下varchar和char性能竟然相差30%🚀
|
5天前
|
关系型数据库 MySQL 数据管理
MySQL通过 bin-log 恢复从备份点到灾难点之间数据
MySQL通过 bin-log 恢复从备份点到灾难点之间数据
|
10天前
|
关系型数据库 MySQL 数据库
【MySQL-10】DCL-数据控制语言-【管理用户&权限控制】 (语法语句&案例演示&可cv案例代码)
【MySQL-10】DCL-数据控制语言-【管理用户&权限控制】 (语法语句&案例演示&可cv案例代码)
【MySQL-10】DCL-数据控制语言-【管理用户&权限控制】 (语法语句&案例演示&可cv案例代码)
|
10天前
|
SQL 关系型数据库 MySQL
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)
【MySQL】DQL-案例练习-DQL基本介绍&语法&执行顺序(代码演示)