面试题--数据库(一)

MySQL数据库面试题(一)(MySQL Database Interview Questions I) MySQL数据库面试题涵盖了从基础知识到高级概念的广泛内容,包括数据库设计、事务处理、查询优化、存储引擎等多个方面。本章详细介绍MySQL数据库面试题希望对大家有帮助。 阅读详情

转载自常见面试题整理–数据库篇

(一)什么是存储过程?有哪些优缺点?

存储过程是一些预编译的SQL语句。

更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。

存储过程是一个预编译的代码块,执行效率比较高
一个存储过程替代大量T_SQL语句 ,可以降低网络通信量,提高通信速率
可以一定程度上确保数据安全

如果你对存储过程不熟悉,建议阅读:存储过程详解-博客园


(二)索引是什么?有什么作用以及优缺点?

索引是对数据库表中一或多个列的值进行排序的结构,是帮助MySQL高效获取数据的数据结构

你也可以这样理解:索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。

MySQL数据库几个基本的索引类型:普通索引、唯一索引、主键索引、全文索引

1.索引加快数据库的检索速度
2.索引降低了插入、删除、修改等维护任务的速度
3.唯一索引可以确保每一行数据的唯一性
4.通过使用索引,可以在查询的过程中使用优化隐藏器,提高系统的性能
5.索引需要占物理和数据空间 

如果你对索引还不太熟悉,建议阅读:漫谈数据库索引


(三)什么是事务?

事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。

如果你对索引还不太熟悉,建议阅读:数据库事务


(四)数据库的乐观锁和悲观锁是什么?

数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。

乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。

悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作
乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。

如果你对两种锁还不太熟悉,建议阅读:深入理解乐观锁与悲观锁


(五)使用索引查询一定能提高查询的性能吗?为什么?

通常,通过索引查询数据比全表扫描要快.但是我们也必须注意到它的代价.

索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时,索引本身也会被修改. 这意味着每条记录的INSERT,DELETE,UPDATE将为此多付出4,5 次的磁盘I/O. 因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢.使用索引查询不一定能提高查询性能,索引范围查询(INDEX RANGE SCAN)适用于两种情况:

基于一个范围的检索,一般查询返回结果集小于表中记录数的30%
基于非唯一性索引的检索


(六)简单说一说drop、delete与truncate的区别

SQL中的drop、delete、truncate都表示删除,但是三者有一些差别

delete和truncate只删除表的数据不删除表的结构
速度,一般来说: drop> truncate >delete
delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;
如果有相应的trigger,执行的时候将被触发. truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.

如果你对这三者的用法还不太熟悉,建议阅读:drop、truncate和delete的区别


(七)drop、delete与truncate分别在什么场景之下使用?

不再需要一张表的时候,用drop
想删除部分数据行时候,用delete,并且带上where子句
保留表而删除所有数据的时候用truncate


(八)超键、候选键、主键、外键分别是什么?

超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含候选键和主键。
.
候选键:是最小超键,即没有冗余元素的超键。
.
主键:数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合。一个数据列只能有一个主键,且主键的取值不能缺失,即不能为空值(Null)。
.
外键:在一个表中存在的另一个表的主键称此表的外键。


(九)什么是视图?以及视图的使用场景有哪些?

视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,试图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。

只暴露部分字段给访问者,所以就建一个虚表,就是视图。

查询的数据来源于不同的表,而查询者希望以统一的方式查询,这样也可以建立一个视图,把多个表查询结果联合起来,查询者只需要直接从视图中获取数据,不必考虑数据来源于不同表所带来的差异


(十)说一说三个范式。

第一范式(1NF):数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。
.
第二范式(2NF):数据库表中不存在非关键字段对任一候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。
.
第三范式(3NF):在第二范式的基础上,数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖则符合第三范式。所谓传递函数依赖,指的是如 果存在”A → B → C”的决定关系,则C传递函数依赖于A。因此,满足第三范式的数据库表应该不存在如下依赖关系: 关键字段 → 非关键字段 x → 非关键字段y

