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

《深入浅出SQL》问答录

不能单纯使用另一张表,称之为外,而不加上约束吗? A:其实可以,但创建成外约束后,就只能插入已经存在于父表值,有助于加强两张表间连接。 加强连接?是什么意思?...插入外值必须已经存在与父表来源,这是引用完整性。 创建外作为表约束提供了明确优势,如果违反了规则,约束阻止我们破坏表。 外不一定要是父表主键,但是要具有唯一性。 ?...范式(NF) 第一范式(1NF) 数据列只包含具有院子性值 没有重复数据组 组合键 组合键就是有多个数据列构成主键。...第三范式(3NF) 符合2NF 没有传递函数依赖性 ---- 我为什么需要交叉联接? A:知道交叉联接存在,有助于我们找出修正联接正确方式。...因为当SELECT语句结果是一个虚表时,若没有别名,SQL就无法取得其中表。 为什么视图对数据库有好处? 如果创建了视图,就不需要重复创建复杂联接与子查询视图隐藏了子查询复杂性。

2.9K50

这是我见过最有用Mysql面试题,面试了无数公司总结(内附答案)

视图是一个虚拟表。 它包含类似于真实表行和列。视图字段是来自一个或多个实际表字段。 视图不包含自己数据。它们用于限制对数据库访问或隐藏数据复杂性。 21.视图优点是什么?...视图一些优点是 视图不占空间 视图用于简单地检索需要经常执行复杂查询结果视图用于限制对数据库访问或隐藏数据复杂性。 22.什么是关系,它们是什么? 数据库关系定义为数据库中表之间连接。...Union和Union All都将两个表结果连接在一起,但是这两个查询处理重复表方式不同。 联合:省略重复记录,仅返回两个或多个select语句不同结果集。...SQLCLAUSE是什么? SQL CLAUSE通过为SQL查询提供条件来帮助限制结果集。 CLAUSE有助于整个记录集中过滤行。SQL子句在哪里和拥有。 67....所以正确方法如下 select case when null is null then 'True' else 'False' end as Result; 99.下面的查询结果是什么

27K20
您找到你想要的搜索结果了吗?
是的
没有找到

linux

假如执行了一个错误命令,或者是执行某个命令后迟迟无法结束,这时就可以冷静地按下Ctrl+c组合键,命令行终端控制权立刻回到我们手中。...在Linux系统,变量名称一般都是大写,命令则都是小写 PATH环境变量查询多个路径组成环境变量,由:隔开 冒号隔开。...3.Bash解释器通配符,星号(*)代表几个字符?   一个或者多个 答:个或多个。 4.PATH变量作用是什么? ...适用于处理数据有循环 举例: 文件读取多个用户名,然后创建用户名和密码。...9.Linux系统长期计划任务所使用服务是什么,其参数格式是什么? 答:长期计划任务需要使用crond服务程序,参数格式是“分、时、日、月、星期 命令”。

1.4K51

史上最全大厂Mysql面试题在这里

因为索引需要额外存储空间和处理,那些不必要索引反而会使查询反应时间变慢.使用索引查询不一定能提高查询性能,索引范围查询(INDEX RANGE SCAN)适用于两种情况: 2、基于一个范围检索,一般查询返回结果集小于表记录数...1、超:在关系能唯一标识元组属性集称为关系模式。一个属性可以为作为一个超多个属性组合在一起也可以作为一个超。超包含候选和主键。 2、候选:是最小超,即没有冗余元素。...4、外:在一个表存在另一个表主键称此表。 26、什么是视图?以及视图使用场景有哪些? 1、视图是一种虚拟表,具有和物理表相同功能。...可以对视图进行增,改,查,操作,试图通常是有一个表或者多个行或列子集。对视图修改不影响基本表。它使得我们获取数据更容易,相比多表查询。...3、查询数据来源于不同表,而查询者希望以统一方式查询,这样也可以建立一个视图,把多个查询结果联合起来,查询者只需要直接视图中获取数据,不必考虑数据来源于不同表所带来差异 27、说一说三个范式

1.1K90

SpringMVC框架复习大纲【面试+提高】

