面试复试基础题目-数据库相关

  1. 维护数据库的完整性,一致性,你喜欢用触发器还是自写业务逻辑?为什么?
    尽可能用约束,比如主键、外键、唯一键、非空字段等,具体问题具体分析,数据量巨大的不要用触发器,小的可以用,数据量到了一定量一定要自写业务逻辑。

  2. 什么是事务?什么是锁?
    事务transaction时并发控制的基本单位,它时一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单位。事务时数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。
    在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这回产生冲突,为了解决并发性问题,需要锁。悲观锁是假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作;乐观锁是假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性,乐观锁不能解决脏读问题。

  3. 什么是索引?有什么优点?
    索引是数据库中用于提高检索性能的排好序的数据结构,通过建立特定的数据结构将某个列或多个列的值与它们在数据库中的行关联起来,以加快查询速度。
    索引从功能逻辑上分为普通索引、唯一索引、主键索引、全文索引;物理实现上分为聚簇索引和非聚簇索引;按照作用字段分为单列索引和联合索引。
    索引优点是提高查询性能。缺点是占用存储空间和索引的维护开销。

  4. 视图是什么?游标是什么?举例游标的使用方法?
    视图是一种虚拟的表,具有和物理表相同的功能,可以对视图进行增改查,视图通常是有一个表或者多个表的行或列的子集,对视图的修改不影响基本表,视图可以进行数据过滤,将用户不需要或泄露私密信息的数据过滤掉,只将有用的数据作为一个单独的对象展现出来。
    游标是对查询出来的结果集作为一个单元来有效处理,游标可以定在该单元中的特定行,从结果集的当前行检索一行或者多行,可以对结果集当前行做修改。
    游标的使用,1.Declare游标,声明游标 2.Open游标,打开游标 3.从一个游标中Fetch信息,提取数据 4.Close游标,关闭或释放游标

  5. 什么是存储过程?有什么优点?
    储存过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数来执行。存储过程只在创造时进行编译,以后每次执行存储过程都不需要再重新编译,而一般SQL语句每执行一次就编译一次,当对多个报表进行复杂操作时,可将此复杂操作用存储过程封装起来使用,存储过程可以重复使用,可减少开发人员的工作量,安全性比较高,可以设定用户使用权限。
    优点:1.减少网络通信量,比一条一条执行SQL语句要效率高 2.执行速度更快 3.更强的适应性 4.分布式工作
    缺点:1.更改比较繁琐 2.可移植性差

  6. 触发器分为几种,分别有什么作用?
    触发器分为四种,1.DML触发器,当发出UPDATE\INSERT\DELETE命令时就可以触发;2.Instead-of触发器,当像一个由多个表联接成的视图做DML操作时,在触发器写代码分别对各表做相应的DML操作,一般情况下不允许;3.DDL触发器,当发出CREATE\DROP\ALTER\TRUNCATE命令时会触发已定义好的触发器,可以监控某个用户或者整个数据库的所有对象的结构变化;4.DB事件触发器,当STARTUP\SHUTDOWN\LOGON\LOGOFF数据库时触发,可以用来监控数据库什么时候关闭、打开,或者用户的logon、logoff数据库情况。

  7. Char和vchar最长长度是多少?
    非空Char最大总长度是255字节,非空varchar最大总长度是65533字节;
    可空char最大总长度是254字节,可空varchar最大总长度是65532字节。

  8. 如何优化一条sql语句?
    1.查询SQL尽量不要不要用select*,而是具体字段;2. 避免在where子句中使用or连接条件;3. 尽量使用数值替换字符串类型,比如性别;4. 使用varchar代替char;5. Where中使用默认值代替null;6. Inner join\left join\right join,优先使用inner join;7. 提高group by语句的效率,先过滤再分组;8. 操作delete或者update语句,价格limit或者循环批次删除;9. 批量插入性能提升;10. 表连接不宜太多,索引不宜太多,一般5个以内;11. 符合索引最左特性;12. 优化like语句;13. 设计表的时候,所有表和字段都添加相应的注释

  9. 有哪几种锁,什么情况下用不同的锁?
    悲观锁是假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作;乐观锁是假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性,乐观锁不能解决脏读问题。乐观锁可以使用自增长的整数表示数据版本号,更新时检查版本号是否一致,也可以使用时间戳来实现。悲观锁需要使用数据库的锁机制。在实际生产环境中,如果并发量不大且不允许脏读,可以使用悲观锁解决并发问题;但如果系统的并发非常大的话,悲观锁就会带来非常大的性能问题,所以我们就要选择乐观锁的方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/578145.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