数据仓库面试题(一) 1. 简述数据仓库架构 ? 2. 简述数仓架构设计的方法和原则 ? 3. 简述数据仓库分层(层级划分),每层做什么?分层的好处 ? 4. 简述数据分层是根据什么 ? 5. 简述数仓分层的原则与思路 ? 6. 数仓建模常用模型吗?区别、优缺点? 阅读详情

相关推荐

【数据仓库面试题合集①】数据建模高频面试题及解析

这是《数据仓库面试题合集》系列的第一篇,后续我还会围绕:ETL 设计与调度策略实时数仓建模思路SQL 性能调优数据治理与血缘追踪。

晴天彩虹雨的博客 1193

Oracle面试题

将导致整个表记录的顺序的调整,会耗费相当大的资源。这是因为引擎在处理查询和连接时会逐个比较字符串中每一个字符,而对于数字型而言只需。数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的。型字段,若只含数值信息的字段尽量不要设计为字符型,这会降低查询和连接的性能,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执。,所以怎样建索引需要慎重考虑,视具体情况而定。存储过程是数据库中的一个重。,只有对执行过程的调。,例如,当需要重复引。

2301_77822280的博客 2912

【千里之行,始于足下】大数据高频面试题——数据仓库篇(一)

1.你是如何对数据仓库进行分层的 2. 数据仓库为什么要分层 3. 你的每一层数仓都做了什么 4.关系建模和维度建模的区别 5.维度建模的步骤是什么 6.你建了哪些维度表和事实表 7.什么是事实表?什么是事实 8.你是如何将模拟数据导入到HDFS的(业务数据、用户行为日志) 9.看你用到了Kafka,为什么要用Kafka

北慕辰的博客,欢迎各位大佬光临!! 4692

数据库面试题50道

常规技术面试题(数据库) 触发器的作用? 触发器是一个特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 什么是存储过程?用什么来调用? 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。

AA2207748005的博客 2812

数据库常见面试题(一)

数据库常见面试题一一、基本概念1.主键、外键、超键、候选键1.1、主键、外键的作用?2.为什么用自增列作为主键3.触发器的作用?4.什么是存储过程?用什么来调用?5.存储过程的优缺点?6.存储过程与函数的区别7.什么叫视图?游标是什么?8.视图的优缺点9.drop、truncate、 delete区别10.什么是临时表,临时表什么时候删除?11.非关系型数据库和关系型数据库区别,优势比较?12.数...

ditto77的博客 1125

大数据面试通关手册|数据仓库面试题(一)