springmvc、持久层使用mybatis实现. 1.需求 实现商品查询列表,mysql数据库查询商品信息。...而这里为什么Address变成了小写呢?其实这并不是什么命名规则,而是我在User类中就是这么定义 ? 这下没有什么问题了吧,我们再来看一下浏览器表单是怎么写: ?...下面讲一个@ModelAtrribute注解执行流程 1.执行@ModelAtrribute注解修饰方法:数据库取出对象,并把对象放到了Map为user 2.springMVCMap集合取出...上面就分别是重定向与转发操作,其实不止java代码,标签返回视图,也可以加上redirect或者forward字符串,也进行相应操作。...只要在这个方法上面加上@Valid注解,然后这个执行方法就会校验数据,校验结果可以使用BindingResult对象显示,这个对象不仅仅保存数据校验结果,还会保存数据类型转换结果,所以都可以使用这个对象得到相应信息

1.1K40

MySQL数据库面试题(2020最新版)

联合索引是什么为什么需要注意联合索引顺序? MySQL可以使用多个字段同时建立一个索引,叫做联合索引。在联合索引,如果想要命中索引,需要按照建立索引时字段顺序挨个使用,否则无法命中索引。...为了提高复杂SQL语句复用性和表操作安全性,MySQL数据库管理系统提供了视图特性。所谓视图,本质上是一种虚拟表,在物理上是不存在,其内容与真实表相似,包含一系列带有名称列和行数据。...但是,视图并不在数据库以储存数据值形式存在。行和列数据来自定义视图查询所引用基本表,并且在具体引用视图时动态生成。...可以给用户授予表特定部分访问权限而不是整个表访问权限; 更改数据格式和表示。视图返回与底层表表示和格式不同数据。 视图优点 查询简单化。视图能简化用户操作 数据安全性。...超、候选、主键、外分别是什么? 超:在关系能唯一标识元组属性集称为关系模式。一个属性可以为作为一个超多个属性组合在一起也可以作为一个超。超包含候选和主键。

44200

【21】进大厂必须掌握面试题-65个SQL面试

子表引用父表主键。 外约束可防止破坏子表与父表之间链接操作。 Q12。您所说数据完整性是什么意思? 数据完整性定义了存储在数据库数据准确性和一致性。...有四种类型联接,即: 内部联接:MySQL内部联接是最常见联接类型。它用于满足联接条件多个返回所有行。...完全联接: 当任何表中都存在匹配项时,完全联接将返回所有记录。因此,它将返回左侧表所有行和右侧表所有行。 Q16。您所说非规范化是什么意思?...命名查询中用于模式匹配运算符? LIKE运算符用于模式匹配,可以用作-。 %–匹配个或多个字符。 例如-学生姓名为’a%’学生中选择* (下划线)–恰好匹配一个字符。...什么是视图视图是一个虚拟表,由表包含数据子集组成。由于不存在视图,因此占用空间更少。视图可以合并一个或多个数据,这取决于关系。 Q55。视图用途是什么

6.4K22

史上最详细一线大厂Mysql面试题详解

因为索引需要额外存储空间和处理,那些不必要索引反而会使查询反应时间变慢.使用索引查询不一定能提高查询性能,索引范围查询(INDEX RANGE SCAN)适用于两种情况: 2、基于一个范围检索,一般查询返回结果集小于表记录数...1、超:在关系能唯一标识元组属性集称为关系模式。一个属性可以为作为一个超多个属性组合在一起也可以作为一个超。超包含候选和主键。 2、候选:是最小超,即没有冗余元素。...4、外:在一个表存在另一个表主键称此表。 26、什么是视图?以及视图使用场景有哪些? 1、视图是一种虚拟表,具有和物理表相同功能。...可以对视图进行增,改,查,操作,试图通常是有一个表或者多个行或列子集。对视图修改不影响基本表。它使得我们获取数据更容易,相比多表查询。...3、查询数据来源于不同表,而查询者希望以统一方式查询,这样也可以建立一个视图,把多个查询结果联合起来,查询者只需要直接视图中获取数据,不必考虑数据来源于不同表所带来差异 27、说一说三个范式

