MySQL Select
查询分类
单表查询:简单查询
多表查询:连接查询
联合查询:多个查询结果汇总
查询的组成
投影查询:挑选要显示的字段
select array1,array2,... from tb_name;
选择查询:挑选符合条件的行
select * from tb_name where-clause
where-clause:布尔条件表达式= # 等值比较 # 等值比较,包括与NULL的安全比较或!= # 不等值比较,>= # 其它比较符IS NULL # 是否为空值IS NOT NULL # 是否不为空值LIKE # 支持的通配符有%和_RLIKE或REGEXP # 正则表达式匹配IN # 判指定字段的值是否在给定的列表中BETWEEN … AND …# 在某取值范围内
组合条件查询
NOT,!# 非AND,&& # 和OR,|| # 或
聚合函数查询
SUM() # 求总和AVG() # 求平均值MAX() # 求最大值MIN() # 求最小值COUNT() # 求记录总数#注:count(*)效率最低,可指定某一字段求总数,如count(Name)
查询语句
语法
select ... from tb_name where-clause [others-clause]
各子句类型及作用
where # 条件过滤group by # 对查询结果分组having # 对group by的结果进行条件过滤order by # 排序limit # 限制输出行数,如”limit 2“表示只显示前2行,“limit 2,3”表示偏移前2行,显示3-5行
其它修饰符
123 |
|
select的执行流程
from-->where-->group by-->having-->order by-->select-->limit |
多表查询
说明
事先将两张或多张表连接(join),根据连接的结果进行查询
语法
select … from tb1 Join_Type tb2 [on (Join_Condition)]连接类型有:cross join,inner join,left join和right join等
连接分类
cross join:交叉连接,又称笛卡尔乘积
表1中的记录(共M条)与表2中的记录(共N条)逐一连接,交叉连接数据量较大,共M*N条记录;
select * from students,classes# 注:不带where子句哦
inner join:内连接,根据连接判断的运算符又可分类如下:
等值连接:根据表1和表2中某字段值相等进行连接,其查询结果中列出被连接表中的所有列,包括其中的重复列
select * from students,classes# 注:不带where子句哦
条件比较连接:在连接条件中使用除等号(=)运算符之外的运算符,如>,>=,等
自然连接:在连接条件中使用等号(=)运算符,且只选择结果集中的部分列,并删除连接表中的重复列
select a.name,p.pub_name from authors as a inner join publishers as p on a.city=p.city
外连接:返回查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接)、右表(右外连接)或两个边接表(全外连接)中的所有数据行
左外连接:返回包括左表中的所有记录和右表中联结字段相等的记录
tb1 LEFT JOIN tb2 ON 连接条件
右外连接:返回包括右表中的所有记录和左表中联结字段相等的记录
tb1 RIGHT JOIN tb2 ON 连接条件
全外连接:连接运算两边的关系中的元组都保留,MySQL不支持此种连接
自连接:同一表中某字段的多次比较使用
select stu1.Name as StuName,stu2.Name as TeachName from students as stu1,students as stu2 where stu1.TeacherID=stu2.StuID;
子查询
说明:
在外层查询中嵌套的内层查询叫做子查询,类型有:
where型子查询:把内层查询结果当做外层查询的比较条件
select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods)# 子查询的返回值只能有1个
exists型子查询:把内层查询结果拿到外层,看外层的查询是否成立
select cat_id,cat_name from category where exists(select * from goods where goods.cat_id = category.cat_id);# 可通过转换为内连接查询:select cat_id,cat_name from category inner join goods on goods.cat_id=category.cat_id;# 与exists类似的还有in子查询,表示外层查询条件在一个内层查询的结果集内select * from user_core where userId in (select userId from user_classes where class_id=’A001’);
from型子查询:把内层的查询结果供外层查询使用
select name,avg(score) from stu where name in (select name from (select name,count(*) as gk from stu having gk >=2)) group by name;
注:MySQL不擅长于子查询的优化,故应避免使用子查询
联合查询
说明
把两个或多个查询语句的结果合并成一个结果进行输出,前提是多个查询结果的输出字段是一致的
语法
SELECT clause UNION SELECT clause UNION …
union:会将多个表的查询结果合并后进行排序,同时删除重复的行,故效率略慢;union和union all的区别
union all:只是简单的将多个表的结果合并后返回,不删除重复行,效率较高
实例
涉及的表结构:
查询需求有:

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

