首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

10 个经典的 Java 集合面试题,看你能否答得上来?(会员专享)

2、内连接 基本语法: [inner] join on .字段 = .字段; 中取出每一条记录,去中与所有的记录进行匹配:匹配必须是某个条件在中与中相同最终才会保留结果...3、外连接 基本语法: left/right join on .字段 = .字段; left join: 外连接(连接), 以左为主表 right join: 外连接(连接...能匹配,正确保留;不能匹配,其他的字段都置空 NULL。 ? 外连接 ? 外连接 ?...), 在记录上进行拼接(字段不会增加),每一条 select 语句获取的字段数必须严格一致(但是字段类型无关)。...如果主要是用于插入新记录和读出记录,那么选择 MyISAM 能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。 MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。

79030

mysql-外键的三种关系

介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 重点理解如果找出两张之间的关系 分析步骤: #1、先站在的角度去找 是否多条记录可以对应一条记录...,如果是,则证明的一个字段foreign key 一个字段(通常是id) #2、再站在的角度去找 是否多条记录可以对应一条记录,如果是,则证明的一个字段foreign key... 一个字段(通常是id) #3、总结: #多对一: 如果只有步骤1成立,则是多对一 如果只有步骤2成立,则是多对一 #多对多 如果步骤1和2同时成立,则证明这两张时一个双向的多对一...,即多对多,需要定义一个这两张的关系来专门存放二者的 关系 #一对一: 如果1和2都不成立,而是一条记录唯一对应一条记录,反之亦然。...这种情况很简单,就是在foreign key 的基础上,将的外键字段设置成unique即可 的三种关系 (1)书和出版社   一对多(或多对一):一个出版社可以出版多本书。

75330

mysql子查询和连接查询(大数据联合计算)

中取出每一条记录,去中与所有的记录进行匹配: 匹配必须是某个条件在中与中相同最终才会保留结果,否则不保留....基本语法: [inner] join on .字段 = .字段; on表示连接条件: 条件字段就是代表相同的业务含义(如my_student.c_id和my_class.id) 字段别名以及别名的使用...外连接分为两种: 是以某张为主: 有主表 left join: 外连接(连接), 以左为主表 right join: 外连接(连接), 以右为主表 基本语法: left/right...join on .字段 = .字段; 修改成 SELECT m.id, m.admin_user, m.login_count, l.level_name FROM cms_manage...select语句), 在记录上进行拼接(字段不会增加) 基本语法:多条select语句构成: 每一条select语句获取的字段数必须严格一致(但是字段类型无关) Select 语句1 Union [union

1.5K10

MySQL数据高级查询之连接查询、联合查询、子查询

中取出每一条记录,去中与所有的记录进行匹配: 匹配必须是某个条件在中与中相同最终才会保留结果,否则不保留....基本语法: [inner] join on .字段 = .字段; on表示连接条件: 条件字段就是代表相同的业务含义(如my_student.c_id和my_class.id) 字段别名以及别名的使用...外连接分为两种: 是以某张为主: 有主表 left join: 外连接(连接), 以左为主表 right join: 外连接(连接), 以右为主表 基本语法: left/right...join on .字段 = .字段; 修改成 SELECT m.id, m.admin_user, m.login_count, l.level_name FROM cms_manage...select语句), 在记录上进行拼接(字段不会增加) 基本语法:多条select语句构成: 每一条select语句获取的字段数必须严格一致(但是字段类型无关) Select 语句1 Union [union

6.2K10

MySQL删库到跑路(五)——SQL查询

外连接返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括(外连接或连接)、(外连接或连接)或两个边接(全外连接)中的所有数据行。...连接的结果集包括 LEFT OUTER子句中指定的的所有行,而不仅仅是连接列所匹配的行。如果的某行在中没有匹配行,则在相关联的结果集行中的所有选择列表列均为空值。...如果的某行在中没有匹配行,则将为返回空值。...全连接: 全连接返回中的所有行。当某行在另一个中没有匹配行时,则另一个选择列表列包含空值。如果之间有匹配行,则整个结果集行包含基的数据值。MySQL不支持全外连接。...4、SQL查询的原理 第一、单查询:根据WHERE条件过滤中的记录,形成中间;然后根据SELECT的选择选择相应的列进行返回最终结果。

2.5K30

写出好的Join语句,前提你得懂这些

Nest Loop Join,是通过驱动的结果集作为循环基础数据,然后一条一条地通过该结果集中的数据作为过滤条件到下一个中查询数据,然后合并结果 ” 所以本文就从这个地方开始,学习下mysql join...基本介绍 left join、right join、inner join的区别 相信大家都知道这个,简单介绍下 left join(连接):返回包括中的所有记录中联结字段相等的记录 right...join(连接):返回包括中的所有记录中联结字段相等的记录 inner join(等值连接):只返回两个中联结字段相等的行 一张大图, 清楚明了: ?...那我们看看在join连接时哪个是驱动,哪个是被驱动: 1.当使用left join时,是驱动是被驱动 2.当使用right join时,是驱动是被驱动 3.当使用inner...即驱动中的每一条记录与被驱动中的记录进行比较判断(就是个笛卡尔积)。

1.1K20

MySQL记录锁、间隙锁、临键锁小案例演示

4、当使用普通索引不管是锁住单条,还是多条记录,都会产生间隙锁; 5、在没有索引上不管是锁住单条,还是多条记录,都会产生锁; 间隙锁会封锁该条记录相邻两个键之间的空白区域,防止其它事务在这个区域内插入...根据检索条件向下寻找最靠近检索条件的记录值A作为区间,向上寻找最靠近检索条件的记录值B作为区间,即锁定的间隙为(A,B] 闭。...为了保证间隙锁都是闭原则。)...2、闭原则 按照上面的例子,如果事务B插入一条 id=6,age=1 的数据会不会堵塞呢,因为按照闭原则,上面的age=1是开的,所以正常应该是可以插入的。...通过实践之后,会发现,所谓的闭原则,跟主键id有关系。 上面的事务A 等值查询age=4,它的当前主键id=4,上一条记录主键id=1,下条记录主键id=7。

