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

-基础面试题总结

一个只能有一个主键。 (外码) :用来和其他建立联系用,是另一表主键,是可以有重复,可以是空值。一个可以有多个。 6. 为什么不推荐使用与级联?...所以,觉得这个影响可以忽略不计。) 还会因为需要请求对其他内部加锁而容易出现死锁情况; 对分库分不友好 :因为分库分是无法生效。 .........个人觉得上面这种回答不是特别的全面,只是说了存在一个常见问题。...简单来说:数据库事务可以保证多个对数据库操作(也就是 SQL 语句)构成一个逻辑上整体。构成这个逻辑上整体这些数据库操作遵循:要么全部执行成功,要么全部不执行 。 13....何为索引? 索引是一种用于快速查询和检索数据数据结构。常见索引结构有: B 树, B+树和 Hash。 索引作用就相当于目录作用。

64250

告别宽,用 DQL 成就新一代 BI

我们来分别看一下这几种情况下SQL复杂度以及DQL是怎么解决 属性化 我们用前面提到那个查询中国经理美国员工例子来看一下SQL要怎么写,员工表里有个部门外字段指向部门主键,部门表里又有经理字段指回员工...,字段有了子属性,子属性又有子属性,但并不难理解,也就是部门经理国籍是中国 在DQL语法体系中,被看成了属性,指向字段可直接用子属性方式引用,也允许多层和递归引用 等同化 这是两个一比一...,一个子表和多个子表写法完全相同 DQL还能让数据结构显得更为清晰 这是我们平时看到E-R图,它是个网状结构之间可能都有关联,多了就会显得很零乱,增删时间很容易遗漏或重复关联...DQL实现一套界面,我们还是按前面的例子,挨个看看每个JOIN是怎么呈现给业务人员,怎么拖拽 关联---中国经理美国员工 经过DQL解析后,数据就都变成业务人员可以理解清晰树状结构了 原先两个变到一个表里了...,业务人员已经完全不用去管后台是几个,怎么关联了,直接拖拽员工姓名,再拖拽部门经理姓名,然后再设置一下两个国籍,就可以了 关联 同样,多表变一表,主键相同,像员工,经理;客户

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

告别宽,用 DQL 成就新一代 BI

SQL复杂度以及DQL是怎么解决 属性化 我们用前面提到那个查询中国经理美国员工例子来看一下SQL要怎么写,员工表里有个部门外字段指向部门主键,部门表里又有经理字段指回员工,...,字段有了子属性,子属性又有子属性,但并不难理解,也就是部门经理国籍是中国 在DQL语法体系中,被看成了属性,指向字段可直接用子属性方式引用,也允许多层和递归引用 等同化 这是两个一比一...,一个子表和多个子表写法完全相同 DQL还能让数据结构显得更为清晰 这是我们平时看到E-R图,它是个网状结构之间可能都有关联,多了就会显得很零乱,增删时间很容易遗漏或重复关联...DQL实现一套界面,我们还是按前面的例子,挨个看看每个JOIN是怎么呈现给业务人员,怎么拖拽 关联---中国经理美国员工 经过DQL解析后,数据就都变成业务人员可以理解清晰树状结构了 原先两个变到一个表里了...,业务人员已经完全不用去管后台是几个,怎么关联了,直接拖拽员工姓名,再拖拽部门经理姓名,然后再设置一下两个国籍,就可以了 关联 同样,多表变一表,主键相同,像员工,经理;客户

80820

关键字类定义,定义,索引定义,方法定义

第一章 类定义描述类定义结构。介绍一个类可以包含熟悉类元素,如属性、方法和参数(在其他类语言中称为常量)。它还可以包含通常不在类中定义项,包括触发器、查询和索引。...Class_members是类成员零个或多个定义。第二章 定义描述定义结构。介绍定义了引用完整性约束。修改包含约束时,将检查约束。可以将定义添加到持久类中。...name(必需)是名称。这必须是有效类成员名称,并且不能与任何其他类成员名称冲突。 key_props(必需)指定受该约束一个或多个属性。具体来说,该属性必须与外部引用值匹配。...这是一个逗号分隔属性名称列表。这些属性必须在定义同一类中。 referenced_class(必需)指定(即指向类)。...name(必需)是索引名称。该名称必须遵循属性命名约定,并且在此类或中是唯一。该名称用于数据库管理目的(报告、索引构建、删除索引等)。

97810

深度长文探讨Join运算简化和提速