1.维表和宽表的考查(主要考察维表的使用及维度退化手法) 维表数据一般根据ods层数据加工生成,在设计宽表的时候,可以适当的用一些维度退化手法,将维度退化到事实表中,减少事实表和维表的关联 2.数仓表命名规范 通用规范 表名、字段名采用下划线分隔词根(consultorder->consult_order) 每部分使用小写英文单词,属于通用字段的必须满足通用字段信息的定义。 表名、字段名需以字母为开头。 表名、字段名最长不超过64个英文字符。 优先使用词根中已有关键字(数仓标准配...

微信搜:import_bigdata,大数据领域硬核原创作者 1235

面试题之存储过程

一、什么是存储过程 简单来说,存储过程就是一组预先编译好的sql语句集。 二、创建语法 create procedure 存储过程名(参数列表) begin //....存储过程体 end; 参数列表主要有三种形式: IN : 需要调用者传入 OUT : 作为返回值 INOUT : 调用者传入参数,对应的可以有返回值 注意点: 由于sql语句默认以";"分号作为分隔符,因此存储过...

weixiaohuai的博客 1万+

无人机基本组成部件

无人机基本组成部件

qq_37410522的博客 1万+

常见面试题整理--数据库篇

(一)什么是存储过程?有哪些优缺点? 存储过程是一些预编译的SQL语句。 更加直白的理解:存储过程可以说是一个记录集,它是由一些T-SQL语句组成的代码块,这些T-SQL语句代码像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用到这个功能的时候调用他就行了。 存储过程是一个预编译的代码块,执行效率比较高 一个存储过程替代大量T_SQL语句 ...

weixin_30647065的博客 2161

基因组研究之单倍型T2T基因组(一)

单倍型T2T基因组(Haplotype-resolved T2T genome)是一种高精度、高连续性、高完整性的基因组组装技术,它能够提供从端粒到端粒的完整基因组序列,包括所有的基因和非编码序列。完整覆盖:T2T基因组覆盖从端粒到端粒的染色体序列,包含所有的基因和非编码序列,包括以往难以解析的端粒和着丝粒区域。单倍型解析:单倍型T2T基因组能够区分来自父母本的遗传信息,进行亚基因组不对称演化研究,挖掘单倍型等位基因间的表达差异,这对于重测序、性状定位、进化、基因功能、基因编辑等研究至关重要。

2401_89507557的博客 2438

【DAB收音机】DAB 认证介绍

DAB 认证ESTI 标准文档: ETSI 103461实际过认证时,需要根据产品的受众国家及区域,参考当地官方是否有国内认证协议。需要参考当地文档进行功能开发。例如:阿联酋地区用《UAE.S 5021 _ 2018.pdf》标准进行认证。ESTI 的DAB认证协议规定了家用和车载数字无线电的最低要求,及其对应的测试方法,是数字无线电认证标志规定的技术基础。本文以车载数字无线电接收器为例,进行部分DAB认证的介绍,详情请见官方文档。或联系博主获取DAB ESTI 103461的中文翻译资料。

qq_15271231的博客 1219

经典SQL面试题

SQL 什么是数据库事务? 数据库事务是指:一组SQL语句,要么全部执行成功,要么全部执行失败 四大特性:(ACID)一致性,原子性,隔 离性,持久性(一旦事务提交,对数据的修改是永久性的) 会出现哪些并发不一致性的问题 丢失数据:一个事务对数据进行修改,在事务提交之前,另一个事务对同一数据进行修改,覆盖之前的修改 脏读:一个事务读取另外一个事务的修改,但未提交(进行了回滚)的数据,造成两个事务得到的数据不一致 不可重复读:在同一事务中,某查询操作在一个时间读取某一行的数据和之后一个时间读取该行数据,发现数

凡间角落 1545

我从华为身上学到的项目管理经验 -- 需求篇

记录这三年,关于项目管理上的一些心得体会 – 需求篇对于需求,我们可以根据不同的角色、理解拆分成三个过程:简单来说就是:需求分析原始需求、 需求拆分为系统需求、 需求实现为功能需求**需求分析**: 将客户需求 输出成 需求描述。 需求经理需要把 需求 转换成 客户能够接受的 初始需求 IR(Initial Requirement) 对于用户来说,我只管提 我的原始需求是

minminzhe520的博客 3万+

数据仓库面试题整理(一)

面试题整理数据仓库基础范式建模和维度建模主题域划分数据仓库分层优点事实表分类缓慢变化维数据输出SLAHive基础Hive Join类型Hive Map和Reduce个数常见Hive SQL面试题连续登陆N日留存共同好友 数据仓库基础 范式建模和维度建模 1.范式建模 2.维度建模 主题域划分 1.主题域和业务过程 2.主题域和主题 数据仓库分层优点 数仓分层优点: 1.解耦数据开发过程,专人专事,降低出问题的风险的同时方便问题定位。 2.用空间换时间,用多人多步操作换取使用数据的高效性。 3.数据流向规范,

无语梦醒的博客 2356

Python 爬虫实战:医学临床指南爬取(含 PDF 解析与结构化存储)

在当今数字化时代,医学临床指南作为医生进行科学诊疗的重要参考资料,包含大量经过临床验证的诊疗路径和建议。这些指南通常发布在权威医学网站上,数量庞大且更新频繁。如何自动化地抓取并存储这些指南,成为医疗数据分析、医学研究以及医疗 AI 模型训练等工作的关键第一步。本文将系统讲解如何利用 Python 爬虫技术从权威医学网站爬取临床指南内容,并实现 PDF 解析与结构化存储。

u014481728的博客 449

第七天 Labview进阶(7.2 与汇川PLC通信)

运行环境: Labview 2020 Autoshop v4.10.1.1 该文档中包括Labview程序和汇川PLC程序,可以完美实现Labview与汇川PLC的通信。具体的使用教程可以参考本人的相关文章,讲解详尽,请尽情享用!

weixin_38637405的博客 3527

每日一问|数据仓库面试题这些你都会吗?

问题1: 数据仓库为什要分层?为什么分层数据分层是一套让我们的数据体系更有序的行之有效的数据组织和管理方法。数据分层不是银弹,也没有绝对标准,当然也不能包治百病,不能解决所有的数据问题,...

huzechen的博客 2484

手把手教你学simulink(36.1)--ACAC变换器场景示例:基于 Simulink 的矩阵变换器(Matrix Converter)

矩阵变换器(Matrix Converter, MC)是一种直接将交流电(AC)转换为不同频率和幅值的交流电的电力电子设备。与传统的基于直流环节的变频器不同,矩阵变换器不需要中间的直流环节,而是通过双向开关直接在输入和输出之间进行能量传递。这种结构使得矩阵变换器具有更高的效率、更小的体积和更好的动态响应。在本项目中,我们将使用 MATLAB/Simulink 来建模和仿真一个矩阵变换器,并分析其性能。Simulink 是一个强大的仿真工具,特别适合用于电力电子系统的建模和仿真。

MHD0815的博客 1065

数据仓库项目管理面试题整理(一)

作者:Jerome    文章来源:http://www.chinabi.net/blog/user1/lastwood/index.html   项目管理问题整理1.企业经历过两次失败的数据仓库建设,现在是第三次,人们普遍认为这次也将会失败。项目经理应该作些什么来消除人们对数据仓库的消极看法?2.企业的业务系统方,即OLTP方的工作人员对数据仓库方不配合,比如对数据仓库的源数据申请置

〓程序人生〓 1805

YOLOv8【第十章:多任务扩展深度篇·第16节】车道线检测——基于 YOLOv8-Seg 的车道线分割与拟合!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数据库面试题(一)

依照某种数据模型进行组织并存放到存储器的数据集合DBMS用来操纵和管理数据库的大型服务软件DBS.DataBase System – 数据库系统:即 DB+DBMS ,指带有数据库并整合了数据库管理软件的计算机系统, 指带有数据库并整合了数据库管理软件的计算机系统数据按照预先设置的组织结构, 存储在物理存储介质 上,数据之间可以做关联操作。

2301_77645750的博客 567

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

mysql数据库面试题一

更多:mysql数据库面试题 1 、 drop,delete与truncate的区别查看答案>> 2 、 数据库范式查看答案>> 3 、 简述Mysql Innodb引擎和MyIASM引擎的区别查看答案>> 4 、 Mysql提供了哪几种事务隔离级别?查看答案>> 5 、 简述Mysql几种Join的区别查看答案>> 6 、 ...

wodwl的专栏 692

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

考研复试数据库原理面试题(一)绪论、关系数据库

写作目的:为了应对考研复试中的面试,我整理了导师可能提问的地方,力求用口语化的语言描述出来。 这只是一部分,陆续还有数据库原理的其它章节,还会推出数据结构、计算机网络、数据库的复试题整理。 数据库原理我的参考书是《数据库原理及应用第二版(雷景生)》,因为一些机缘巧合选择了这本书。不过没关系,网上有很多关于数据库原理的面试题,而且答案也很容易搜到。思维导图在我的processon。如果对你有帮助...

春季觉醒的博客 7212

数据库面试题一

来存储年、月、日、时、分、秒的信息,它的范围是1000-01-01 00:00:00到 9999-12-31 23:59:59,它直接存储用户输入的值,不受时区影响。char类型:长度固定,存储字符,插入的长度小于定义长度时,则用空格填充,存取速度比varchar快得多,适合存储很短的,固定长度的字符串,如手机号,MD5值等。varchar类型:长度可变,存储字符,小于定义长度时,按实际插入长度存储,存取速度比char慢得多,适合用在长度不固定场景,如收货地址,邮箱地址等。

2301_76231794的博客 529
上一篇: Activiti工作流框架学习七:流程定义图以及流程实例运行状态图
下一篇: 面试题--Java(二)
章 鱼
博客等级 码龄10年 203粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值