67320

简单谈谈OLTP,OLAP和列存储概念

单指令多数据(SIMD)指令是什么,以及为什么它可以加速运算: 单指令多数据(SIMD)指令是一种计算机指令集,它可以同时对多个数据进行相同操作。...查询操作需要检查硬盘上列数据和内存最近写入,并将两者结果合并起来。但是,查询优化器对用户隐藏了这个细节。分析师角度来看,通过插入、更新或删除操作进行修改数据立即反映在后续查询。...虚拟视图可以包括复杂 SQL 查询,可以从一个或多个表中选择、过滤、连接数据,然后将结果集作为视图返回给用户。...物化视图是从一个或多个表中选取、过滤、连接数据并将结果存储在表。当一个查询请求访问物化视图时,它不必重新计算数据,而是直接物化视图中检索数据。...当底层数据发生变化时,物化视图内容可能变得过时,因此需要对物化视图进行更新,以保持其正确性和一致性。这种更新操作通常会增加写入成本,因此在 OLTP 数据库不经常使用物化视图

3.3K31

定了!MySQL基础这样学

主键自增长:AUTO_INCREMENT, 1 开始,步长为 1。 外约束:FOREIGN KEY,A表列. A表值必须参照于B表某一列(B表主 )。...**例如员工表与部门表之间就存在关联关系,其中员工表部门编号字段就是外,是相对部门表。     ...,有时需要设置查询结果显示格式,可以使用 CONCAT 函数来 连接字符串。...九、多表查询 9.1、连接查询     在实际开发,大部分情况下都不是单表查询数据,一般是多张表进行联合查询取出最终结果,一般一个业务都会对应多张表。 ​...12.8、索引失效     在模糊查询时候,如果第一个通配符使用是%,这个索引失效,因为他不知道一开始匹配字符是什么

2.2K20

《逆袭进大厂》第十一弹之MySQL25问25答

SQL执行全部过程 Server层按顺序执行sql步骤为: 客户端请求-> 连接器(验证用户身份,给予权限) -> 查询缓存(存在缓存则直接返回,不存在则执行后续操作)-> 分析器(对SQL进行词法分析和语法分析操作...) 简单概括: 连接器:管理连接、权限验证; 查询缓存:命中缓存则直接返回结果; 分析器:对SQL进行词法分析、语法分析;(判断查询SQL字段是否存在也是在这步) 优化器:执行计划生成、选择索引; 执行器...视图是一种虚拟表,通常是有一个表或者多个行或列子集,具有和物理表相同功能 游标是对查询出来结果集作为一个单元来有效处理。一般不使用游标,但是需要逐条处理数据时候,游标显得十分重要。...分页与排序问题----需要在不同分表中将数据进行排序并返回,并将不同分表返回结果集进行汇总和再次排序,最后再返回给用户。 18、不可重复读和幻读区别是什么?可以举个例子吗?...覆盖索引就是把要查询列和索引是对应,不做回表操作! 25、数据库主键、超、候选、外是什么

46020

MySQL数据库知识点

数据库基础知识 为什么要使用数据库 什么是SQL? 什么是MySQL? 数据库三大范式是什么 mysql有关权限表都有哪几个 MySQLbinlog有有几种录入格式?分别有什么区别?...联合索引是什么为什么需要注意联合索引顺序? MySQL可以使用多个字段同时建立一个索引,叫做联合索引。在联合索引,如果想要命中索引,需要按照建立索引时字段顺序挨个使用,否则无法命中索引。...为了提高复杂SQL语句复用性和表操作安全性,MySQL数据库管理系统提供了视图特性。所谓视图,本质上是一种虚拟表,在物理上是不存在,其内容与真实表相似,包含一系列带有名称列和行数据。...可以给用户授予表特定部分访问权限而不是整个表访问权限; 更改数据格式和表示。视图返回与底层表表示和格式不同数据。 视图优点 查询简单化。视图能简化用户操作 数据安全性。...超、候选、主键、外分别是什么? 超:在关系能唯一标识元组属性集称为关系模式。一个属性可以为作为一个超多个属性组合在一起也可以作为一个超。超包含候选和主键。

