Hive) 25 MyBatis-Plus Mybatis-Plus 代码生成器 一、主外键特点 主表的主键和从表的外键形成主外关系 从表外键的值是对主表主键的引用。...从表外键类型,必须与主表主键类型一致。 建立外键的表必须是InnDB型,不能是临时表。 外键名不能用引号。FK_ID错误。应为FK_ID。、 添加数据时:从表的外键,只能添加主表主键中存在的数据。...删除数据时:需要先删除从表中与主表关联数据,再删除主表中数据。...category,id只有1时,从表product的cid,只能添加值为1的数据。...当返回值为TRUE时,外层查询才会执行。
外连接分为两种:左外连接(left join),右外连接(right join) 左连接:左表是主表 右连接:右表是主表 流程: 1、 确定连接主表:左连接left join左边的表为主表;right...NULL 基本语法: 左连接: left join on ; 右连接: right join on ; mysql> select * from...左连接和右连接其实可以互相转换,但是数据对应的位置(表顺序)会改变 外连接中主表数据记录一定会保存:连接之后不会出现记录数少于主表(内连接可能) 应用 常用的数据获取方式:获取主表和对应的从表数据(关联...当一个查询是另一个查询的条件时,称之为子查询 子查询和主查询的关系 子查询嵌入到主查询中 子查询辅助主查询,作为条件或数据源 子查询是一条完整的可独立存在的select语句 子查询按功能分类 标量子查询...,从表仅约束不能插入主表不存在的数据,外键约束约束了例如: 从表插入数据,不能插入对应主表主键不存在的数据 主表删除数据,不能删除被从表引入的数据 外键约束保证了数据的完整性(主表与从表数据一致),外键强大的数据约束作用可能导致数据在后台变化的不可控
它用于返回关键字(LEFT JOIN)左表中所有的记录,以及右表中符合连接条件的记录。当左表的某行记录在右表中没有匹配的记录时,右表相关的记录将会设为NULL。...它用于返回连接关键字(RIGHT JOIN)右表(主表)中所有的记录,以及左表(从表)中符合连接条件的记录。 当右表的某行记录在左表中没有匹配的记录时,左表中相关的记录将设为空值。...外连接与内连接的区别是,内连接只能获取符合连接条件的记录,而外连接不仅可以获取符合连接条件的记录,还可以保留主表与从表不能匹配的记录。 右连接查询正好与左连接相反。...因此,在应用外连接时仅调整关键字(LEFT或RIGHT JOIN) 和主从表的位置,即可实现左连接和右连接的互换使用。...一个具有外键约束的丛表在插入数据时,外键字段的值会受主表数据的约束,保证从表插入的数据必须符合约束规范的要求。例如,从表外键字段不能插入主表中不存在的数据。
如果不想产生笛卡尔积现象,就需要添加有效的表连接条件。拿上述例子来说,左表boyfriend_id只有和右边id相等时,才代表她们的男朋友。...2.连接查询知识点概括 1)什么是连接查询? 在实际开发中,大多数的情况下都不是从单表中查询数据,一般都是多张表联合查询取出最终的结果。...sq192标准:仅支持内连接; sq199标准【推荐】:仅仅支持内连接+外连接(仅支持左外和右外)+交叉连接; ② 按功能分类 内连接:等值连接、非等值连接、自连接; 外连接:左外连接、右外连接、全外连接...当副表中的数据没有和主表中的数据匹配上,副表自动模拟出NULL与之匹配。 外连接最重要的特点是:主表的数据,无条件的全部查询出来。...2)外连接的分类 左连接有右连接的写法,右连接也会有对应的左连接的写法。因此,我们在学习MySQL的过程中,没有必要既学习左连接又学习右连接。 左外连接(左连接):表示左边的这张表是主表。
笛卡尔积 Demo: 左,右连接,内,外连接 l 内连接: 要点:返回的是所有匹配的记录。 2....外连接有左连接和右连接两种。...要点:返回的是所有匹配的记录 外加 每行主表外键值为null的一条记录。辅表所有列为null值。...select * from a left join b on a.x=b.x order by a.x //左外连接或称左连接 select * from a right join b on a.x=...行级过滤 否 group by 分组说明 仅在按组计算聚集时使用 having 组级过滤 否 order by 输出排序顺序 否 limit 要检索的行数 否 发布者:全栈程序员栈长,转载请注明出处
,必须保证匹配到才保存 6、内连接可以在数据匹配完成后,使用where条件来限制,效果与on一样(推荐使用on). using 关键字 是在连接查询中用来代替对应的on关键字的,进行条件匹配 1、在连接查询时...基本语法: 表1 cross join 表2; 外连接 outer join,按照某一张表作为主表(表中所有记录在最后都会保留),根据条件去连接另外一张表 外连接分为两 种:左外连接(left join...),右连接(right join) 左连接:左表是主表有连接:有表是主表 1、确定连接主表:左连接就是 left join 左边的表为主表;right join 就是右边为主表 2、拿主表的每一条记录,...4、如果主表记录在从表中一条都没有匹配成功,那么也要保留该记录,从表对应的字段值都为null; 基本语法: 左连接:主表 left join 从表 on 连接条件; 右连接: 主表 right join...从表 On 连接条件; 左连接对应的主表数据在左边;右连接对应的主表数据在右边; 事务概念 事务就是有一组SQL语句组成的业务逻辑,这组语句要么全执行,要么全不执行,不存在部分执行的情况。
,称为连接字段 当我们查询的数据、字段值分布在不同的表中时,这种情况下需要使用多关系表的连接查询 连接类型:内连接(INNER JOIN)、外连接(OUTER JOIN)、交叉连接()、自然连接() 连接谓词...:连接两个表的条件 内连接查询 关键字(INNER JOIN),功能:仅返回连接条件为真的行,有 from 和 where 字句两种方式 这里要注意,两张表连接时,同名属性需要使用前缀区分(列名唯一不需要...外连接中,符合连接条件的数据返回到结果集,不符合连接条件的列会被系统用 NULL 填充,再返回结果集 *注:bit 类型无 NULL 值,会填充 0 后返回结果集中 使用主表所在的方向位置判断连接类型...,例如:主表在左,即为左外连接 复习下关系运算中,连接的相关知识 那么上图两张表分别进行外、左外、右外连接后的结果为 举例:查询所有学生选课情况,包括未选课学生信息 左外连接 left join -...XXX') 示例中,prof 的值由子查询查出结果后返回给父查询做结果,上述语句等价为 select tno,tn from t where prof=‘子查询 prof 值’ 返回一组值 比较运算符仅适用于查询所需返回值为单个值得情况
外连接有左连接和右连接两种。...要点:返回的是所有匹配的记录 外加 每行主表外键值为null的一条记录。辅表所有列为null值。...select * from aa left join bb on aa.x=bb.x order by aa.x //左外连接或称左连接 select * from aa right join bb...on aa.x=bb.x order by aa.x //右外连接或称右连接 select子句顺序 子句 说明 是否必须使用 select 要返回的列或表示式 是 form 从中检索数据的表 仅在从表选择数据时使用...where 行级过滤 否 group by 分组说明 仅在按组计算聚集时使用 having 组级过滤 否 order by 输出排序顺序 否 limit 要检索的行数 否 发布者:全栈程序员栈长,转载请注明出处
内连接查询 内连接查询是最常见的连接查询,内连接查询可以查询两张或两张以上的表 内连接:[inner] join:从左表中取出每一条记录,去右表中与所有的记录进行匹配: 匹配必须是某个条件在左表中与右表中相同最终才会保留结果...基本语法:左表 [inner] join 右表 on 左表.字段 = 右表.字段; on表示连接条件: 条件字段就是代表相同的业务含义(如my_student.c_id和my_class.id) 当两个表中存在相同意义的字段的时候...左连接 left join: 左外连接(左连接), 以左表为主表 基本语法: from 左表 left join 右表 on 左表.字段 = 右表.字段; 左表不管能不能匹配上条件,最终都会保留:能匹配...right join: 右外连接(右连接), 以右表为主表 基本语法: from 左表 right join 右表 on 左表.字段 = 右表.字段; 右表不管能不能匹配上条件,最终都会保留:能匹配...子查询通常会使复杂的查询变得简单,但是相关的子查询要对基础表的每一条数据都进行子查询的动作,所以当表单中数据过大时,一定要慎重选择 带in关键字的子查询 使用in关键字可以将原表中特定列的值与子查询返回的结果集中的值进行比较
二、外键(foreign key) 外键约束:用于限制主表与从表数据完整性。...,称之为从表(子表),外键指向的表,称之为主表(父表)。...] [主表记录更新时的动作],此时需要检测一个从表的外键需要约束为主表的已存在的值。...,则从表中相关联的记录都将被删除,如果主表修改记录,则从表记录也将被修改 set null:将外键设置为空 no action:什么都不做 四、链接查询 在讲解第一个问题关系的时候,我们提到了,如果要查找张三的语文成绩... 有时在信息查询时需要进行对自身连接(自连接)自连接是单边操作,所以我们需要为表定义别名。
当一个查询是另一个查新的条件时,成为子查询 指在一条select语句中,嵌入另外一条select语句,那么被嵌入的select语句称为子查询 主查询 主查询指的是主要查询的查询对象,第一条select语句...,必须保证匹配到才保存 6、内连接可以在数据匹配完成后,使用where条件来限制,效果与on一样(推荐使用on). using 关键字 是在连接查询中用来代替对应的on关键字的,进行条件匹配 1、在连接查询时...),右连接(right join) 左连接:左表是主表有连接:有表是主表 1、确定连接主表:左连接就是 left join 左边的表为主表;right join 就是右边为主表 2、拿主表的每一条记录,...4、如果主表记录在从表中一条都没有匹配成功,那么也要保留该记录,从表对应的字段值都为null; 基本语法: 左连接:主表 left join 从表 on 连接条件; 右连接: 主表 right join...从表 On 连接条件; 左连接对应的主表数据在左边;右连接对应的主表数据在右边; select * from my_stydent as s lefy join my_clas c on s.class_id
下面的一些定义及示例均来自于https://zh.cppreference.com,仅做参考。当然从文字上理解有些枯燥且分类较多,但对于我们理解eos源码有很大的帮助。当然不感兴趣的可以直接跳过。...左值和右值的概念: 在C++11中,左值和右值的区分可以从以下概念入手: 具有同一性 (identity) :可以确定表达式是否与另一表达式指代同一实体,例如通过比较它们所标识的对象或函数的...只有在它的参数绑定到一个右值时,它才转换它的参数到一个右值。当参数绑定到左值时,转换后仍为左值。万能的函数包装器,可将带返回值、不带返回值、带参和不带参的函数委托万能的函数包装器执行。...当目标容器不为空的情况下,则从目标容器末端开始循环插入trx_context中的信息。...做过qt开发的人对信号槽机制并不会陌生,拿最简单的on_pushButton_clicked()函数来讲,当某一个特定事件发生时(clicked),一个信号被发送(emit),与信号相关联(connect
连接查询分类: 交叉连接 内连接 外连接 左连接 右连接 自然连接 交叉连接(Cross Join) 之前咱们说过多表查询时,就说过交叉查询的概念,只是语法不同。...外连接(Outer Join) 一张表作为主表(表中记录都会保留),根据条件去匹配另一张从表中的记录,从而得到目标数据。...外连接分为: 左外连接(left join),左表作为主表 右外连接(right join),右表作为主表 左连接基本语法: {主表} left join {从表} on {匹配条件}; 右连接基本语法...: {从表} right join {主表} on {匹配条件}; select * from my_stud as s left join my_class as c on s.class_id =...left/right join] {表2} using({同名字段列表}); select * from my_stud left join my_class using(class_id); 子查询 当一个查询是另一个查询的条件时
---- 进阶6:连接查询 一、基本内容 1、含义 又称为多表查询,当查询的字段来自于多个表时,就会使用到连接查询。 2、笛卡尔乘积现象 表1 有m行,表2 有n行, 结果= m*n行。...3、外连接 应用场景:用于查询一个表中有,另一表没有的记录。 (1)特点 查询的结果=主表中所有的行,如果从表和它匹配的将显示匹配行,如果没有匹配的则显示null。...left join 左边的为主表,right join 右边的为主表,左外和右外交换两个表的顺序,可以实现同样的效果。 一般用于查询除了交集部分的剩余的不匹配的行。...full join 两边都是主表,左外和右外交换两个表的顺序,可以实现同样的效果。 全外连接=内连接的结果+表1中有但表2中没有的+表2中有但表1中没有的。...部门表中的每个部门编号如果存在员工表中,那么我们就列举出此员工的详细信息,然后使用exist来判断此子查询是否存在值,如果有值,则返回1,如果没有,则返回0,当返回1的时候,就满足筛选条件,然后主查询就显示出此部门的名称
外连接显示的内容要比内连接多,是对内连接的补充 left join的主表是左表,从表是右表 right join的主表是右表,从表是左表 外连接会返回主表的所有数据,无论在从表是否有与之匹配的数据,若从表没有匹配的数据则默认为空值...(NULL) 外连接只返回从表匹配上的数据 重点:在使用外连接时,要分清查询的结果,是需要显示左表的全部记录,还是右表的全部记录 left join、right join 的语法格式 SELECT FROM RIGHT OUTER JOIN 语法格式说明 outer可以省略,只写 、 right join leftjoin on是设置左连接的连接条件...left join 的栗子 SQL分析 主表:emp 从表:dept 根据 emp 表的员工 dept_id 和 dept 表的部门 id 进行匹配 因为 emp 是主表,所以最后两条记录的 dept_id...SQL分析 主表:dept 从表:emp 根据 dept 表的 id 和 emp 表的 dept_id 进行匹配 因为 dept 是主表,所以最后两条记录的 id 在 emp 表没有匹配到 dept_id
主表:主键 id 所在的表,约束别人的表;从表:外键所在的表,被约束的表。...比如,通过 从表的外键 = 主表的主键 的方式去匹配。...`cid`; Conclusion 内连接:只获取两张表中交集部分的数据。 左外连接:以左表为基准,查询左表的所有数据,以及与右表有交集的部分。...Example 设计”用户表“和”订单表“:”用户表“中有”名字“字段,而”订单表“中也存在”名字“字段;当需要查询“订单表”所有数据并且只需要“用户表”的”名字“字段时,此时如果没有冗余字段,就需要去内连接...存储过程是为了完成特定功能的 SQL 语句集,经编译创建并保存在数据库中,用户在需要时可通过指定存储过程的名字并给定参数来调用执行。
连接查询 MySQL连接查询分类 1、按推出年份划分 SQL92标准:仅支持内连接; SQL99标准:支持除了全外连接的所有连接的类型; 2、按功能划分 内连接 SQL92 内连接 语法: SELECT...select * from china province inner join china city on province.id = city.pid; 外连接 左外连接 语法: SELECT <...确定主表 ; 2. 在左外连接中,LEFT 左边的就是主表 ; 3....显示所有的主表记录,并关联显示从表中的数据,如果从表中没有和主表可以关联的数据,使用NULL 进行匹配; 代码实例: 查询订单信息,并关联信息用户姓名 SELECT o....显示所有的主表记录,并关联显示从表中的数据,如果从表中没有和主表可以关联的数据,使用NULL 进行匹配; 代码实例: SELECT o.
当另一个线程给就绪状态的线程发送信号时,该线程才重新切换到运行状态。 休眠状态: 由于一个线程的时间片用完了,该线程从运行状态进入休眠状态。...maxAge 的默认值是-1 当 maxAge 的值为 0 时,表示删除 cookie。...2、内连接 基本语法:左表 [inner] join 右表 on 左表.字段 = 右表.字段; 从左表中取出每一条记录,去右表中与所有的记录进行匹配:匹配必须是某个条件在左表中与右表中相同最终才会保留结果...3、外连接 基本语法: 左表 left/right join 右表 on 左表.字段 = 右表.字段; left join: 左外连接(左连接), 以左表为主表 right join: 右外连接(右连接...左外连接 ? 右外连接 ?
应用场景: 用于查找一个表中有,另一个表中没有的记录 特点: 外连接查询的结果为主表中所有记录 如果从表中有和它匹配的,则显示匹配的值 如果从表中没有和它匹配的,则显示null 外连接结果=内连接结果...+主表中有而从表中没有的记录 左外连接: left join 左边的是主表 右外连接: left join 右边的是主表 左外和右外交换两个表的顺序,可以实现同样的效果 可以像内连接一样,去掉outer...关键字 ---- 左外连接 演示: 找出girl表中id和Boy表中id所匹配的记录: girl做主表 SELECT g.girl woman , b.* FROM girl g LEFT...JOIN boy b; ---- 连接查询的总结 内连接: 左外连接: 右外连接: 左外去交集: 右外去交集: 全外连接: 全外连接去交集:...,名称无要求 主表的关联列的必须是一个key(一般是主键或者唯一键) 插入数据时,先插入主表,再插入从表 删除数据时,先删除从表,再删除主表,只有当主表对应列下面的从表对应列的数据都被删除时,才能删除当前主表对应的列
...from 表名 where exists(子查询) 子查询有返回结果: EXISTS子查询结果为TRUE,则执行外层查询 子查询无返回结果: EXISTS子查询结果为FALSE,外层查询不执行 当数据量大的时候使用...`studentNo`) INNER JOIN `subject` AS SU ON (SU.subjectNo=R.subjectNo); (2)外连接 左外连接 (LEFT JOIN) 主表(左表)...student中数据逐条匹配表result中的数据 1.匹配,返回到结果集 2.无匹配,NULL值返回到结果集 示例: /*左外连接 left join 前面的表为主表,以主表里的字段为依据,把从表里的数据填充给主表...as 学生成绩 from student as s left join result as r on s.studentNo = r.studentNo; 右外连接 (RIGHT JOIN) 右外连接的原理与左外连接相同...右表逐条去匹配记录;否则NULL填充 示例: /*右外连接 right join前面的表为主表,以主表里的字段为依据,把从表里的数据填充给主表,从表里面没有的字段以null填充 right join
领取专属 10元无门槛券
手把手带您无忧上云