更易使用,OceanBase开发者工具 ODC 4.2.4 版本升级

亲爱的朋友们,大家好!我们的ODC(OceanBase Developer Center )再次迎来了重要的升级V 4.2.4,这次我们诚意满满,从五个方面为大家精心打造了一个更加易用、贴心,且功能更强的新版本,相…

如何写好代码?

文章目录 前言内容代码应当易于理解命名注释格式循环和逻辑设计函数设计类其它(编程规范、静态检查工具)重构 前言 在软件开发领域,写好代码是至关重要的一环。不论是在学校学习的学生,刚刚毕业的应届生,还是刚步入企…

JAVA SWING JTABLE表格,点击表头数据可以排序,且第一二行位置固定,不参与排序

对于JAVA SWING 界面开发,使用表格JTABLE开发过程中,一些情况下可能需要在点击表头时对数据进行排序处理。对于简单的排序处理,jtable的setAutoCreateRowSorter方法可满足,但是对于高要求的排序,则满足不了。 比如&am…

《html自用使用指南》--基于w3School实践

1.基础标签 文本输入时&#xff0c;在编辑器中的换行&#xff0c;多个空格&#xff0c;都被编辑器看作一个空格 <p> 这个段落 在源代码 中 包含 许多行 但是 浏览器 忽略了 它们。 </p>结果&#xff1a;这个段落 在源代码 中 包含 许多行 但是 浏览器…

惊!文件夹突变文件,揭秘背后原因及数据恢复秘籍

在使用电脑时&#xff0c;我们有时会遇到一些意想不到的问题。比如&#xff0c;你可能会突然发现&#xff0c;原本存储着大量重要资料的文件夹&#xff0c;竟然变成了一个无法打开的文件。这种情况听起来可能有些匪夷所思&#xff0c;但它确实存在&#xff0c;且给用户带来了巨…

微信收款码0.2费率开通

很多人想申请低手续费率的收款码不知从何下手&#xff0c;在参考了大量博客教学之后&#xff0c;终于搞懂了详细流程以及注意事项。在此记录一下。我申请的是一个只需要0.2%费率的微信收款码&#xff0c;申请时间是2022年2月12日。申请之前只需要准备营业执照和法人身份z&#…

用不了ChatGPT?快试试免费又强大的Anthropic Claude

一、Claude 简介 Anthropic 官方&#xff1a; https://www.anthropic.com/product Claude 是最近新开放的一款 AI 聊天机器人&#xff0c;是世界上最大的语言模型之一&#xff0c;比之前的一些模型如 GPT-3 要强大得多&#xff0c;因此 Claude 被认为是 ChatGPT 最有力的竞争…

25计算机考研院校数据分析 | 南京大学

南京大学&#xff08;Nanjing University&#xff09;&#xff0c;简称“南大”&#xff0c;是中华人民共和国教育部直属、中央直管副部级建制的全国重点大学&#xff0c;国家首批“双一流”、“211工程”、“985工程”重点建设高校&#xff0c;入选首批“珠峰计划”、“111计划…

Perfectly Clear Workbench for mac/win:让图像清晰不再是难题

在数字时代&#xff0c;图像处理已经成为我们日常生活和工作中的必备技能。无论是专业摄影师&#xff0c;还是业余爱好者&#xff0c;都渴望拥有一款能够轻松提升图像质量的软件。今天&#xff0c;我要向大家推荐一款卓越的图像清晰处理软件——Perfectly Clear Workbench&…

NAT网络地址转换实验(华为)

