MySql查询方式有哪些
新增insert into B select * from A;//将A表的信息通过查询新增到B表中去 聚合查询count;//返回到查询的数据总和 sum;//返回到查询的数据总和(只对数字有意义)
只对数字有意义
avg/max/min;//返回查询数据的平均值/最大值/最小值(只对数字有意义) 分组查询select * from 表名 group by 分组条件;
这里是先执行分组,再根据分组执行每个组的聚合函数。
条件查询having;
使用having可以对经过group by分组的结果进行条件过滤。where是在分组之前执行,如果要对分组之后的结果进行条件筛选,就需要使用having(having搭配group by使用)。
例如:求每种角色的平均薪资,除了吴九。这句话可以重写为:“在分组之前指定条件--去除吴九,然后计算平均薪资。”。
利用having子句筛选平均薪资低于10000的各种角色的薪资:
SELECT role, AVG(salary) AS avg_salary
FROM salaries
GROUP BY role
HAVING AVG(salary) < 10000;
。要先求出平均薪资才能进行筛选。
第一种写法:select * from 表名1,表名2;第二种写法:select * from 表名1 join 表名2 on 条件;
联合查询(较重要)是多表查询,前面的查询都是单表查询。多表查询中的核心操作---笛卡尔积。
笛卡尔积的运算就是将两个表的每条记录分别进行组合,得到一组新的记录。
以上记录并不都是我们想要的结果,我们可以通过筛选得到我们想要的结果。
那么join on后面跟条件和 用where 跟条件有什么区别呢?
from多个表where写法叫做“内连接"
。
使用 join on的写法,既可以表示内连接,还可以表示外连接。
select 列名 from 表1 inner join 表2 on条件;
inner join表示是"
内连接"
其中inner可以省略。
select 列名 from 表1 left join 表2 on条件;
左外连接。
select列from表1 right join表2 on条件;
右外连接。
自连接是指在同一张表连接自身进行查询。一个重写的版本是:列出所有成绩信息,其中“语文”成绩高于“数学”。要先找到语文和数学这两门课程的课程编号(course_id),然后进行下一步操作。然后在比较他俩高低。
select s1.student_id,s1.score,s2.score from score as s1,score as s2 where s1.student_id=s2.student_id and s1.course_id=3 and s2.course_id=1 and s1.score>s2.score;
合并查询union;//这个可自动去重
union all;//这个不可自动去重
该操作符用于取得两个结果集的并集。
例如:查询id小于3,或者名字为“英文”的课程。
select * from course where id<3 union select * from course where name='
英文'
;
或者使用or来实现
select * from course where id<3 or name='
英文'
;
MySql作为一种开源的关系型数据库管理系统,是目前流行度最高的数据库之一。在使用MySql时,如何进行高效的查询成为开发者们需要考虑的问题。本文将为您介绍MySql查询的三种方式。
一、基本查询方式
基本查询方式是MySql数据库最为基础和常用的查询方式。主要通过使用SELECT语句来实现。通过此方式可以查询到指定表中的所有数据或者指定条件的数据。一般的语法为:
SELECT 列名称 FROM 表名称 WHERE 列名称 = 值
在查询语句中,SELECT表示查询的列,FROM表示查询的表,WHERE表示查询的条件。同时,使用通配符*可以查询表中所有的列数据,例如:
SELECT * FROM 表名称;
二、多表查询方式
在实际的开发中,通常会存在多个表之间需要关联查询的情况。这时候,使用多表查询方式就比较合适了。多表查询方式常用的语句有JOIN和UNION。JOIN用于通过连接两个或多个表来查询数据,语法如下:
SELECT * FROM 表1 JOIN 表2 ON 表1.列名 = 表2.列名;
而UNION用于将多个SELECT语句的结果合并成一个结果集,并去除重复行,常用的语法为:
SELECT 列名称 FROM 表名称1 UNION [ALL] SELECT 列名称 FROM 表名称2;
三、子查询方式
在实际开发过程中,有时候需要查询到的结果需要借助另一张表或者子查询结果得到。此时可以通过子查询方式进行查询。子查询可以放在查询语句的WHERE语句中,用于进行复杂的条件筛选。语法如下:
SELECT * FROM 表名称 WHERE 列名称 IN (SELECT 列名称 FROM 表名称 WHERE 列名称 > 值);
其中IN表示包含于,子查询结果必须是一个有序的值列表。同时,子查询的查询结果可以作为外部SELECT语句的WHERE条件。
总结
通过以上的介绍,相信您已经对MySql查询方式有了一定的了解。基础查询方式是最简单常用的方式,而多表查询方式和子查询方式则更适合用于筛选多源数据,完成复杂查询需求。在实际开发中,不同的查询方式会根据具体的业务需求和需求强度进行合理的调整和使用。