MySQL   发布时间:2022-05-15  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了mysql数据库的查询语句是什么大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

mysql数据库的查询语句是什么

本教程操作环境:windows7系统、MysqL8版本、Dell G3电脑。

单表查询

1、普通查询

(1)命令:SELEct * from <表名>;//通匹

(2)命令:SELEct <要查询的字段> from <表名>;

2、去重查询(disTinct)

命令:SELEct disTinct <要查询的字段> from <表名>

3、排序查询(order by)

升序:asc

降序:desc

降序排列命令:SELEct <要查询的字段名> from <表名> order by <要查询的字段名> desc

不加desc一般默认为升序排列

4、分组查询(group by)

命令:SELEct <按什么分的组>, Sum(score) from <表名> group by <按什么分的组>

假设现在又有一个学生成绩表(result)。要求查询一个学生的总成绩。我们根据学号将他们分为了不同的组。

命令:

@H_236_61@mysqL>SELEct id, Sum(score) from result group by id;

多表查询

一、等值查询

现在有两个表

mysql数据库的查询语句是什么

mysql数据库的查询语句是什么

现在要查询年龄小于20岁学生的不及格成绩

语句:SELEct stu.id,score from stu,result where stu.id = result.id and age < 20 and score < 60;

它的查询如下图所示:

mysql数据库的查询语句是什么

可见等值查询效率太低

二、连接查询

1、外连接查询

(1)左外连接查询

假设我们依旧使用的是上面的两个表,任然查询年龄小于20岁学生的不及格成绩

我们利用左外连接查询,先将学生表中所有年龄小于20岁的学生取出来,再在成绩表中将所有成绩小于60的学生取出来,然后再进行配对,我们会发现效率大大得提高,只用匹配四次就可以找到。

如下图所示:

mysql数据库的查询语句是什么


语句为:

select a.id,score
from
(SELEct id,age from stu where age < 20) a (过滤左表信息)
left join
(SELEct id, score from result where score < 60) b (过滤右表信息)
on a.id = b.id;

外连接就是左表过滤的结果必须全部存在。如果存在左表中过滤出来的数据,右表没有匹配上,这样的话右表就会出现NULL;

(2)右外连接查询

select a.id,score
 from
 (SELEct id,age from stu where age < 20) a (过滤左表信息)
 right join
 (SELEct id, score from result where score < 60) b (过滤右表信息)
 on a.id = b.id;

外连接就是左表过滤的结果必须全部存在

如图:

mysql数据库的查询语句是什么

我们发现过滤出来的表进行的匹配只有两条满足条件(红色代表条件满足),但最后的结果却是:

mysql数据库的查询语句是什么

左表不匹配的数据改为空,右表过滤出来的数据都要存在。

(3)全外连接查询

结合了左外连接和右外连接,使得左表和右表的数据都存在。

2、内连接查询

只筛选匹配结果

比如过滤的结果如下:

mysql数据库的查询语句是什么

最后的结果为:

mysql数据库的查询语句是什么

只匹配我们需要的结果

语句为:

select a.id,score
 from
 (SELEct id,age from stu where age < 20) a (过滤左表信息)
 inner join
 (SELEct id, score from result where score < 60) b (过滤右表信息)
 on a.id = b.id;

【相关推荐:mysql视频教程】

大佬总结

以上是大佬教程为你收集整理的mysql数据库的查询语句是什么全部内容,希望文章能够帮你解决mysql数据库的查询语句是什么所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: