- 每套面试题限时30mins, 有两种题型:
- 5道选择题+两道主观题
- 8道选择题
1️⃣题:SQL 语句操作的掌握
- DELETE 和TRUNCATE TABLE都是删除表中的数据的语句,它们的不同之处描述正确的是:
A. TRUNCATE TABLE 比 DELETE 的速度快
B. 在删除时,如果遇到任何一行违反约束(主要是外键约束),TRUNCATE TABLE仍然删除,只是表的结构及其列,约束,索引等保持不变,但DELETE是直接返回错误。
C. 对于被外键约束的表,不能使用TRUNCATE TABLE,而应该使用不带WHERE的DELETE语句
D.如果想保留标示计数值,要用DELETE,因为TRUNCATE TABLE会对新行标志符列使用的计数值重置为该列的种子
- 解析:
- A 选项:TRUNCATE TABLE 就是TRUNCATE,因为TABLE的作用往往是声明后边紧跟变量的种类 🌰 例如: TRUNCATE TABLE table1 , 因此这一部分的知识是围绕TRUNCATE 和 DELETE 展开
首先TRUNCATE 和DELETE是删除表中的数据的两种方法,drop是不再需要那张表时的操作
TRUNCATE 用于删除表中的所有行(因此与没有 WHERE 子句的 DELETE 语句类似),它不记录单个行删除操作,因此,TRUNCATE 速度更快,使用的系统资源和事务日志资源更少。
如果仍需保留该表,但要删除所有记录时,用truncate; 当你要删除部分记录时,用带有where的delete
外键约束的作用:
- 外键的作用一定是体现在两个表格的关系中的,现在创建了两个表格,分别为会员信息表和会员消费表,将信息表中的主键–顾客账号设置为消费表的外键,大家可以看在这个截图中,黄色🔑和蓝色🔑分别代表主键和外键。
- B 选项: 在这一项中我尝试删除用两种方法删除会员信息表中所有信息,两种方法都不可行。因此B项不正确,两种方法都会返回错误。
DELETE FROM 会员信息表;
TRUNCATE TABLE 会员信息表;
-
C 选项:
- 对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,应使用不带 WHERE 子句的 DELETE 语句。
- TRUNCATE TABLE 不记录在日志中,只在日志中记录页的释放,所以它并不能激活触发器
- TRUNCATE TABLE 一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。执行速度快
-
D 选项:首先回忆什么是标识列,标志符列,以及种子,如下代码块
CREATE TABLE T_test(
ID int IDENTITY(1,1),
Name varchar(50)not null
)
*identity就是标志符列(标识列),种子(seed)是表中第一个元祖的值,默认为1;
*递增量(increment)相邻两个标识值的增量,默认为1.
*每个表只能有一个标识列
如果想着重巩固关于标识列所用的计数值重置,参考CSDN这个狙击手博主的博文
SQL语句内容 | 功能简介 |
---|---|
TRUNCATE TABLE | 1) 删除表中的全部行 2)速度更快, 使用的系统,事务日志资源少 3)TRUNCATE TABLE 通过释放存储表数据所用的数据 页来删除数据并且只在事务日志中记录页的释放 所以,表结构及其列、约束、索引等保持不变 |
不含where的 DELETE 语句 | 1) 删除表中的全部行 2)每次删除一行,并在事务日志中为所删除 的每行记录一项,因此占用了大量的日志资源 3)保留标识计数值 |
含有where的 DELETE 语句 | 1)删除目标行 2)可以保留标识计数值 |
DROP TABLE 语句 | 删除表定义及其数据 |
- 表格内容显示,D选项正确
- TRUNCATE TABLE 的语句直接对存储表进行操作,比较简单粗暴,delete可细腻可粗暴,因为是对表的直接操作,每一条数据细节都要记录在日志之内。
- 在没有备份情况下,谨慎使用 drop 与 truncate
2️⃣题:数据清洗
- 关于脏数据的说法中,正确的是(A,B,C,D )
A. 格式不规范
B. 编码不统一
C. 意义不明确
D. 与实际业务不相关
- 解析:A,B项属于错误数据类别,C项和D项属于无效值。脏数据需要进一步的清洗。
一般分为三类: 不完整的数据(即无效的数据,C D 项)、错误的数据(即A B项)、重复的数据。一致性检查(例如体重出现负数,一致性是数据特征和数据本质的一致性),无效值和缺失值的处理(由于调查、编码和录入误差)–>利用均值或者众数填充,都属于数据清洗范畴。
3️⃣题:数据归纳
- ( D )的目的是缩小数据范围,使其更合适于数据挖掘算法的需要,并且能够得到和原始数据相同的分析结果
A. 数据清洗
B. 数据集成
C. 数据变换
D. 数据归纳
- 解析: 数据清洗会使得原数据和清洗后的数据得到的分析结果不同,但是归纳法只是去除过于离奇的数据,因此得到结果相同。
4️⃣题:代码题目
- echo ‘expo 3/4’ 的执行结果(D)
A. 0
B. 1
C. 0.75
D. 3/4
- 解析 应该为 expo 3/4
echo 'expo 3/4'
expo 3/4
5️⃣题:解决方案
- 系统管理员编写扫描临时文件的shell程序tmpsc.sh,测试该程序时提示拒绝执行,解决的方法有( B,C,D)
A. chmod 644 tmps.sh
B. chmod 755 tmps.sh—>
C. chmod a+x tmps.sh—>all 赋予 增加可执行权限
D. chmod u+x tmps.sh—>user 赋予 增加可执行权限
- 解析: 首先解读这些选项代码相似部分: tmps 是临时文件的含义, .sh 是shell 文件的含义,chmod函数是一个用来修改读写权限的函数。具体内容如下
函数功能 | 内容 |
---|---|
作用 | 改变文件的读写许可设置,权限 |
语法 | chmod [对谁操作] [操作符] [赋予的权限] 文件名 或者chmod [mode] filename, mode 是一个八进制数 |
操作对象 | u:user,文件或目录的所有者,2-4参数 g:用户组group,表现文件或目录所属的用户组,5-7参数 o:其他用户other,8-10参数 a:所有用户all |
操作符 | + 添加权限; - 减少权限; =直接给定一个权限 |
权限 | r :读取权限,数字代号“4” ; w:写入权限,数字代号“2” ; x:执行或切换权限,数字代号“1”,执行(execute):执行文件; -:不具任何权限,数字代号为"0"。 |
-mode是三位 八进制数解析:第一位表示创建者权限(7即为4+2+1),第二位表示组用户权限,第三位表示其他用户权限
具体更详细的内容可以参见博主架构师之路_ 的博客
7️⃣题:机器学习
- 若一个学习器的ROC曲线被另外一个学习器低的曲线完全“包住”,则断言后者的性能优于前者;若两个学习器的曲线出现交叉,该如何处理最为合适?(B)
A. 比较ROC曲线线上的面积
B. 使用AUC进行比较
C. 目测进行比较
D. 通过其他方法判断两个学习器的优势
- 解析 首先A项ROC曲线线上面积就是1-AUC,是比较不官方的说法。B项正确,比较因素的预测能力,就是在用AUC即ROC曲线线下面积进行比较的,所以选择B;而C,D可以直接排出这两个错误选项。关于ROC&AUC的相关内容小编就不在此赘述,先借用链接🔗ROC曲线应该怎么看?
8️⃣题:神经网络
- 图像挖掘中常用卷积神经网络(DNN)作为基础结构,以下关于卷积操作(conv)和池化(pooling)的说法正确的是(A)
A. conv基于平移不变性,pooling基于局部相关性
B. conv和pooling都基于平移不变性
C. conv基于局部相关性,pooling基于平移不变性
D. conv和pooling都基于局部相关性
- 解析: conv就是convolutional含义为卷积,pooling是池化,conv是在说,图像的某一个细节在图片的左上角和右下角并不会影响到它本身的特征。
这部分博主查了好久,目前还没办法get到精髓,就不乱说话了,先引用大神的博文 小宋是呢给大家参考
这里推荐大家去B站看看👀神经网络的小视频麦叔科普