Mysql提升篇

这篇具有很好参考价值的文章主要介绍了Mysql提升篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关联查询

内连接:A∩B

select  <字段列表>  from  A inner  join  B  on   A.关联字段  = B.关联字段;

Mysql提升篇

外连接:A / B

select  <字段列表>  from  A  left  join B  on  A.关联字段 = B.关联字段;

Mysql提升篇  

 select  <字段列表>  from  A  right  join B  on  A.关联字段 = B.关联字段;

Mysql提升篇

A U B

Mysql提升篇

select  <字段列表>  from  A  left join B  on  A.关联字段 = B.关联字段

union

select  <字段列表>  from  A  right join B  on  A.关联字段 = B.关联字段

//union默认去重,all union表示显示所有重复值

A -  A∩B

Mysql提升篇

select  <字段列表>  from  A  left join B  on  A.关联字段 = B.关联字段

where  字段字段 is NULL

B - A∩B

Mysql提升篇

select  <字段列表>  from  A  right join B  on  A.关联字段 = B.关联字段

where  字段字段 is NULL

A∪B - A∩B

Mysql提升篇

select  <字段列表>  from  A  left join B  on  A.关联字段 = B.关联字段

where  字段字段 is NULL

union

select  <字段列表>  from  A  right join B  on  A.关联字段 = B.关联字段

where  字段字段 is NULL

自连接:物理上一张表,逻辑上两张表

内连接查询:区分大表和小表,按照数量来区分,小表永远是整表扫描,然后去大表搜索

对于内连接而言,过滤条件写在where后面 和 on 连接条件里面,效果是一样的

select 7大子句

1)from:从哪些表中筛选

2)on:   关联多表查询,去除笛卡尔积

3)where:从表中筛选

4)group by:分组依据

5)having:在统计结果中筛选(with rollup)

6)order by:排序

7)limit:分页

group by

1.合计,with rollup,加在group by后面,合计总数

select  did,count(*)  from  t_employee  group by did  with rollup;

2.分组统计时,select 后面只写和分组统计有关的字段,其他无关字段不要出现

having 

having子句也写条件,where条件是针对原表中的记录的筛选,where后不能加分组函数

having子句是对统计结果的筛选,可以加分组函数

order by

默认:升序 

asc:代表升序

desc:代表降序

limit  m  n

m = (page - 1)*n

每页5条数据,显示第8页

limit 35 5;

子查询 

select的select中嵌套子查询

SELECT did,AVG(salary),
AVG(salary)-(SELECT AVG(salary) FROM t_employee)
FROM t_employee
GROUP BY did;

select的where中嵌套子查询

SELECT ename,salary
FROM t_employee
WHERE salary > (SELECT AVG(salary) FROM t_employee) AND gender = '男';

select的having中嵌套子查询

SELECT t_department.did,dname,AVG(salary)
FROM t_employee RIGHT JOIN t_department
ON t_employee.did = t_department.did
GROUP BY t_department.did
HAVING AVG(salary) >(SELECT AVG(salary) FROM t_employee)
ORDER BY AVG(salary);

 select的from中嵌套子查询

SELECT t_department.did ,dname,AVG(salary)
FROM t_department LEFT JOIN (SELECT did,AVG(salary) FROM t_employee GROUP BY did) temp
ON t_department.did = temp.did;

一个查询还是多行多列的结果,那么就可以把这个查询结果当成一张临时表,
放在from后面进行再次筛选文章来源地址https://www.toymoban.com/news/detail-431185.html

到了这里,关于Mysql提升篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 记录el-select+el-tree复选框,支持模糊查询,懒加载,树父子节点不关联,不全选

    需求:一个机构下拉菜单,一个人员下拉菜单,默认带入当前登录用户的机构和人员。机构下拉菜单为两个接口,模糊查询为一个接口不包含懒加载,默认非模糊查询情况下为一个接口,点击节点懒加载。机构下拉菜单数据变动更新人员下拉菜单数据。日期默认为当天

    2024年01月15日
    浏览(42)
  • Mysql查询(SELECT)

    基本查询:SELECT FROM SELECT 查询字段 FROM 表名; SELECT * FROM userinfo; 条件查询:用where表示查询条件 SELECT 查询字段 FROM 表名  WHERE 条件; 模糊查询:like %匹配0或多个字符,一般不用左模糊(%放在左边,导致索引失效,降低查询效率) SELECT 查询字段 FROM 表名 WHERE username LIKE \\\"%熊

    2024年02月10日
    浏览(38)
  • Mysql select查询练习

    目录 (一)  1、查询出部门编号为30的所有员工:  2、所有销售员的姓名、编号和部门编号: 3、找出奖金高于工资的员工: 4、找出奖金高于工资60%的员工: 5、找出部门编号为10中所有经理,和部门编号为20中所有销售员的详细资料: 6、找出部门编号为10中所有经理,部门

    2024年02月16日
    浏览(62)
  • MySQL之select查询

    SQL: 结构化查询语言 (Structured Query Language),在关系型数据库上执行数据操作、数据检索以及数据维护的标准语言。使用SQL语句,程序员和数据库管理员可以完成如下的任务。 改变数据库的结构 更改系统的安全设置 增加用户对数据库或表的许可权限(root和普通用户的权限)

    2024年02月19日
    浏览(36)
  • MySQL的多表关联查询

    多表关联查询是使用一条SQL语句,将关联的多张表的数据查询出来。 交叉查询就是将多张表的数据没有条件地连接在一起进行展示。 1.1.1 语法 使用交叉查询类别和商品 通过查询结果可以看到,交叉查询其实是一种错误的做法,在查询到的结果集中有大量的错误数据,称交叉

    2024年02月14日
    浏览(37)
  • 【MySQL】——Select查询语句(其二)

    🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:数据结构_IT闫的博客-CSDN博客 🐠数据结构:​​​​​​数据结构_IT闫的博客-CSDN博客 💎C++:C++_IT闫的博客-CSDN博

    2024年02月08日
    浏览(46)
  • 【MySQL联合查询】轻松实现数据关联

    联合查询又称为多表查询,它的基本执行过程就是笛卡尔积 那么什么是笛卡尔积呢? 答:笛卡尔积就是将两张表放在一起进行计算,把第一张表的每一行分别取出来和第二张表的每一行进行连接,得到一个新的行。 举例说明笛卡尔积: 假设我们现在有两张表分别为学生信息

    2024年02月06日
    浏览(43)
  • MySQL跨服务器关联查询

    1. 首先确认服务器的Federated引擎是否开启  修改数据库的配制文件my.ini,(我的my.ini的路径为:D:ProgramDataMySQLMySQL Server 5.7/my.ini),将federated添加到my.ini文件中 CONNECTION还可以使用另外一种方式(需要注意的是SERVER , WRAPPER):

    2024年02月22日
    浏览(40)
  • MySQL多表关联查询练习题

    1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下: CREATE TABLE score ( id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT , stu_id INT(10) NOT NULL , c_name VARCHAR(20) , grad

    2024年01月17日
    浏览(43)
  • Mysql关联查询的几种方式(详解)

    在关系型数据库中,要进行多表查询,一般都会使用join连接。join连接的本质其实类似与集合的交并操作,Mysql实现关联查询常见的几种方式如下; 目录 1、左连接 2、右连接 3、内连接 4、全连接 5、左外连接 6、右外连接 7、全外连接 本次测试表结构和数据: A表 B表   概念说

    2024年02月08日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包