首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

day05_MySQL学习笔记_02

(也就是说仍然有主从表的关系) ?     一对多(多对一):       最为常见的就是一对多!一对多和多对一,这是从哪个角度去看或者说以谁为参照物。  ...2.2 外连接查询(左外连接查询、右外连接查询) [OUTER] JOIN ON     外连接的特点:查询出的结果存在不满足条件的可能。     ...左外连接是先查询出左表(即以左表为主),然后查询右表,右表中满足条件的显示出来,不满足条件的显示NULL。     这么说你可能不太明白,我们还是用上面的例子来说明。     ...但在左连接中,因为emp表是左表,所以左表中的记录都会查询出来,即“张三”这条记录也会查出,但相应的右表部分显示NULL。 ?     ...当子查询出现在where后作为条件时,还可以使用如下关键字: any all       子查询结果集的形式: 单行单列(用于条件) 单行多列(用于条件) 多行单列(用于条件) 多行多列

2.1K20

Pandas知识点-合并操作join

join()方法合并的结果默认以左连接的方式进行合并,默认的连接列是DataFrame的行索引,并且,合并两个DataFrame时,两个DataFrame中不能有相同的列名(不像merge()方法会自动给相同的列名加后缀...on: 指定合并时调用join()方法的DataFrame中用于连接(外连,内连,左连,右连)的列。默认为None,join()方法默认是使用行索引进行连接。...观察上面的例子,left1中有key列,而right1中没有key列,不过right1的行索引可以与left1的key列可以进行匹配,用左连接的方式得到结果。这个结果相当于如下的merge()操作。...假如第一个DataFrame是单行索引,第二个DataFrame是多重行索引,此时如果不指定on参数,就必须给两个DataFrame的行索引命名,并且单行索引的索引名要包含在多重行索引的索引名中,才能够合并成功...合并多个DataFrame时,只支持用DataFrame的行索引进行连接,不能使用on参数。默认使用的是左连接,可以设置成其他的连接方式。

3.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2024Mysql And Redis基础与进阶操作系列(6)作者——LJS

    且这些表 的数据之间存在一定的关系,如下图: MySQL多表之间的关系可以概括为:一对一、一对多/多对一关系,多对多 1.1 一对一关系 比如 一个学生只有一张身份证; 一张身份证只能对应一学生...在任一表中添加唯一外键,指向另一方主键,确保一对一关系。 一般一对一关系很少见,遇到一对一关系的表最好是合并表。...中间表至少包含两个字段,将多对多的关系,拆成一对多的关系,中间表至少要有两个外键,这两个外键分别指向原来的那两张表的主键 2....特点 子查询可以返回的数据类型一共分为四种 单行单列 返回的是一个具体列的内容,可以理解为一个单值数据; 单行多列 返回一行数据中多个列的内容; 多行单列 返回多行记录之中同一列的内容,相当于给出了一个操作范围...; 多行多列 查询返回的结果是一张临时表 子查询回显的数据类型 单行单列 返回的是一个具体列的内容,可以理解为一个单值数据; 单行多列 返回一行数据中多个列的内容; 多行单列 返回多行记录之中同一列的内容

    11410

    MySQL全部知识点(2)

    l 一对多(多对一):最为常见的就是一对多!一对多和多对一,这是从哪个角度去看得出来的。...多表查询 多表查询有如下几种: 合并结果集; 连接查询 内连接 外连接 左外连接 右外连接 全外连接(MySQL不支持) 自然连接 子查询 1 合并结果集 1....左连接: SELECT * FROM emp e LEFT OUTER JOIN dept d ON e.deptno=d.deptno; 左连接是先查询出左表(即以左表为主),然后查询右表,右表中满足条件的显示出来...但在左连接中,因为emp表是左表,所以左表中的记录都会查询出来,即“张三”这条记录也会查出,但相应的右表部分显示NULL。 ?...) 单行多列(用于条件) 多行单列(用于条件) 多行多列(用于表) 练习: 1.

    1.9K70

    【MySQL】表的增删查改(进阶)

    一对多 4.多对多) 根据上述内容,套入到固定的“公式”中,然后就可以得到表。 一对一关系 在教务系统中,有一个实体,学生,还有一个实体,账号。...先笛卡尔积 加上连接条件 加上聚合查询,把同一个同学的行合并到同一个组中同时计算总分 任务3:查询所有同学的成绩以及同学的个人信息 分析:期望查询结果中,有个人信息(student表),...但是如果表不是一一对应,内连接和外连接就有区别了。 左外连接:会把左表的结果尽量列出来,哪怕在右表中没有对应的记录,就使用NULL填充。...同理,右表连接,会把右表的结果尽量列出来,哪怕左表中没有对应的李璐,就使用NULL来填充。 自连接 自连接就是自己和自己进行笛卡尔积。 子查询 子查询本质上就是套娃。...实际开发中,子查询要慎用! 单行子查询:返回一行记录的子查询 任务:查询与“不想毕业”同学的同班同学 分析:先去查询不想毕业同学的班级id,再按照班级id来查询那些同学和他一个班。

    3.1K20

    【MySQL】02_子查询与多表查询

    前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个 关联字段可能建立了外键,也可能没有建立外键。比如:员工表和部门表,这两个表依靠“部门编号”进行关联。...`employee_id`; 非自连接:上面写的都属于非自连接 角度3:内链接 vs 外链接 内连接 合并具有同一列的两个以上的表的行, 结果集中不包含一个表与另一个表不匹配的行 外连接 两个表在连接过程中除了返回满足连接条件的行以外还返回左...(或右)表中不满足条件的 行 ,这种连接称为左(或右) 外连接。...没有匹配的行时, 结果表中相应的列为空(NULL)。 如果是左外连接,则连接条件中左边的表也称为 主表 ,右边的表称为 从表 。...UNION 和 UNION ALL的使用 合并查询结果 利用UNION关键字,可以给出多条SELECT语句,并将它们的结果组合成单个结果集。合并 时,两个表对应的列数和数据类型必须相同,并且相互对应。

    2.8K40

    订单和产品的多对多表关系在crudapi系统零代码实现

    表关系管理 在上一篇 序列号管理 中,产品和销售订单都是孤立的单表,本文通过crudapi中表关系(relation)管理将多个表连接起来,形成一个整体。...一对多(one-to-many):一种对象可以属于另一种对象的多个实例,比如一张唱片包含多首歌。...:一对多 [salesOrderLine] 首先创建订单行表,主要有编号ID、订单编号、产品编号、单价、数量、小计等字段。...[salesOrderLinesRelation] 建立一对多关系,销售订单salesOrder表的编号id字段,指向订单行salesOrderLine的订单编号salesOrderId字段,关系的英文名称...完整关系图 [relationGraph] 订单salesOrder和产品product是多对多关系,通过订单行salesOrderLine这个中间表建立连接,实际是由“一对多”和“多对一”两个关系合并而成

    1K90

    探讨MySQL中 “约束“ 下的查询

    一对一:比如用户和账号信息,可以建立在一个表中  二.  一对多:一个班级有多个学生设计如下: 三.  ...多对多:一个学生可以选多门课,一门课可以被多个学生选 学生表和课程表是多对多的关系,这里通过课程表(关系表)关联 三....3.外连接: 外连接分为左外连接和右外连接。...如果联合查询,左侧的表完全显示我们就说是左外连接;右侧的表完 全显示我们就说是右外连接  语法: -- 左外连接,表1完全显示 select 字段名  from 表名1 left join 表名...IN关键字  例子:在成绩表中查询彩儿和清涟同学的成绩的成绩信息 6.合并查询: 在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all

    10710

    N天爆肝数据库——MySQL(3)

    和完整性 外键约束: 概念 外键用来让两张表中的数据之间建立连接,从而保证数据的一致性和完整性。...,多对多,一对一 一对多(多对一) 实现:在多的一方建立外键,指向一的一方的主键 举例:员工和部门 多对多 实现:建立第三张中间表,中间表至少包含两个外键,费别关联两方的主键 案例:学生于课程 一对一...分类 连接查询 内连接:相当于查询A,B交集部分数据 外连接 左外连接:查询左表所有数据,以及两张表交集部分数据 右外连接:查询游标所有数据,以及两张表交集部分数据 自连接:当前表与自身的连接查询...表2 ON连接条件...; 注意 内连接查询时两张表交集的部分 多表查询-外连接 左外连接 SELECT 字段列表 FROM 表1 LEFT [OUTER]JOIN表2 ON条件...; 相当于查找表....; 注意: 对于联合查询的多张表的列数必须保持一致,字段类型也需要保持一致。 union all 会将全部的数据直接合并在一起,union 会对合并之后的数据去重。

    18720

    JavaWeb06-MySQL深入学习这些就够了!

    二.多表设计与实现(外键约束) 系统设计中,实体之间的关系有三种:一对一,一对多,多对多 也就是说,数据库开发中表与表之间的关系有三种,而表与表之间关系是通过外键来维护的。...,那么我们怎样在表中描述它们的对应关系我们一般在多的一方表中简称(多表),添加一个外键字段,与一方表中的主键字段对应就可以描述其一对多的关系。...num VARCHAR(20) -- 身份证号 ) 总结: 对于一对一关系,我们在表中描述时,可以在任意一方描述 对于一对多关系,我们在表中描述时,在多的一方描述 对于多对多关系,我们在表中描述时,会产生一个中间表...当连接谓词被满足,A 和 B 中匹配的行会按列组合(并排组合)成结果集中的一行。...外连接可依据连接表保留左表, 右表或全部表的行而进一步分为左外连接, 右外连接和全连接. 注意:mysql只支持左外连接与右外连接,而不支持全连接。 1.

    1.4K60

    java数据库的介绍和使用_java实现数据库的查询

    select语句的查询结果合并到一起,被合并的两个结果:列数、列类型必须相同 --union 去除重复记录 --union all 不去除重复记录 --连接查询 --内连接 --等值连接:建立在父子表关系上...--左外连接(LEFT OUTER JOIN):左外连接可以把左表中不满足对应关系的数据查询出来 select e.empno,e.ename,e.job,e.sal,d.deptno,d.dname...--3.外键的数据类型必须与主表中主键的数据类型完全相同 --4.外键可以是null值 /* 表与表之间的关系 */ --1.一对多: 一张表中的一条记录再另一张表中出现多次 --2.多对多: 要想两张表之间实现多对多的关系...,必须有一张中间表,通过中间表创建与两张表的外键约束,实现多个一 对多,使用这种方式创建外键约束,非常适合实现多个一对多。...--3.一对一:一张表里的记录,在另外一张表里只能出现一次.表和表之间的关系必须通过外键来创建,但是外键一创建就是一对多,因此在从表里将外键设置唯一性约束,实现一对一 版权声明:本文内容由互联网用户自发贡献

    1.3K30

    浅谈数据库Join的实现原理

    在多对多的关联表上执行Merge Join时,通常需要使用临时表进行操作。...通常情况下hash join的效果都比Sort merge join要好,然而如果行源已经被排过序,在执行排序合并连接时不需要再排序了,这时Sort merge join的性能会优于hash join。...在 Argument 列中,如果操作执行一对多联接,则 Merge Join 运算符将包含 MERGE:() 谓词;如果操作执行多对多联接,则该运算符将包含 MANY-TO-MANY MERGE:()...然而,如果数据量很大且能够从现有 B 树索引中获得预排序的所需数据,则合并联接通常是最快的可用联接算法。...=100是非连接谓词(对连接列的限制),salary=10000是单行谓词(对非连接列的限制)) 2.外连接时,一定是用显示的行数比较多的那个表作为驱动表。

    5.4K100

    mysql系列一

    * 1对1:例如老公和老婆就是一对一的关系,一个老公只能有一个老婆,而一个老婆只能有一个老公。 * 多对多:老师与学生的关系就是多对多,一个老师可以有多个学生,一个学生可以有多个老师。...数据库一对一关系 在表中建立一对一关系比较特殊,需要让其中一张表的主键,即是主键又是外键。...这就完成了一对一关系。 *****从表的主键即是外键! 8. 数据库多对多关系 在表中建立多对多关系需要使用中间表,即需要三张表,在中间表中使用两个外键,分别引用其他两个表的主键。...分类: * 合并结果集(了解) * 连接查询 * 子查询 合并结果集 * 要求被合并的表中,列的类型和列数相同 * UNION,去除重复行 * UNION ALL,...分类 * 内连接 * 外连接 > 左外连接 > 右外连接 > 全外连接(MySQL不支持) * 自然连接(属于一种简化方式) 2.

    97720

    【MySQL数据库】多表关系与多表联合查询

    目录 MySQL多表关系 一对一 一对多 多对多 MySQL外键约束 创建外键 数据插入 删除 多表联合查询 交叉连接查询 内连接查询 外连接查询 子查询关键字 自关联 MySQL多表关系 MySQL...表与表之间的三种关系 一对多关系:最常见的关系:学生对班级 , 员工对部门 多对多关系:学生与课程 , 用户与角色 一对一关系:使用较少,因为一对一关系可以合成为一张表 一对一  一个学生对应一个身份证号码...一对多 一个部门可以有多名员工,但一个员工只能归于一个部门 在多的一方建立外外键指向一的一方 多对多 下表为多对多关系,由下表可知多对多关系的中间表至少需要2个外键... 左外连接:left outer join             select * from A left outer join B on 条件;   右外连接:right outer join            ...返回的数据类型 单行单列:返回的是一个具体列的内容,可以理解为一个单值数据; 单行多列:返回一行数据中多个列的内容; 多行单列:返回多行记录之中同一列的内容,相当于给出了一个操作范围; 多行多列:查询返回的结果是一张临时表

    2.8K20

    SQL多表查询常用语句总结

    一、多表关系 (一)概述 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种: 一对多...(多对一):在多的一方建立外键,指向一的一方的主键 多对多:建立中间表,包含两个外键,分别关联两方主键 一对一:一对一关系多用于单标拆分,将一张表的基础字段放在一张表中,其他详细字段放在另一张表,以提升操作效率...(在多表查询时,需要消除无效的笛卡尔积) (二)多表查询分类: 连接查询: ①内连接:相当于查询A,B交集部分数据 ②外连接: 左外连接:查询左表所有数据,以及两张表交集部分数据 右外连接...(二)联合查询 联合查询-union,union all 对于union查询,就是把多查询的结果合并起来,形成一个新的查询结果集。...union all会将全部的数据直接合并在一起,union会对合并之后的数据去重。 六、子查询 (一)概念: SQL语句中嵌套SELECT语句,称为嵌套查询,又称子查询。

    68160

    【MySQL数据库】多表关系与多表联合查询

    ​​目录MySQL多表关系一对一一对多多对多MySQL外键约束创建外键数据插入删除多表联合查询交叉连接查询内连接查询外连接查询子查询关键字自关联MySQL多表关系MySQL表与表之间的三种关系一对多关系...:最常见的关系:学生对班级 , 员工对部门多对多关系:学生与课程 , 用户与角色一对一关系:使用较少,因为一对一关系可以合成为一张表一对一 一个学生对应一个身份证号码 一对多一个部门可以有多名员工,但一个员工只能归于一个部门...左外连接:left outer join select * from A left outer join B on 条件; 右外连接:right outer join...返回的数据类型单行单列:返回的是一个具体列的内容,可以理解为一个单值数据;单行多列:返回一行数据中多个列的内容;多行单列:返回多行记录之中同一列的内容,相当于给出了一个操作范围;多行多列:查询返回的结果是一张临时表...•表示制定列中的值要大于子查询中的任意一个值,即必须要大于子查询集中的最小值。同理可以推出其它的比较运算符的情况。

    3K30

    MySQL 多表查询

    # MySQL 多表查询 mysql多表查询 问题的引出(重点,难点) 说明 多表查询练习 自连接 mysql表子查询 什么是子查询 单行子查询 多行子查询 在多行子查询中使用 all 操作符 在多行子查询中使用...any 操作符 多列子查询 在 from 子句中使用子查询 表复制 自我复制数据(蠕虫复制) 合并查询 介绍 外连接 课堂练习 # mysql多表查询 # 问题的引出(重点,难点) # 说明 多表查询是指基于两个和两个以上的表查询...* FROM my_tmp -- (5)drop 掉 临时表my_tmp DROP TABLE my_tmp SELECT * FROM my_tab02 # 合并查询 # 介绍 有时在实际应用中,...FROM emp WHERE sal>2500 UNION SELECT ename,sal,job FROM emp WHERE job='MANAGER'-- 6 # 外连接 左外连接(如果左侧的表完全显示我们就说是左外连接...5min 1.使用左外连接实现 2.使用右外连接实现 -- 列出部门名称和这些部门的员工信息(名字和工作), -- 同时列出那些没有员工的部门名。

    4K20

    MySQL学习笔记汇总(二)——分组查询、连接查询、union

    目录 一、分组查询 分组函数(多行处理函数) 单行处理函数 分组查询 总结一个完整的DQL语句 查询结果集的去重 二、连接查询 内连接: 等值连接: 非等值连接: 自链接: 外连接: 三、union(...、SQL99 2.根据表的连接方式来划分: 内连接:等值连接、非等值连接、自连接 外连接:左外连接(左连接)、右外连接(右连接) 内连接: 假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来...案例: 查询每个员工的部门名称,要求显示员工名和部门名。 非等值连接: 最大的特点是:连接条件中的关系是非等量关系。...假设A和B表进行连接,使用外连接的话,AB两张表中有一张表是主表,一张表是副表,主要查询主表中的数据,捎带着查询副表,当副表中的数据没有和主表中的数据匹配上,副表自动模拟出NULL与之匹配。...左外连接(左连接):表示左边的这张表是主表。 右外连接(右连接):表示右边的这张表是主表。 左连接有右连接的写法,右连接也会有对应的左连接的写法。 案例: 找出每个员工的上级领导?

    2K20

    【MySQL数据库】详细讲解MySQL的查询

    图片多表查询⭐多表关系在项目开发中,在进行数据库表结构设计时,会根据业务需求以及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在各种联系,基本分为以下三种一对多(多对一...)多对多一对一一对多(多对一)案例:部门和员工之间的关系 关系:一个部门对于多个员工,一个员工对应一个部门实现在多的一方建立外键,指向少的一方的主键 图片多对多案例:学生与课程之间的关系 关系:一个学生可以选修多门课程...:用户与用户详情的关系 关系:一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,以提升操作效率实现:在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(unique...inner join course on student.id=course.id;图片⭐外连接左外连接图片相当于查询左表的所有数据 包含 左表和右表交集部分的数据select 字段列表 from...表1 left (outer) join 表2 on 条件……;会查询到左表的所有数据图片 左表 图片右外连接图片相当于查询右表的所有数据 包含 左表和右表交集部分的数据select 字段列表 from

    26840

    多表操作(DQL)

    多表操作DQL 表之间的关系 合并结果集 连接查询 子查询 表与表的关系 一对多:主外键关联并且外键也是独一无二 例如:一夫一妻制 husband_id husband_name 1 张三 2 李四...一对多:外键可重复,设置外键的表就是多的一方 student_id student_name 1 张三 2 李四 3 王五 textbook_id textname student_id 01...course_id 1 1 1 2 2 1 2 2 学生有多门课,一个课也有多个学生,用第三张来设置外键就可以实现这种多对多的关系 合并结果集 什么是合并结果集 合并结果集就是把两个select语句的查询结果合并到一起...(左连接) 两表满足条件相同的数据查出来,如果左边表当中有不相同的数据,也把左边表当中的数据查出来。...左边表当中的数据全部查出,右边表当中,只查出满足条件的内容 右连接 和左连接定义一样,左边只显示筛选出来的,右边全显示 自然连接 连接查询会产生无用笛卡尔集,我们通常使用主外键关系等式来去除它。

    62120
    领券