思科设备参考&#xff1a;NAT网络地址转换实验&#xff08;思科&#xff09; 一&#xff0c;技术简介 NAT&#xff08;Network Address Translation&#xff09;&#xff0c;即网络地址转换技术&#xff0c;是一种在现代计算机网络中广泛应用的技术&#xff0c;主要用于有效管…

将游戏界面与注册/登录界面连接到一起

一、 导包 在注册页面中导入一个import subprocess包 二、 使用代码将其连接到一起 在循环中加入下面这一行代码&#xff0c;用来实现效果 subprocess.run(["python", "game代码.py"]

容器安全-镜像扫描

前言 容器镜像安全是云原生应用交付安全的重要一环&#xff0c;对上传的容器镜像进行及时安全扫描&#xff0c;并基于扫描结果选择阻断应用部署&#xff0c;可有效降低生产环境漏洞风险。容器安全面临的风险有&#xff1a;镜像风险、镜像仓库风险、编排工具风险&#xff0c;小…

【图解计算机网络】TCP协议三次握手与四次挥手

TCP协议三次握手与四次挥手 三次握手流程为什么是三次握手&#xff0c;而不是两次或四次四次挥手流程TIME_WAIT 为什么要等待 2MSL为什么握手是三次&#xff0c;挥手是四次&#xff1f; 三次握手流程 首先是客户端&#xff08;也就是我们的浏览器&#xff09;发送一个SYN标志位…

在Jupyter notebook中添加虚拟环境

通常我们打开Jupyter notebook&#xff0c;创建一个新文件&#xff0c;只有一个Python3&#xff0c;但是我们也会想使用自己创建的虚拟环境&#xff0c;很简单仅需几部即可将自己的conda环境添加到jupyter notebook中。 1. 创建并激活conda环境&#xff08;已有可跳过&#xf…

Datasophon1.2.1集成Dinky1.0.1

Dinky 下载地址: https://github.com/DataLinkDC/dinky/releases/tag/v1.0.1 Dinky 官网&#xff1a;https://www.dinky.org.cn/ 1.下载Dinky wget https://github.com/DataLinkDC/dinky/releases/download/v1.0.1/dinky-release-1.16-1.0.1.tar.gz mv dinky-release-1.16-1.…

selenium入门篇(环境搭建、八大定位)

背景 Web自动化测现状 1. 属于 E2E 测试 2. 过去通过点点点 3. 好的测试&#xff0c;还需要记录、调试网页的细节 一、selenium环境搭建 一键搭建 pip3 install webdriver-helper 安装后自动的完成&#xff1a; 1. 查看浏览器的版本号 2. 查询操作系统的类型 …

SOLIDWORKS Electrical 3D--精准的三维布线

相信很多工程师在实际生产的时候都会遇到线材长度不准确的问题&#xff0c;从而导致线材浪费甚至整根线材报废的问题&#xff0c;这基本都是由于人工测量长度所导致的&#xff0c;因此本次和大家简单介绍一下SOLIDWORKS Electrical 3D布线的功能&#xff0c;Electrical 3D布线能…

EasyV的可视化作品,没有对这行深入理解,搞不了如此漂亮。

EasyV是我非常佩服的一家可视化服务商&#xff0c;作品涉猎广泛&#xff0c;经典而大气&#xff0c;贝格前端工场的可视化业务与之相比&#xff0c;还是有一定差距&#xff0c;向行业头部企业学习&#xff0c;分享出来一些给大家看下。

海外http代理中的有效连通率是什么意思?

随着互联网的发展&#xff0c;许多人需要使用代理服务器来访问海外网站或绕过地理限制&#xff0c;在选择一个可靠的海外HTTP代理时&#xff0c;了解其有效连通率是至关重要的。 本文将解释有效连通率的含义&#xff0c;并提供详细的测试步骤&#xff0c;帮助您评估一家IP代理…

RabbitMQ工作模式(5) - 主题模式

概念 主题模式&#xff08;Topic Exchange&#xff09;是 RabbitMQ 中一种灵活且强大的消息传递模式&#xff0c;它允许生产者根据消息的特定属性将消息发送到一个交换机&#xff0c;并且消费者可以根据自己的需求来接收感兴趣的消息。主题交换机根据消息的路由键和绑定队列的路…
最新文章