查询语句:1、“select * from 表名;”,可查询表中全部数据;2、“select 字段名 from 表名;”,可查询表中指定字段的数据;3、“select distinct 字段名 from 表名”,可对表中数据进行去重查询。
本教程操作环境: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)。要求查询一个学生的总成绩。我们根据学号将他们分为了不同的组。
命令:
mysql>select id, Sum(score) from result group by id;
多表查询
一、等值查询
现在有两个表:
现在要查询年龄小于20岁学生的不及格成绩。
语句:select stu.id,score from stu,result where stu.id = result.id and age
它的查询如下图所示:
可见等值查询效率太低
二、连接查询
1、外连接查询
(1)左外连接查询
假设我们依旧使用的是上面的两个表,任然查询年龄小于20岁学生的不及格成绩
我们利用左外连接查询,先将学生表中所有年龄小于20岁的学生取出来,再在成绩表中将所有成绩小于60的学生取出来,然后再进行配对,我们会发现效率大大得提高,只用匹配四次就可以找到。
如下图所示:
语句为:
select a.id,score from (select id,age from stu where age <p>左外连接就是<strong>左表过滤的结果必须全部存在</strong>。如果存在左表中过滤出来的数据,右表没有匹配上,这样的话右表就会出现NULL;</p><p><strong>(2)右外连接查询</strong></p><pre class="brush:js;toolbar:false">select a.id,score from (select id,age from stu where age <p>左外连接就是<strong>左表过滤的结果必须全部存在</strong></p><p>如图:</p><p><img alt="在这里插入图片描述" src="https://img.php.cn/upload/article/000/000/024/c850ef08b3e941d46675fd314ced3fc2-4.png"></p><p>我们发现过滤出来的表进行的匹配只有两条满足条件(红色代表条件满足),但最后的结果却是:</p><p><img alt="在这里插入图片描述" src="https://img.php.cn/upload/article/000/000/024/5cb5f9b0cd556c33fdea42421dba0edd-5.png"></p><p>左表不匹配的数据改为空,右表过滤出来的数据都要存在。</p><p><strong>(3)全外连接查询</strong></p><p>结合了左外连接和右外连接,使得左表和右表的数据都存在。</p><p><strong>2、内连接查询</strong></p><p>只筛选匹配结果</p><p>比如过滤的结果如下:</p><p><img alt="在这里插入图片描述" src="https://img.php.cn/upload/article/000/000/024/5cb5f9b0cd556c33fdea42421dba0edd-6.png"></p><p>最后的结果为:</p><p><img alt="在这里插入图片描述" src="https://img.php.cn/upload/article/000/000/024/5cb5f9b0cd556c33fdea42421dba0edd-7.png"></p><p>只匹配我们需要的结果</p><p>语句为:</p><pre class="brush:js;toolbar:false">select a.id,score from (select id,age from stu where age <p>【相关推荐:<a href="https://www.php.cn/course/list/51.html" target="_blank" textvalue="mysql视频教程">mysql视频教程</a>】</p>