SQLJOIN 二. 等值JOIN剖析 1. 关联 2. 3. 主子表 三. JOIN语法简化 1.属性化 2.等同化 3.子表集合化 四. 维度对齐语法 五....A称为事实,B称为维。A中与B主键关联字段称为A指向B,B也称为A。...字段是指向department,departmentmanager字段又是指向employee(因为经理也是个员工)。...而且,如果事实中有多个分别指向多个,传统HASH分段JOIN方案每次只能解析掉一个,有多个JOIN要执行多遍动作,每次关联后都需要保持中间结果供下一轮使用,计算过程复杂得多,数据也会被遍历多次...如果内存还能把维放下的话,我们可以采用临时指向方法来处理

43810

MySQL入门(一)创建删除一个数据库

每列有一个特定数据类型,整数、字符串或日期。 行(Row): 水平记录,也称为元组。每行包含一组相关数据。...主键(Primary Key): 一列或一组列,其值能够唯一标识每一行。主键用于确保数据行是唯一(Foreign Key): 用于建立之间关系一列或一组列。...通常是另一表主键,用于确保引用完整性。 索引(Index): 数据库中一种数据结构,用于提高检索速度。通过在一个或多个列上创建索引,可以加快数据检索和查询效率。...查询(Query): 用于从数据库中检索数据命令或语句,通常使用结构化查询语言(SQL)编写。 触发器(Trigger): 一种在数据库中定义特殊存储过程,当特定事件发生时自动执行。...视图(View): 虚拟,是基于一个或多个实际查询结果。视图可以简化复杂查询操作,并提供对数据安全访问。

27720

SQL重要知识点梳理!

关系数据库:使用SQL语句方便在多个之间做复杂查询,同时有较好事务支持,支持对安全性有一定要求数据访问。 9.什么是数据库范式?...第三范式:(确保每列都和主键列直接相关,而不是间接相关) 数据每一列数据都和主键直接相关,而不能间接相关。 第四范式:要求把同一表多对多关系删除。 第五范式:从最终结构重新建立原始结构。...左连接: 包含左边全部行(不管右边中是否存在与它们匹配行),以及右边中全部匹配行。 右连接: 包含右边全部行(不管左边中是否存在与它们匹配行),以及左边中全部匹配行。...全连接: 包含左、右两个全部行,不管另外一边中是否存在与它们匹配行。...在数据之外,数据库系统还维护着满足特定查找算法数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。

78120

【MySQL 系列】MySQL 引擎篇

存储引擎是 MySQL 组件,用于处理不同类型 SQL 操作。不同存储引擎提供不同存储机制、索引技巧、锁定水平等功能,使用不同存储引擎,还可以获得特定功能。...1、MySQL 引擎介绍 1.1、MySQL 引擎介绍 存储引擎是 MySQL 组件,用于处理不同类型 SQL 操作。...支持行级锁定和约束,适合于需要高并发和数据完整性应用场景。 InnoDB 引擎使用聚簇索引,将数据和索引存储在同一个B树结构中,提高了查询性能。...2.3、 MyISAM 不支持,而 Innodb 则支持建立数据之间关联。...中 frm 是数据结构定义文件,MYD 是数据文件,MYI 则是存储索引文件。

18010

分库分学习2-常用术语

水平分: 一库一表->一库多表 水平分库: 采用取模方式将满足条件方式存储到不同库中,比如单双数据库将数据存储到不同库中,一库一表->多库一表 2.相关术语 逻辑: 水平拆分数据总称,订单...ds_0.t_order_1 绑定: 分片规则一致主表和子表,t_order和t_order_item都是以order_id进行分片,绑定之间分区完全相同,则此两张互为绑定关系。...绑定之间多表关联查询不会出现笛卡尔积,查询效率会大大提升。绑定关系后,路由sql将会减少,提升效率。 广播: 所有分片数据源都存在结构数据在每个数据库均一致。...适用于数据量不大但和海量数据关联场景。 分片: 用于分片数据库字段,是将数据库()水平拆分关键字段。如果sql中无分片,则路由效果差,也即此时查询语句是多种,此时查询效率不是很好。...sql路由: 把针对逻辑数据操作映射到对数据节点操作过程 不携带分配为广播 根据分片可以分为: 直接路由 标准路由:推荐分片方式,使用范围不包括关联查询 或 仅包含绑定之间关联查询sql

61410

3分钟速读原著《高性能MySQL》(二)

因此数据库默认排序可以符合要求情况下不要使用排序操作;尽量不要包含多个排序,如果需要最好给这些列创建复合索引。...2.分区类型 2.1 RANGE分区:行数据基于一个给定连续范围分区 2.2 LIST分区:RANGE,区别在于给定不是连续范围,是离散值 2.3 HASH分区:根据用户自定义表达式返回值进行分区...4.视图使用场景 权限控制时候,不希望用户访问中某些含敏感信息列,比如工资 关键信息来源于多个复杂关联,可以创建视图提取我们需要信息,简化操作 三. 1.定义 是另一表主键,...可以有重复, 可以是NULL 2.作用 用来和其他建立联系用 3.个数 一个可以有多个 4.建议 引用自阿里Java开发手册:【强制】不得使用与级联,一切概念必须在应用层解决...如果第二次查询SQL和第一次查询SQL完全相同(注意必须是完全相同,即使多一个空格或者大小写不同都认为不同)且开启了查询缓存,那么第二次查询就直接从查询缓存中取结果 4.缓存数据失效时机 在结构或数据发生改变时