2.2K30

MySQL之LEFT JOIN问题汇总

从这个伪代码中,我们可以看出两点:1、限制用ON如果想对进行限制,则一定要在on条件中进行,若在where中进行则可能导致数据缺失,导致中无匹配行的行在最终结果中不出现,违背了我们对left...因为对匹配行的行而言,遍历后b=FALSE,所以会尝试用NULL补齐,但是此时我们的P2对行进行了限制,NULL若不满足P2(NULL一般都不会满足限制条件,除非IS NULL这种...2、限制用WHERE如果没有where条件,无论on条件对进行怎样的限制,的每一行都至少会有一行的合成结果,对行而言,若若没有对应的行,则遍历结束后b=FALSE,会用一行NULL...我做了一个实验,用1条记录和3亿多条记录做join,无论小是放在join的前面还是join的后面,执行的时间几乎都是相同的。...如果按照上面的说法把join左侧的放内存等待join右侧的到内存中去检测,那么当3亿多条记录放在join左侧时,内存肯定是无法容下这么多记录的,势必要进行写磁盘的操作,那它的执行时间应该会比小

83420

常用的DML语句「建议收藏」

from table_name ) — 查询语句中可以使用一个或者多个之间使用 “,”隔开 — select命令可以读取一条或者多条记录 — 你可以使用星号(*)来代替其他字段 可以搭配select...ASC(从小到大) DESC(大到小) 一般使用时在where条件后面】 (2)like子句 ( select from table where 字段 like‘x%’) — 百分号 % 字符表示任意字符...) :获取所有记录,即使没有对应匹配的记录 ( select table1.xx ,table1.xx ,table1.xx … ,table2.xx,table2.xx, table2.xx...… from table1 left join table2 on table1.xxx id = table2.xxx id ) · RIGHT JOIN (连接) :获取所有记录,即使没有对应匹配的记录...— 你可以在where 子句中指定任何条件 — 你可以在单个中一次性删除记录 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

59920

05.记录合并&字段合并&字段匹配1.记录合并2.字段合并3.字段匹配3.1 默认只保留连接上的部分3.2 使用连接3.3 使用连接3.4 保留左右所有数据行