win11系统各自带了就近共享、投放、投影、共享功能,这些功能该怎么使用?有什么区别呢?详细请看下文介绍。1、就近共享官方文档:就近共享-MicrosoftCommunity在Windows中与附近的设备共享内容(microsoft.com)作用:两台电脑通过蓝牙传输文件。(可用于无WiFi,无u盘的情况下)前提:两台电脑步骤:1)右键→转到设置2)系统→附件任何人(是让其他设备可以发现这个设备)3)两台电脑都这样设置4)右键需要发送的文件,点击共享。5)点击发现的另一台电脑即可传输文

在使用我们的投影功能的时候,我们可以将手机的屏幕画面投影到电脑屏幕上,只需要通过网络或蓝牙连接手机和电脑,然后在电脑上使用投屏功能就可以实现了。win10怎么投影到此电脑:1、从开始菜单进入到设置中,选择进入。2、然后我们在坐标能够找到选项,点击进入。3、然后我们对其进行设置。4、设置完成后,按下+快捷键,然后选择。5、然后我们打开手机的设置,能够看到,有些手机上是更多的连接方式,进入进行设置。6、我们找到的选项,进入选择好自己的电脑设备。7、此时,我们电脑上会出现提示框,我们点击就行了。

1、将投影仪与iPhone连接在同一网络,从屏幕右上角向下轻扫,打开控制中心,点击【屏幕镜像】。2、在屏幕镜像的扫描结果中,找到投影仪设备进行镜像即可。

win10投影仪只显示桌面背景,不显示桌面图标,是什么问题你?相信有不少小伙伴都遇见过这个问题,其实这个问题很好解决的,下面跟小编一起来看看吧。win10投影不显示桌面图标解决办法你这是开启了双屏扩展模式,这不是问题,只是一种显示模式而已,也就是说你现在的电脑拥有两个显示屏,一个是你电脑的主屏幕,另一个是你投影仪投出来的屏幕,而你当前系统默认选择了双屏扩展模式。1、我们可以同时按下键盘上的“win+P”键。2、在主屏幕桌面的一侧(根据你的系统版本弹出方式会有所有不同)弹出如下4个选项。仅电脑屏幕

在使用win10投影的功能时,很多的用户们表示在使用这项功能等时候,投影功能并没有任何反应,或者无法正常的进行使用等,这时候需要先排查系统功能、再确认投影仪工作情况即可解决。win10投影没反应怎么办:1、如果是手机投影到电脑,请确保你的手机和电脑在同一WiFi网络下。2、在电脑端的设置中,在右侧将设置为,将关闭。3、如果还是无法解决,请重新安装网卡驱动,卸载重新安装,或者直接更新。4、如果是连接投影仪,请检查VGA的线是否出现了问题,是否接好。5、如果电脑是双系统的话,也会导致显卡驱动冲突致使

在使用win10投影仪的时候,我们就需要每次从设置中或者控制面板中去打开,操作起来非常的麻烦,那么投影仪有没有快捷键,这个当然是有的哦,快来看看快捷键的介绍吧~win10投影快捷键是什么:1、用户们在键盘上按下+就能快速打开投影设置了。2、然后我们选择需要的方式,就能够进行投影了哦。相关文章:win10怎么投影到此电脑>>>win10投影仪怎么铺满全屏>>>

win10用户一般喜欢使用Windows10系统的投影功能。如果发现连接功能菜单内并未显示“投影到此电脑”选项。不要担心,下面为您详细介绍如何轻松解决该问题!请按照以下步骤操作:win10家庭版投影到此电脑选项没有了怎么办1、首先,点击左下角的专用图标,会看到弹出多个选项菜单。2、再次点击任何一个选项按钮以进行确认,进入页面。3、在主页中,找到并点击按钮,点击选项卡。4、此时,我们将会发现在这个选项中存在着两种不同类型的投影设置。5、为了确保在任何场合均可顺利实现投屏功能,勾选即可。

投影功能愈来愈多用户使用,不但是由于投影功能可以让系统软件共享屏幕,并且很方便实际操作,有一些用户就很喜欢应用投影功能来开展演试。可是有些用户应用该功能的过程中发觉这一功能表明灰色不能选,因此win10投影到此电脑是灰色的怎么做呢,实际上用户们能通过win10投影到此电脑是灰色的怎么解决方式简介的办法来处理该情况。win10投影到此电脑是灰色的怎么做1、按Win+i键盘快捷键,开启Windows设置,输入框中能够搜索设定,还可以立即点击系统软件(表明、响声、通告、开关电源)。系统软件主页设置对话