50710

缺点

比如基于一对多A和B构建,如果A中有计算指标(金额),在宽中就会重复,基于重复指标再汇总就会出现错误。...一个事实会对应多个,维又有维,而且之间还可能存在自关联/循环关联情况,这种结构在数据库系统中很常见,基于这些结构构建,尤其要表达多个层级时候,宽表字段数量会急剧增加,经常可能达到成百上千个...即将维(本字段值转换成对应维)记录地址。...当事实较大无法全内存时,SPL 提供了序号化方法:将事实字段值转换为维对应记录序号。...,只基于orders单查询就可以了,指向字段当成属性直接使用,有多少层都可以引用下去,很好表达。

2.1K20

Python | 数据库中

问题描述 (TABLE)是数据库中用来存储数据对象,是有结构数据集合,是整个数据库系统基础。SQL数据库中用于存储数据工具。 包含数据库中所有数据数据库对象。 定义为列集合。...2 主键与 (1) 主键:主键是指在中可以唯一表中每一行一列(或列组合)。其特点是:不可以重复,不可以为空,一个只能有一个主键。...例如:(账号,昵称,密码)中账号列就满足其特点可以充当主键。 (2) 是将两个连接在一起,一个主键可以在另一个中当作这个,进而将两个连接在一起。...其特点是:可以重复,可以为空,一个可以有多个。 例如:1(账号,昵称,密码)中账号列(主键)就可以在2(身份证id,名字,性别,生日,住址,账号)中,从而将1和2关联起来。...结语 在数据库建立中满足三大范式可以很大程度上减小数据库冗余,提升数据库性能;主键正确建立可以保证数据唯一性,正确建立可以保证数据完整性和一致性,同时将不同关联在一起。

1.4K20

数据蒋堂 | 怎样生成有关联测试数据

我们以前在讲JOIN运算时说过,数据库关联关系可以分成维、主子三种情况。传统E-R图并没有这么明确区分,但在这里我们就需要做这件事情了。...日期本身也有类似的隐含关系,它本身是一个字段,但一般数据库中都很少会有一个日期来作为它指向,这个也需要补充出来。在单生成测试数据时也有这类问题。...排定次序 知道了关联关系后,就可以排定生成数据次序了。 我们把看成一个逻辑一起处理,主子表中子表则依附于主表先隐藏起来,子表其它也被视为主表,等主表处理完再来处理子表。...这个动作能执行结束前提是E-R图中没有有向圈(A是B时从B画一条指向A有向边),这个要求对绝大多数数据库结构来讲都是满足。...有时会发生某个自己是自己现象,这时在标号时忽略这个关系就可以了。但如果发生涉及多个有向圈时情况就复杂多了,我们这里限于篇幅不讨论这种情况了,毕竟也非常罕见。

81720

SQL优化总结之一

一、实践中如何优化mysql   1) SQL语句及索引优化   2) 数据库结构优化   3) 系统配置优化   4) 硬件优化 二、索引底层实现原理和优化 2.1 底层实现   在DB2数据库中索引采用是...B+树结构,索引叶子节点上包含索引值和一个指向数据地址指针。...(2)所有分支节点(可看做索引索引)中仅包含各个子节点(即下一级索引块)中关键字最大值即指向其子节点指针。   ...(4)叶节点包含了所有的关键字,即在非叶节点出现关键字也会出现在叶子节点中。   B+树有两个头指针,一个指向根节点,另一个指向关键字最小叶节点。...C、杜绝不必要子查询和连接,子查询在执行计划一般解释成连接,多余连接表带来额外开销。

1.5K50

21个MySQL设计经验准则

因此,我们一般避免使用MySQL保留字,select、interval、desc等等 12. 不搞关联,一般都在代码维护 什么是呢?...,也叫FOREIGN KEY,它是用于将两个连接在一起。FOREIGN KEY是一个一个字段(或字段集合),它引用另一个PRIMARY KEY。...它是用来保证数据一致性和完整性。 阿里Java规范也有这么一条: 【强制】不得使用与级联,一切概念必须在应用层解决。 我们为什么不推荐使用呢?...使用存在性能问题、并发死锁问题、使用起来不方便等等。每次做DELETE或者UPDATE都必须考虑约束,会导致开发时候很难受,测试数据造数据也不方便。...比如一个班级有多个学生,一个部门有多个员工等等。这种原则就是:在从(N这一方)创建一个字段,以字段作为指向主表(1这一方)主键。