1.记录合并 将两个结构相同的数据框合并成一个数据框。 函数concat([dataFrame1, dataFrame2, ...]) ?...屏幕快照 2018-07-02 20.37.46.png 3.字段匹配 根据各表共有的关键字段,把各表所需的记录进行一一对应。...屏幕快照 2018-07-02 22.02.37.png 3.2 使用连接 即使与右边数据框匹配不上,也要保留左边内容,右边未匹配数据用空值代替 itemPrices = pandas.merge(...屏幕快照 2018-07-02 21.38.15.png 3.3 使用连接 即使与左边数据框匹配不上,也要保留右边内容,左边未匹配数据用空值代替 itemPrices = pandas.merge(...屏幕快照 2018-07-02 21.38.49.png 3.4 保留左右所有数据行 即使连接不上,也保留所有未连接的部分,使用空值填充 itemPrices = pandas.merge(

3.5K20

2020年入门数据分析选择Python还是SQL?七个常用操作对比!

中,我们可以使用SELECT语句选择数据,结果被存储在一个结果中,语法如下: SELECT column_name,column_name FROM table_name; 如果不想显示全部的记录...因此选择tips中的部分列可以使用下面的语句 SELECT total_bill, tip, smoker, time FROM tips LIMIT 5; ?...多条件查找 在SQL中,进行多条件查找可以使用AND/OR来完成 SELECT * FROM tips WHERE time = 'Dinner' AND tip > 5.00; ?.../外联接 在SQL中实现/外连接可以使用LEFT OUTER JOIN和RIGHT OUTER JOIN SELECT * FROM df1 LEFT OUTER JOIN df2 ON df1...全连接 全连接返回中的所有行,无论是否匹配,但并不是所有的数据库都支持,比如mysql就不支持,在SQL中实现全连接可以使用FULL OUTER JOIN SELECT * FROM df1

3.5K31

Mysql基础知识总结

1.操作 1.1 的设计理念 第一范式:每个列不可分割 第二范式:实体的每个属性都和主键完全依赖 第三范式:每列都和主键列直接相关 1.2 操作 查看数据库 show databases; 选择数据库...的值……) 插入多条数据 insert into tname(属性1,属性2,……) values(属性11的值,属性12的值……), (属性21的值,属性22的值……), (属性31的值,属性...连接的结果不仅包含连接列所匹配的行,还包括LEFT OUTER子句中指定的中的所有行。...如果中的某行在中没有匹配行,则在相关联的结果行中,的所有选择列表均为空值 外连接 指新关系中执行匹配条件时,以关键字RIGHT JOIN左边的为参照表。...如果中的某行在中没有匹配行,则在相关联的结果行中,的所有选择列表均为空值 4.4 复合条件连接查询 如:多个内连接同时使用 4.5 合并查询数据记录 select field1,field2

65730

23篇大数据系列(三)sql基础知识(史上最全,建议收藏)

1对1,是指A和B通过某字段关联后,A中的一条记录最多对应B中的一条记录B中的一条记录也最多对应A中的一条记录。...1对多,是指A和B通过某字段关联后,A中的一条记录可能对应B中的多条记录,而B中的一条记录最多对应A中的一条记录。...多对多,是指A和B通过某字段关联后,A中的一条记录可能对应B中的多条记录,而B中的一条记录可能对应A中的多条记录。 1对1 和 1对多关系,通常使用外键引用对应的主键就可以表达。...全外连接(FULL OUTER JOIN),含义是,左右两个集合相乘后,保留满足ON后面关联条件的记录加上中原有的但未关联成功的记录。...外连接和外连接都有连接方向的问题,放的位置对结果是有影响的,尤其是多表关联时,一定要关注书写的顺序,尽可能先做内连接再做/外连接。 d.

2.6K60

MySQL(九)之数据的查询详解(SELECT语法)一

(小编高中最喜欢用的句子,因为只记得这一句) 对数据数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接)、LEFT JOIN(连接)、RIGHT JOIN(连接)等一些复杂查询...//查询字段名不是NULL的记录  2.8、 带AND的多条件查询     AND: 相当于"逻辑与",也就是说要同时满足条件才算匹配     select * from book where book.s_id...2.13、使用LIMIT限制查询结果的数量 LIMIT[位置偏移量] 行数  通过LIMIT可以选择数据库中的任意行数,也就是不用一条记录开始遍历,可以直接拿到 第5条到第10条的记录,也可以直接拿到第...、     1)select * from book limit 4;  //没有写位置偏移量,默认就是0,也就是一条开始,往后取4条数据,也就是取了第一条数据到第4条的数据。 ?     ...例如:查看一下book中的总记录数 ? 没有空值,所以计算出来的行数和总的记录行数是一样的。

2.9K110

2.MySQL操作

引擎介绍 mysql中的存储引擎 介绍 就相当于文件,中的一条记录就相当于文件的一行内容,不同的是,中的一条记录有对应的标题,称为的字段 还记得我们之前写过的‘员工信息作业’么?...DROP TABLE 名; 多表结构的创建与分析 如何找出两张之间的关系 分析步骤: #1、先站在的角度去找 是否多条记录可以对应一条记录,如果是,则证明的一个字段foreign...key 一个字段(通常是id) #2、再站在的角度去找 是否多条记录可以对应一条记录,如果是,则证明的一个字段foreign key 一个字段(通常是id) #3、总结...: #多对一: 如果只有步骤1成立,则是多对一 如果只有步骤2成立,则是多对一 #多对多 如果步骤1和2同时成立,则证明这两张时一个双向的多对一,即多对多,需要定义一个这两张的关系来专门存放二者的关系...#一对一: 如果1和2都不成立,而是一条记录唯一对应一条记录,反之亦然。

1.3K20

Mysql几种join连接算法

执行计划中可以知道这些信息: t2是为驱动,t1是为被驱动,先执行驱动(执行计划结果id列值为一样的话,是从上往下进行执行的),mysql底层优化器会优先选择作为驱动,用where条件过滤完驱动...所以使用Inner join 时,排在前面的并一定就是驱动 当使用了left join,那么就是驱动,作为被驱动 当使用了right join,那么就是驱动,为被驱动 当使用了...上面SQL大致执行流程如下 t2中读取一行记录(如果t2有查询过滤条件,会先执行完过滤条件,再从过滤后结果中取一行记录) 第1步记录中,取出关联字段 a 到 t1查找 取出 t1满足条件的记录与...内层循环看作为被驱动,每次进行join时,会先从驱动中拿取一条完整的数据和被驱动进行条件匹配,如果匹配成功,则将数据连接后放入结果集中(就是外层循环的结果和内存结果组合成一条数据),然后,外层的驱动扫描获取第二条数据...上面SQL大致执行流程如下 t2中读取一行记录 第1步记录中,取出关联字段 a 到 t1的辅助索引树中进行查找 t1中取出辅助索引树中满足条件的记录拿出主键ID到主键索引中根据主键ID将剩下字段的数据取出与

2.4K10
领券