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

  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.mzph.cn/diannao/4201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘被忽视的商业模式:全民拼购助力客户实现日销千万的惊人业绩

今天,我想和大家分享一个颇具潜力的模式与玩法,尽管它在外界看来可能略显陈旧。这个模式曾被忽视,但我的一位客户却巧妙运用,实现了惊人的业绩——日销售额接近五千万,日订单量高达300万单。 值得注意的是,…

C语言:计算整数每一位数字和(用递归的方式)

用递归函数DigitSum&#xff0c;来计算整数每一位数字和 #include<stdio.h> int DigitSum(int n) { if (n > 9) return DigitSum(n / 10) n % 10; return n; } int main() { int n 0; scanf_s("%d", &n); i…

实现序列化和反序列化为什么要实现Serializable接口?

1.什么是序列化和反序列化&#xff1f; 序列化&#xff1a;把对象转换为字节序列的过程称为对象的序列化 反序列化&#xff1a;把字节序列恢复为对象的过程称为对象的反序列化 2.什么时候要用到序列化和反序列化&#xff1f; 当我们只在JVM里面运行Java实例&#xff0c;这个…

将文件导入数据库

#include <stdio.h> #include <sqlite3.h> #include <string.h> int main(int argc, const char *argv[]) { //打开数据库 sqlite3 *db NULL; if(sqlite3_open("./dict.db",&db) ! SQLITE_OK){ printf("sqlite…

NLP(9)--rnn实现中文分词

前言 仅记录学习过程&#xff0c;有问题欢迎讨论 利用rnn实现分词效果(感觉十分依赖词数据) 使用jieba分词好的数据做样本 pip install jieba 代码 import jieba import numpy as np import torch import torch.nn as nn from torch.utils.data import DataLoader"&quo…

Java 提取HTML文件中的文本内容

从 HTML 文件中提取文本内容是数据抓取中的一个常见任务&#xff0c;你可以将提取的文本信息用于编制报告、进行数据分析或其他处理。本文分享如何使用免费 Java API 从HTML 文件中提取文本内容。 安装免费Java库&#xff1a; 要通过Java提取HTML文本&#xff0c;需要用到Free…

QT——简易计算器(从0开始)

目录 一、题目描述&#xff1a; 二、创建工程&#xff1a; 1. ​编辑 2. 3. 4. 默认 5. 6. 7. 8. 默认 9. 创建完成 三、UI界面设计&#xff1a; 1. 添加按钮 1. 2. 按钮界面 3. 按钮绑定快捷键 2. 文本框添加 1. 文本框字体 2. 默认文本 3. 文本对齐方式…

48、spfa求最短路

spfa求最短路 题目描述 给定一个n个点m条边的有向图&#xff0c;图中可能存在重边和自环&#xff0c; 边权可能为负数。 请你求出1号点到n号点的最短距离&#xff0c;如果无法从1号点走到n号点&#xff0c;则输出impossible。 数据保证不存在负权回路。 输入格式 第一行包…

Linux多线程(二) 线程同步 信号量互斥锁读写锁条件变量

多个进程同时访问某些资源时&#xff0c;必须考虑同步问题&#xff0c;以确保任一时刻只有一个进程可以拥有对资源的独占式访问。通常&#xff0c;程序对关键资源的访问代码只是很短的一段&#xff0c;我们称这段代码为关键代码段或者临界区&#xff0c;对进程同步&#xff0c;…

机器人系统开发ros2-基础实践01-学会自定义一个机器人动作aciton实体类

您之前在了解操作教程中了解了action 。与其他通信类型及其各自的接口&#xff08;主题/消息和服务/srv&#xff09;一样&#xff0c;您也可以在包中自定义操作。本教程向您展示如何定义和构建可与您将在下一个教程中编写的action服务器和action 客户端一起使用的操作。 需要理…

UE5 GAS开发P41-43 永久效果,去除永久效果,伤害区域,EnumClass,开始重叠与结束重叠事件

这一部分学习了怎么创建一个伤害性的地形(火焰地形,毒沼泽等都可以用这个方式创建) AuraEffectActor.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "GameplayEffect.h&q…

软件测试(Web自动化测试)(二)

一.Selenium WebDriver的基本应用 &#xff08;一&#xff09;安装浏览器驱动 1.关闭浏览器的自动更新功能 以Windows7&#xff08;64位&#xff09;操作系统为例&#xff0c;讲解如何关闭Chrome浏览器的自动更新。首先按下快捷键“WinR”&#xff0c;打开运行对话框&#x…

uniapp步骤条 组件

//子组件 <template><view class"container-step"><view class"uni-padding-wrap"><view class"progress-box"><progress :percent"3" active"true" stroke-width"2" /></vie…

【c++】深入剖析与动手实践:C++中Stack与Queue的艺术

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章我们来到STL新的内容&#xff0c;stack和queue 目录 1. stack的介绍与使用函数介绍例题一&#xff1a;最小栈例题二&#xff1a;栈的压入、弹出队列栈的模…

Adobe Photoshop CC 2017无法打开解决方案

Adobe Photoshop CC 2017双击无反应&#xff0c;右键以管理员身份运行也没有反应 解决方案&#xff1a; 事件查看器中查看应用程序的事件 如果找到程序报错事件&#xff0c;网上下载ZXPSignLib-minimal.dll文件替换错误模块路径位置的该文件即可 ZXPSignLib-minimal.dll下载地…

树莓派驱动开发----spi flash设备w25q64开发

这期使用的是spi驱动开发框架&#xff0c;其实spi和iic合起来有一个 Regmap 子系统&#xff0c;下回讲这个&#xff01;&#xff01; 使用方法 &#xff1a;./w25q64App /dev/w25q64-device <cmd> <address> <cnt> <data> ... 可读写擦&#xff0…

大模型_alpaca-lora微调及推理部署

文章目录 lora是什么重要相关参数LoRA 的优势 微调部署下载项目切换到项目目录下切换conda环境模型下载微调数据集下载 启动微调失败1原因分析 失败2修改前修改后 推理部署 lora是什么 重要相关参数 lora_rank(int,optional): LoRA 微调中的秩大小。lora_alpha(float,optional…

【嵌入式AI开发】轻量级卷积神经网络MobileNetV2详解

前言:MobileNetV2网络先升维后降维,在降维时使用线性激活函数,带残差的Inverted bottleck模块,防止ReLU信息丢失。在图像分类、目标检测、语义分割等任务上实现了网络轻量化、速度和准确度的权衡。 回顾MobileNetV1的理论和MobileNetV2项目实战可查阅如下链接: 【嵌入式AI…

小程序线多点路图绘制

需求 当接口返回一连串地图坐标&#xff0c;需要根据这些坐标串联起来&#xff0c;形成一个线路图&#xff08;本次使用步行导航线路图&#xff09;。 思路 首先优先想到使用小程序Map组件的polyline属性去进行展示。但是我们发现直接使用该属性进行坐标绘制画出来的数据都是…

STL--string详解

STL基本内容 string是什么 string实质上是一个对象 string可看作一个串&#xff0c;类似字符数组 可以扩容&#xff0c;可以增删查改 可用下表访问操作符[]引用&#xff0c;修改某值 构造函数 默认构造 拷贝构造&#xff1a;参数为(string 或 char*) 求string对象的长度不…