1.2K21

数据库优化面试题

1.实践中如何优化mysql 1) SQL语句及索引优化 2) 数据库结构优化 3) 系统配置优化 4) 硬件优化 2.索引底层实现原理和优化 在 DB2 数据库中索引采用是 B+ 树结构...,索引叶子节点上包含索引值和一个指向数据地址指针。...(2)所有分支节点(可看做索引索引)中仅包含各个子节点(即下一级索引块)中关键字最大值即指向其子节点指针。...(4)叶节点包含了所有的关键字,即在非叶节点出现关键字也会出现在叶子节点中。 B+树有两个头指针,一个指向根节点,另一个指向关键字最小叶节点。...C、杜绝不必要子查询和连接,子查询在执行计划一般解释成连接,多余连接表带来额外开销。

4.1K21

2022 最新 MySQL 面试题

: 不支持事务, 但是每次查询都是原子; 支持级锁, 即每次操作是对整个加锁; 存储总行数; 一个 MYISAM 有三个文件: 索引文件、 结构文件、 数据文件; 采用菲聚集索引, 索引文件数据域存储指向数据文件指针...连接 其结果集中不仅包含符合连接条件行 ,而且还会包括左 、右或两个 所有数据行, 这三种情况依次称之为左连接, 右连接, 和全连接。...主键、 和索引区别 定义: 主键 – 唯一标识一条记录, 不能有重复, 不允许为空 是另一表主键 , 可以有重复 , 可以是空值 索引 – 该字段没有重复值, 但可以有一个空值...作用: 主键 – 用来保证数据完整性 – 用来和其他建立联系用 索引 – 是提高查询排序速度 个数: 主键 – 主键只能有一个 – 一个可以有多个 索引 – 一个可以有多个唯一索引...如果大家觉得还不错,点赞,收藏,分享,一三连支持一下~

8410

mysql数据库面试题目及答案_java面试数据库常见问题

聚集索引(innodb)叶节点就是数据节点,而非聚集索引(myisAM)叶节点仍然是索引节点,只不过其包含一个指向对应数据块指针。...1)事务:MyISAM不支持,InnoDB支持 2)锁级别: MyISAM 级锁,InnoDB 行级锁及约束 (MySQL级锁有两种模式:共享读锁(Table Read Lock)和独占写锁...什么意思呢,就是说对MyISAM进行读操作时,它不会阻塞其他用户对同一表读请求,但会阻塞对同一表写操作;而对MyISAM写操作,则会阻塞其他用户对同一表读和写操作。...比如在设计一个订单数据时候,可以将客户编号作为一个和订单建立相应关系。而不可以在订单中添加关于客户其它信息(比如姓名、所属公司等)字段。...是另一表主键, 组合索引:索引可以覆盖多个数据列,如像INDEX(columnA, columnB)索引。

89130

数据库设计 基本思路

大家好,又见面了,是你们朋友全栈君。好数据结构会影响速度。好数据库设计会影响数据库操作效率。特别是数据多时候,如果结构不好的话操作时候条件(where后内容)会变非常复杂。...SQL是关系数据库中用到一种语言。所以,为了简化SQL关系(内部和外部)要尽量设计合理。...字段原子化是指一个字段里不要包括多个同类型值;: name interests jim fishing,football lilei walking....这样可以让主表中不存在NULL; c)不想轻易就查出来数据,比如一个人工资详情,等.可以在主另一表中放着; d)大文本,通过一个关联,这样可以提高查询效率; 一对多 情况可以如下:...有一个人员信息info,里面包括一个:email;这个字段里存是邮箱emailBox里主键:id;因为一个人可以对应多个邮箱,但一个邮箱只能属于一个人(他自己要共用木有办法) 多对多 对优化设计用处最大

82520

视图和索引(数据库学习)

SQL Server 可以根据用户需求重新定义数据结构,这种数据结构就是视图(用户外模式) 视图:是从一个或几个基本(模式)导出来,是一个虚,并不表示任何物理数据。...索引分类。创建索引时应考虑哪些问题? 索引(index):是对数据库中一个或多个值进行排序结构 ,其主要目的是提高SQL Server 系统性能,加快查询数据速度。...(通过记录关键值指向基本记录) 根据组织方式分为:(最多存在250个) -|:聚集索引,会对表中数据进行物理排序。...-|:对小型进行索引可能不会产生优化效果。 -|:对于主键和列应考虑建索引。...(主键查询、连接) -|:很少在查询中使用列及值很少列不应考虑建索引。 -|:视图中如果包含聚合函数或连接时,创建视图索引可以显著提高查询性能。

1.1K30

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券