74020

2020最新版MySQL数据库面试题(二)

但如果是多写情况,一般会经常产生冲突,这就会导致上层应用不断进行retry,这样反倒是降低了性能,所以一般多写场景下用悲观锁就比较合适。 为什么要使用视图?什么是视图?...为了提高复杂SQL语句复用性和表操作安全性,MySQL数据库管理系统提供了视图特性。所谓视图,本质上是一种虚拟表,在物理上是不存在,其内容与真实表相似,包含一系列带有名称列和行数据。...但是,视图并不在数据库以储存数据值形式存在。行和列数据来自定义视图查询所引用基本表,并且在具体引用视图时动态生成。...可以给用户授予表特定部分访问权限而不是整个表访问权限; 更改数据格式和表示。视图返回与底层表表示和格式不同数据。 视图优点 查询简单化。...超、候选、主键、外分别是什么? 超:在关系能唯一标识元组属性集称为关系模式。一个属性可以为作为一个超多个属性组合在一起也可以作为一个超。超包含候选和主键。

61620

2020最新版MySQL数据库面试题(二)

但如果是多写情况,一般会经常产生冲突,这就会导致上层应用不断进行retry,这样反倒是降低了性能,所以一般多写场景下用悲观锁就比较合适。 为什么要使用视图?什么是视图?...为了提高复杂SQL语句复用性和表操作安全性,MySQL数据库管理系统提供了视图特性。所谓视图,本质上是一种虚拟表,在物理上是不存在,其内容与真实表相似,包含一系列带有名称列和行数据。...但是,视图并不在数据库以储存数据值形式存在。行和列数据来自定义视图查询所引用基本表,并且在具体引用视图时动态生成。...视图返回与底层表表示和格式不同数据。 视图优点 查询简单化。视图能简化用户操作 数据安全性。视图使用户能以多种角度看待同一数据,能够对机密数据提供安全保护 逻辑数据独立性。...超、候选、主键、外分别是什么? 超:在关系能唯一标识元组属性集称为关系模式。一个属性可以为作为一个超多个属性组合在一起也可以作为一个超。超包含候选和主键。

61521

MySQL基础及原理

LIMIT 六、多表查询(关联查询) 多表查询:也称关联查询,指两个或多个表一起完成查询操作。 前提条件:一起查询表之间存在一对一、一对多对应关系。 为什么不可以将多个表合并为一个表?...如果在子查询存在满足条件行: 条件返回 FALSE 继续在子查询查找 如果在子查询存在满足条件行: 不在子查询中继续查找 条件返回 TRUE NOT EXISTS关键字表示如果不存在某种条件...(1)可以使用带有冒号字符串,比如'D HH:MM:SS' 、'HH:MM:SS'、'HH:MM'、'D HH:MM'、'D HH'或'SS'格式,都能被正确地插入TIME类型字段。...创建数据表,表包含一个JSON类型字段 js 。 可以通过“->”和“->>”符号,JSON字段中正确查询出指定JSON数据值。...能够分解复杂查询逻辑 数据库如果存在复杂查询逻辑,则可以将问题进行分解,创建多个视图 获取数据,再将创建多个视图结合起来,完成复杂查询逻辑。

3.8K20

数据库对象

索引 :用于提高查询性能,相当于书索引 存储过程 : 用于完成一次完整业务处理,没有返回值,但是可通过传出参数将多个值传给调用环境 存储函数 : 用于完成一次特定计算,具有返回值 触发器 :...或者创建在表 and 视图为什么使用视图(优点) 控制数据访问权限,对相关保密内容不给相关的人员查询到。...简化查询 减少数据冗余 数据安全操作 适应灵活多变需求 能够分解复杂查询逻辑 为什么不使用视图(缺点) 基于表,所以需要及时进行维护(维护成本高) 基本使用 **语法: ** CREATE VIEW...,提高安全性 和视图对比 - 视图时虚拟表 - 存储过程直接操作底层真正数据表 语法 **分类 : ** 没有参数(无参无返回) 仅仅带有IN类型(有参无返回) 仅仅带有OUT类型(无参有返回) 即带有...也就是说,如果一个表某个字段(外)引用了另一个表一个字段(主键),那么这个外键值必须存在于被引用主键表,否则就会违反参照完整性。

10210

FAQ系列之Phoenix

,Phoenix 查询优化器会选择正确索引来使用。...为什么这么快? Phoenix很快。100M 行全表扫描通常在 20 秒内完成(中型集群上窄表)。如果查询包含列上过滤器,这个时间减少到几毫秒。...为什么即使进行全扫描,Phoenix 也很快: Phoenix 使用区域边界将您查询分块,并使用可配置线程数在客户端上并行运行它们 聚合将在服务器端协处理器完成,合并返回给客户端数据量,而不是全部返回...如果您使用主键约束一个或多个前导列,则会发生这种情况。未过滤前导 PK 列查询,例如。...Phoenix 上扫描将包括空列,以确保仅包含主键(并且所有非列都为 null)行将包含在扫描结果

3.2K30

数据库工程师常见面试题

答: group by 和 order by 操作通常需要创建一个临时表来处理查询结果,所以如果查询结果很多严重影响性能。...答: 游标是结果集数据指针, 作用是为遍历结果集时, 存储每条记录结果。游标分为显式游标 和隐式游标。 问题 11: 触发器能否用 COMMIT, 为什么?...数据库视图有利于控制用户对表某些列访问。 数据库视图使用户查询变得简单。 视图是一个虚拟表,其内容由查询定义。同真实表一样,视图包含一系列带有名称列和行数据。...但是,视图并不在数据库以存储数据值集形式存在。行和列数据来自由定义视图查询所引用表, 并且在引用视图时动态生成。对其中所引用基础表来说,视图作用类似于筛选。...答: 自定义函数可以接受个或多个输入参数,其返回值可以是一个数值,也可以是一个表,但是自 定义函数不支持输出参数。 问题 23: 为什么要及时删除不用触发器?

3K40

精选MySQL面试题(附刷题小程序)

MySQL 基础 1.1 超、候选、主键、外分别是什么? 超: 在关系能唯一标识元组属性集称为关系模式。一个属性可以为作为一个超多个属性组合在一起也可以作为一个超。...当查询使用聚簇索引时,在对应叶子节点,可以获取到整行数据,因此不用再次进行回表查询。 4.23 联合索引是什么为什么需要注意联合索引顺序?...所谓视图,本质上是一种虚拟表,在物理上是不存在,其内容与真实表相似,包含一系列带有名称列和行数据。但是,视图并不在数据库以储存数据值形式存在。...视图返回与底层表表示和格式不同数据。 7.8 什么是游标? 游标是系统为用户开设一个数据缓冲区,存放SQL语句执行结果,每个游标区都有一个名字。...为了最终结果准确性,我们需要在不同分片节点中将数据进行排序并返回,并将不同分片返回结果集进行汇总和再次排序,最后再返回给用户。如下图所示: 9.6 MySQL复制原理以及流程是什么

70330

MySQL引擎和视图

MyIASM引擎(原本MySQL默认引擎):不提供事务支持,也不支持行级锁和外。 MEMORY引擎:所有的数据都在内存,数据处理速度快,但是安全性不高。...MyISAM索引叶子节点存储是行数据地址,需要再寻址一次才能得到数据。 InnoDB非主键索引叶子节点存储是主键和其他带索引列数据,因此查询时做到覆盖索引非常高效。...所谓视图,本质上是一种虚拟表,在物理上是不存在,其内容与真实表相似,包含一系列带有名称列和行数据。 但是,视图并不在数据库以储存数据值形式存在。...更改数据格式和表示,视图返回与底层表表示和格式不同数据。 四.视图优点 查询简单化:视图能简化用户操作。 数据安全性:视图使用户能以多种角度看待同一数据,能够对机密数据提供安全保护。...修改限制,当用户试图修改视图某些行时,数据库必须把它转化为对基本表某些行修改。事实上,当视图中插入或者删除时,情况也是这样。

98820
领券