当前位置:首页 » 操作系统 » 数据库常见的面试题

数据库常见的面试题

发布时间: 2023-10-21 07:28:06

❶ Oracle数据库的面试题目及答案

Oracle数据库的面试题目及答案

基础题目:

1. 比较truncate和 命令

解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要 rollback segment .

而Delete是DML操作, 需要rollback segment 且花费较长时间.

【相同点

truncate和不带where子句的, 以及drop都会删除表内的数据

不同点:

1. truncate和 只姿轿删除数据不删除表的结构(定迹谈肆义)

drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的.存储过程/函数将保留,

但是变为invalid状态.

2.语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.

truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.

3.语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动

显然drop语句将表所占用的空间全部释放

truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使侍渣用reuse storage; truncate会将高水线复位(回到最开始).

4.速度,一般来说: drop>; truncate >;

5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及

使用上,想删除部分数据行用,注意带上where子句. 回滚段要足够大.

想删除表,当然用drop

想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用.

如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据

2.Oracle中,需要在查询语句中把空值(NULL)输出为0,如何处理?

答案:nvl(字段,0).

nvl( ) 函数

从两个表达式返回一个非 null 值。

语法

NVL(eExpression1, eExpression2)

参数

eExpression1, eExpression2

如果 eExpression1 的计算结果为 null 值,则 NVL( ) 返回 eExpression2。如果 eExpression1 的计算结果不是 null 值,

则返回 eExpression1。eExpression1 和 eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2

的结果皆为 null 值,则 NVL( ) 返回 .NULL.。

返回值类型

字符型、日期型、日期时间型、数值型、货币型、逻辑型或 null 值

说明

在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值。

select nvl(a.name,空得) as name from student a join school b on a.ID=b.ID

注意:两个参数得类型要匹配

3.Oracle中char和varchar2数据类型有什么区别?有数据”test”分别存放到10)和varchar2(10)类型的字段中,

其存储长度及类型有何区别?

答案:

区别: 1).CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“test",对于CHAR (10),


;

❷ “春招系列”Mysql面试核心25问(附答案)

篇幅所限本文只写了MySQL25题,像其他的Redis,SSM框架,算法,计网等技术栈的面试题后面会持续更新,个人樱裤整理的1000余道面试八股文会放在文末给大家白嫖,最近有面试需要刷题的同学可以直接翻到文末领取。

如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中间某个位置, 频繁的移动、分页操作造成了大量的碎片,得到了不够紧凑的索引结构,后续不得不通过OPTIMIZE TABLE(optimize table)来重建表并优化填充页面。

Server层按顺序执行sql的步骤为:

简单概括:

可以分为服务层和存储引擎层两部分,其中:

服务层包括连接器、查询缓存、分析器、优化器、执行器等 ,涵盖MySQL的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。

存储引擎层负责数据的存储和提取 。其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎。现在最常用的存储引擎是InnoDB,它从MySQL 5.5.5版本开始成为了默认的存储引擎。

Drop、Delete、Truncate都表示删除,但是三者有一些差别:

Delete 用来删除表的全部或者一部分数据行,执行Delete之后,用户需要提交(commmit)或者回滚(rollback)来执行删除或者撤销删除,会触发这个表上所有的delete触发器。

Truncate 删除表中的所有数据,这个操作不能回滚,也不会触发这个表上的触发器,TRUNCATE比Delete更快,占用的空间更小。

Drop 命令从数据库中删除表,所有的数据行,索引和权限也会被删除,所有的DML触发器也不会被触发,这个命令也不能回滚。

因此,在不再需要一张表的时候,用Drop;在想删除部分数据行时候,用Delete;在保留表而删除所有数据的时候用Truncate。

隔离级别脏读不可重复读幻影读 READ-UNCOMMITTED 未提交读 READ-COMMITTED 提交读 REPEATABLE-READ 重复读 SERIALIZABLE 可串行化读

MySQL InnoDB 存储引擎的默认支持的隔离级别是 REPEATABLE-READ (可重读)

这里需要注意的是 :与 SQL 标准不同的地方在于InnoDB 存储引擎在 REPEATABLE-READ(可重读)事务隔离级别 下使用的是 Next-Key Lock 锁 算法,因此可以避免幻读的产生,这与其他数据库系统(如 SQL Server)是不同的。所以 说InnoDB 存储引擎的默认支持的隔离级别是 REPEATABLE-READ(可重读) 已经可以完全保证事务的隔离性要 求,即达到了 SQL标准的SERIALIZABLE(可串行化)隔离级别。

因为隔离级别越低,事务请求的锁越少,所以大部分数据库系统的隔离级别都是READ-COMMITTED(读取提交内 容):,但是你要知道的是InnoDB 存储引擎默认使用 REPEATABLE-READ(可重读)并不会有任何性能损失

InnoDB 存储引擎在分布式事务 的情况下一般会用到SERIALIZABLE(可串行化)隔离级别。

主要原因:B+树只要遍历叶子节点就可以实现整棵树的遍历,而且在数据库中基于范围的查询是非常频繁的,而B树只能中序遍历脊空简所有节点,效率太低。

文件与数据库都是需要较大的存储,也就是说,它们都不可能全部存储在内存中,故需要存储到磁盘上。而所谓索引,则为了数据的快速定位与查找,那么索引的结构组织要尽亏帆量减少查找过程中磁盘I/O的存取次数,因此B+树相比B树更为合适。数据库系统巧妙利用了局部性原理与磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以完全载入,而红黑树这种结构,高度明显要深的多,并且由于逻辑上很近的节点(父子)物理上可能很远,无法利用局部性。

最重要的是,B+树还有一个最大的好处:方便扫库。

B树必须用中序遍历的方法按序扫库,而B+树直接从叶子结点挨个扫一遍就完了,B+树支持range-query非常方便,而B树不支持,这是数据库选用B+树的最主要原因。

B+树查找效率更加稳定,B树有可能在中间节点找到数据,稳定性不够。

B+tree的磁盘读写代价更低:B+tree的内部结点并没有指向关键字具体信息的指针(红色部分),因此其内部结点相对B 树更小。如果把所有同一内部结点的关键字存放在同一块盘中,那么盘块所能容纳的关键字数量也越多。一次性读入内存中的需要查找的关键字也就越多,相对来说IO读写次数也就降低了;

B+tree的查询效率更加稳定:由于内部结点并不是最终指向文件内容的结点,而只是叶子结点中关键字的索引,所以,任何关键字的查找必须走一条从根结点到叶子结点的路。所有关键字查询的路径长度相同,导致每一个数据的查询效率相当;

视图是一种虚拟的表,通常是有一个表或者多个表的行或列的子集,具有和物理表相同的功能 游标是对查询出来的结果集作为一个单元来有效的处理。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。

而在 MySQL 中,恢复机制是通过回滚日志(undo log)实现的,所有事务进行的修改都会先记录到这个回滚日志中,然后在对数据库中的对应行进行写入。当事务已经被提交之后,就无法再次回滚了。

回滚日志作用:1)能够在发生错误或者用户执行 ROLLBACK 时提供回滚相关的信息 2) 在整个系统发生崩溃、数据库进程直接被杀死后,当用户再次启动数据库进程时,还能够立刻通过查询回滚日志将之前未完成的事务进行回滚,这也就需要回滚日志必须先于数据持久化到磁盘上,是我们需要先写日志后写数据库的主要原因。

InnoDB

MyISAM

总结

数据库并发会带来脏读、幻读、丢弃更改、不可重复读这四个常见问题,其中:

脏读 :在第一个修改事务和读取事务进行的时候,读取事务读到的数据为100,这是修改之后的数据,但是之后该事务满足一致性等特性而做了回滚操作,那么读取事务得到的结果就是脏数据了。

幻读 :一般是T1在某个范围内进行修改操作(增加或者删除),而T2读取该范围导致读到的数据是修改之间的了,强调范围。

丢弃修改 :两个写事务T1 T2同时对A=0进行递增操作,结果T2覆盖T1,导致最终结果是1 而不是2,事务被覆盖

不可重复读 :T2 读取一个数据,然后T1 对该数据做了修改。如果 T2 再次读取这个数据,此时读取的结果和第一次读取的结果不同。

第一个事务首先读取var变量为50,接着准备更新为100的时,并未提交,第二个事务已经读取var为100,此时第一个事务做了回滚。最终第二个事务读取的var和数据库的var不一样。

T1 读取某个范围的数据,T2 在这个范围内插入新的数据,T1 再次读取这个范围的数据,此时读取的结果和和第一次读取的结果不同。

T1 和 T2 两个事务都对一个数据进行修改,T1 先修改,T2 随后修改,T2 的修改覆盖了 T1 的修改。例如:事务1读取某表中的数据A=50,事务2也读取A=50,事务1修改A=A+50,事务2也修改A=A+50,最终结果A=100,事务1的修改被丢失。

T2 读取一个数据,T1 对该数据做了修改。如果 T2 再次读取这个数据,此时读取的结果和第一次读取的结果不同。

悲观锁,先获取锁,再进行业务操作,一般就是利用类似 SELECT … FOR UPDATE 这样的语句,对数据加锁,避免其他事务意外修改数据。当数据库执行SELECT … FOR UPDATE时会获取被select中的数据行的行锁,select for update获取的行锁会在当前事务结束时自动释放,因此必须在事务中使用。

乐观锁,先进行业务操作,只在最后实际更新数据时进行检查数据是否被更新过。Java 并发包中的 AtomicFieldUpdater 类似,也是利用 CAS 机制,并不会对数据加锁,而是通过对比数据的时间戳或者版本号,来实现乐观锁需要的版本判断。

分库与分表的目的在于,减小数据库的单库单表负担,提高查询性能,缩短查询时间。

通过分表 ,可以减少数据库的单表负担,将压力分散到不同的表上,同时因为不同的表上的数据量少了,起到提高查询性能,缩短查询时间的作用,此外,可以很大的缓解表锁的问题。分表策略可以归纳为垂直拆分和水平拆分:

水平分表 :取模分表就属于随机分表,而时间维度分表则属于连续分表。如何设计好垂直拆分,我的建议:将不常用的字段单独拆分到另外一张扩展表. 将大文本的字段单独拆分到另外一张扩展表, 将不经常修改的字段放在同一张表中,将经常改变的字段放在另一张表中。对于海量用户场景,可以考虑取模分表,数据相对比较均匀,不容易出现热点和并发访问的瓶颈。

库内分表 ,仅仅是解决了单表数据过大的问题,但并没有把单表的数据分散到不同的物理机上,因此并不能减轻 MySQL 服务器的压力,仍然存在同一个物理机上的资源竞争和瓶颈,包括 CPU、内存、磁盘 IO、网络带宽等。

分库与分表带来的分布式困境与应对之策 数据迁移与扩容问题----一般做法是通过程序先读出数据,然后按照指定的分表策略再将数据写入到各个分表中。分页与排序问题----需要在不同的分表中将数据进行排序并返回,并将不同分表返回的结果集进行汇总和再次排序,最后再返回给用户。

不可重复读的重点是修改,幻读的重点在于新增或者删除。

视图是虚拟的表,与包含数据的表不一样,视图只包含使用时动态检索数据的查询;不包含任何列或数据。使用视图可以简化复杂的 sql 操作,隐藏具体的细节,保护数据;视图创建后,可以使用与表相同的方式利用它们。

视图不能被索引,也不能有关联的触发器或默认值,如果视图本身内有order by 则对视图再次order by将被覆盖。

创建视图:create view xxx as xxxx

对于某些视图比如未使用联结子查询分组聚集函数Distinct Union等,是可以对其更新的,对视图的更新将对基表进行更新;但是视图主要用于简化检索,保护数据,并不用于更新,而且大部分视图都不可以更新。

B+tree的磁盘读写代价更低,B+tree的查询效率更加稳定 数据库索引采用B+树而不是B树的主要原因:B+树只要遍历叶子节点就可以实现整棵树的遍历,而且在数据库中基于范围的查询是非常频繁的,而B树只能中序遍历所有节点,效率太低。

B+树的特点

在最频繁使用的、用以缩小查询范围的字段,需要排序的字段上建立索引。不宜:1)对于查询中很少涉及的列或者重复值比较多的列 2)对于一些特殊的数据类型,不宜建立索引,比如文本字段(text)等。

如果一个索引包含(或者说覆盖)所有需要查询的字段的值,我们就称 之为“覆盖索引”。

我们知道在InnoDB存储引 擎中,如果不是主键索引,叶子节点存储的是主键+列值。最终还是要“回表”,也就是要通过主键再查找一次,这样就 会比较慢。覆盖索引就是把要查询出的列和索引是对应的,不做回表操作!

举例

学号姓名性别年龄系别专业 20020612李辉男20计算机软件开发 20060613张明男18计算机软件开发 20060614王小玉女19物理力学 20060615李淑华女17生物动物学 20060616赵静男21化学食品化学 20060617赵静女20生物植物学

主键为候选键的子集,候选键为超键的子集,而外键的确定是相对于主键的。

❸ 面试常问的数据库问题及答案

目前在职场中很难找到非常合格的数据库开发人员。有人说:“SQL开发是一门语言,它很容易学,但是很难掌握。”
在面试应聘的SQL Server数据库开发人员时,我运用了一套标准的基准技术问题。下面这些问题是我觉得能够真正有助于淘汰不合格应聘者的问题。它们按照从易到难的顺序排列。当你问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。
你能向我简要叙述一下SQL Server 2000中使用的一些数据库对象吗?
你希望听到的答案包括这样一些对象:表格、视图、用户定义的函数,以及存储过程;如果他们还能够提到像触发器这样的对象就更好了。如果应聘者不能回答这个基本的问题,那么这不是一个好兆头。
NULL是什么意思?
NULL(空)这个值是数据库世界里一个非常难缠的东西,所以有不少应聘者会在这个问题上跌跟头您也不要觉得意外。
NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。假设您的SQL Server数据库里有ANSI_NULLS,当然在默认情况下会有,对NULL这个值的任何比较都会生产一个NULL值。您不能把任何值与一个 UNKNOWN值进行比较,并在逻辑上希望获得一个答案。您必须使用IS NULL操作符。

什么是索引?SQL Server 2000里有什么类型的索引?
任何有经验的数据库开发人员都应该能够很轻易地回答这个问题。一些经验不太多的开发人员能够回答这个问题,但是有些地方会说不清楚。
简单地说,索引是一个数据结构,用来快速访问数据库表格或者视图里的数据。在SQL Server里,它们有两种形式:聚集索引和非聚集索引。聚集索引在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个(或哪些)字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引。非聚集索引在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引。
什么是主键?什么是外键?
主键是表格里的(一个或多个)字段,只用来定义表格里的行;主键里的值总是唯一的。外键是一个用来建立两个表格之间关系的约束。这种关系一般都涉及一个表格里的主键字段与另外一个表格(尽管可能是同一个表格)里的一系列相连的字段。那么这些相连的字段就是外键。
什么是触发器?SQL Server 2000有什么不同类型的触发器?
让未来的数据库开发人员知道可用的触发器类型以及如何实现它们是非常有益的

触发器是一种专用类型的存储过程,它被捆绑到SQL Server 2000的表格或者视图上。在SQL Server 2000里,有INSTEAD-OF和AFTER两种触发器。INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,DML)语句对表格执行语句的存储过程。例如,如果我有一个用于TableA的INSTEAD-OF-UPDATE触发器,同时对这个表格执行一个更新语句,那么INSTEAD-OF-UPDATE触发器里的代码会执行,而不是我执行的更新语句则不会执行操作。
AFTER触发器要在DML语句在数据库里使用之后才执行。这些类型的触发器对于监视发生在数据库表格里的数据变化十分好用。
您如何确一个带有名为Fld1字段的TableB表格里只具有Fld1字段里的那些值,而这些值同时在名为TableA的表格的Fld1字段里?
这个与关系相关的问题有两个可能的答案。第一个答案(而且是您希望听到的答案)是使用外键限制。外键限制用来维护引用的完整性。它被用来确保表格里的字段只保存有已经在不同的(或者相同的)表格里的另一个字段里定义了的值。这个字段就是候选键(通常是另外一个表格的主键)。
另外一种答案是触发器。触发器可以被用来保证以另外一种方式实现与限制相同的作用,但是它非常难设置与维护,而且性能一般都很糟糕。由于这个原因,微软建议开发人员使用外键限制而不是触发器来维护引用的完整性。
对一个投入使用的在线事务处理表格有过多索引需要有什么样的性能考虑?
你正在寻找进行与数据操控有关的应聘人员。对一个表格的索引越多,数据库引擎用来更新、插入或者删除数据所需要的时间就越多,因为在数据操控发生的时候索引也必须要维护。
你可以用什么来确保表格里的字段只接受特定范围里的值?
这个问题可以用多种方式来回答,但是只有一个答案是“好”答案。您希望听到的回答是Check限制,它在数据库表格里被定义,用来限制输入该列的值。
触发器也可以被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到性能。因此,微软建议使用Check限制而不是其他的方式来限制域的完整性。
<b?返回参数和output参数之间的区别是什么?>如果应聘者能够正确地回答这个问题,那么他的机会就非常大了,因为这表明他们具有使用存储过程的经验。
返回参数总是由存储过程返回,它用来表示存储过程是成功还是失败。返回参数总是INT数据类型。
OUTPUT参数明确要求由开发人员来指定,它可以返回其他类型的数据,例如字符型和数值型的值。(可以用作输出参数的数据类型是有一些限制的。)您可以在一个存储过程里使用多个OUTPUT参数,而您只能够使用一个返回参数。
什么是相关子查询?如何使用这些查询?
经验更加丰富的开发人员将能够准确地描述这种类型的查询。
相关子查询是一种包含子查询的特殊类型的查询。查询里包含的子查询会真正请求外部查询的值,从而形成一个类似于循环的状况。</b?返回参数和output参数之间的区别是什么?>

❹ 数据分析师常见的面试问题

关于数据分析师常见的面试问题集锦

1、你处理过的最大的伏汪隐数据量?你是如何处理他们的?处理的结果。

2、告诉我二个分析或者计算机科学相关项目?你是如何对其结果进行衡量的?

3、什么是:提升值、关键绩效指标、强壮性、模型按合度、实验设计、2/8原则?

4、什么是:协同过滤、n-grams, map rece、余弦距离?

5、如何让一个网络爬虫速度更快、抽取更好的信息以及更好总结数据从而得到一干净的数据库?

6、如何设计一个解决抄袭的方案?

7、如何检验一个个人支付账户都多个人使用?

8、点击流数据应该是实时处理?为什么?哪部分应该实时处理?

9、你认为哪个更好:是好的数据还是好模型?同时你是如何定义“好”?存在所有情况下通用的模型吗?有你没有知道一些模型的定义并不是那么好?

10、什么是概率合并(aka模糊融合)?使用sql处理还是其它语言方便?对于处理半结构化的数据你会选择使用哪种语言?

11、你是如何处理缺少数据的?你推荐使用什么样的处理技术?

12、你最喜欢的编程语言是什么?为什么?

13、对于你喜欢的统计软件告诉你喜欢的与不喜欢的3个理由。

14、sas, r, python, perl语言的区别是?

15、什么是大数据的诅咒?

16、你参与过数据库与数据模型的设计吗?

17、你是否参与过仪表盘的设计及指标选择?你对于商业智能和报表工具有什么想法?

18、你喜欢td数据库的什么特征?

19、如何你打算发100万的营销活动邮件。你怎么去优化发送?你怎么优化反应率?能把这二个优化份开吗?

20、如果有几个客户查询oracle数据库的效率很低。为什么?你做什么可以提高速度10倍以上,同时可以更好处理大数量输出?

21、如何把非结构化的数据转换成结构化的数据?这是否真的有必要做这样的转换?把数据存成平面文本文件是否比存成关系数据库更好?

22、什么是哈希表碰撞攻击?怎么避免?发生的频率是多少?

23、如何判别maprece过程有好的负载均衡?什么是负载均衡?

24、请举例说明maprece是如何工作的?在什么应用场景下工作的很好?云的安全问题有哪些?

25、(在内存满足的情况下)你认为是100个小的哈希表好还是一个大的哈希表,对于内在或者运行速度来说?对于数据库分析的评价?

26、为什么朴素贝叶斯差?你如何使用朴素贝叶斯缺厅来改进爬虫检验算法?

27、你处理过白名单吗?主要的规则?(在欺诈或者爬行检验的情况下)

28、什么是星型模型?什么是查询表?

29、你可以使用excel建立逻辑回归模型吗?如何可以,说明一下建立过程?

30、在sql, perl, c++, python等编程过程上,待为了提升速度优化过相关代码或者算法吗?如何及提升多少?

31、使用5天完成90%的精度的解决方案还是花10天完成100%的精度的解决方案?取决于什么内容?

32、定义:qa(质量保障)、六西格玛、实验设计。好的与坏的实验设计能否举个案例?

33、普通线性回归模型的缺陷是什么陵唤?你知道的其它回归模型吗?

34、你认为叶数小于50的决策树是否比大的好?为什么?

35、保险精算是否是统计学的一个分支?如果不是,为何如何?

36、给出一个不符合高斯分布与不符合对数正态分布的数据案例。给出一个分布非常混乱的数案例。

37、为什么说均方误差不是一个衡量模型的好指标?你建议用哪个指标替代?

38、你如何证明你带来的算法改进是真的有效的与不做任何改变相比?你对a/b测试熟吗?

39、什么是敏感性分析?拥有更低的敏感性(也就是说更好的强壮性)和低的预测能力还是正好相反好?你如何使用交叉验证?你对于在数据集中插入噪声数据从而来检验模型的.敏感性的想法如何看?

40、对于一下逻辑回归、决策树、神经网络。在过去XX年中这些技术做了哪些大的改进?

41、除了主成分分析外你还使用其它数据降维技术吗?你怎么想逐步回归?你熟悉的逐步回归技术有哪些?什么时候完整的数据要比降维的数据或者样本好?

42、你如何建议一个非参数置信区间?

43、你熟悉极值理论、蒙特卡罗逻辑或者其它数理统计方法以正确的评估一个稀疏事件的发生概率?

44、什么是归因分析?如何识别归因与相关系数?举例。

45、如何定义与衡量一个指标的预测能力?

46、如何为欺诈检验得分技术发现最好的规则集?你如何处理规则冗余、规则发现和二者的本质问题?一个规则集的近似解决方案是否可行?如何寻找一个可行的近似方案?你如何决定这个解决方案足够好从而可以停止寻找另一个更好的?

47、如何创建一个关键字分类?

48、什么是僵尸网络?如何进行检测?

49、你有使用过api接口的经验吗?什么样的api?是谷歌还是亚马逊还是软件即时服务?

50、什么时候自己编号代码比使用数据科学者开发好的软件包更好?

51、可视化使用什么工具?在作图方面,你如何评价tableau?r?sas?在一个图中有效展现五个维度?

52、什么是概念验证?

53、你主要与什么样的客户共事:内部、外部、销售部门/财务部门/市场部门/it部门的人?有咨询经验吗?与供应商打过交道,包括供应商选择与测试。

54、你熟悉软件生命周期吗?及it项目的生命周期,从收入需求到项目维护?

55、什么是cron任务?

56、你是一个独身的编码人员?还是一个开发人员?或者是一个设计人员?

57、是假阳性好还是假阴性好?

58、你熟悉价格优化、价格弹性、存货管理、竞争智能吗?分别给案例。

59、zillow’s算法是如何工作的?

60、如何检验为了不好的目的还进行的虚假评论或者虚假的fb帐户?

61、你如何创建一个新的匿名数字帐户?

62、你有没有想过自己创业?是什么样的想法?

63、你认为帐号与密码输入的登录框会消失吗?它将会被什么替代?

64、你用过时间序列模型吗?时滞的相关性?相关图?光谱分析?信号处理与过滤技术?在什么样的场景下?

65、哪位数据科学有你最佩服?从哪开始?

66、你是怎么开始对数据科学感兴趣的?

67、什么是效率曲线?他们的缺陷是什么,你如何克服这些缺陷?

68、什么是推荐引擎?它是如何工作的?

69、什么是精密测试?如何及什么时候模拟可以帮忙我们不使用精密测试?

70、你认为怎么才能成为一个好的数据科学家?

71、你认为数据科学家是一个艺术家还是科学家?

72、什么是一个好的、快速的聚类算法的的计算复杂度?什么好的聚类算法?你怎么决定一个聚类的聚数?

73、给出一些在数据科学中“最佳实践的案例”。

74、什么让一个图形使人产生误解、很难去读懂或者解释?一个有用的图形的特征?

75、你知道使用在统计或者计算科学中的“经验法则”吗?或者在商业分析中。

76、你觉得下一个20年最好的5个预测方法是?

77、你怎么马上就知道在一篇文章中(比如报纸)发表的统计数字是错误,或者是用作支撑作者的论点,而不是仅仅在罗列某个事物的信息?例如,对于每月官方定期在媒体公开发布的失业统计数据,你有什么感想?怎样可以让这些数据更加准确?

;

❺ 数据库常见笔试面试题

数据库常见笔试面试题

数据库常见笔试面试题有哪些?数据库常见笔试面试会考什么?下面是数据库常见面试题总结,为大家提供参考。

1、SQL的表连接方式有哪些?

SQL中连接按结果集分为:内连接,外连接,交叉连接

内连接:inner join on,两表都满足的组合。内连接分为等值连接,不等连接,自然连接。

等值连接:两表中相同的列都会出现在结果集中。

自然连接:两表中具体相同列表的列会合并为同一列出现在结果集中。

外连接:分为左(外)连接,右(外)连接,全连接

左(外)连接:A left (outer) join B,以A表为基础,A表的全部数据,B表有的组合,没有的为null。

右(外)连接:A right(outer) join B,以B表为基础,B表的全部数据,A表有的组合,没有的位null。

全连接:A full (outer) join 两表相同的组合在一起,A表有,B表没有的数据(显示为null),同样B表有,A表没有的显示为null。

交叉连接:cross join,就是笛卡尔乘积。

2、三范式

1NF:表中的字段都是单一属性,不再可分。

2NF:在1NF的基础上,表中所有的非主属性都必须完全依赖于任意一组候选键,不能仅依赖于候选键中的某个属性。

3NF:在2NF的基础上,表中所有的属性都不依赖其他非主属性。

简单的说就是:1NF表示每个属性不可分割,2NF表示非主属性不存在对主键的部分依赖,3NF表示不存在非主属性对主键的依赖传递。

3、表的操作

表的创建:create table 表名 (列名1 类型 约束,列2 类型 约束…)

表的删除: 表名

表的更改(结构的更改,不是记录的更新):alter table 表名 add|drop 列名|约束名

插入记录: into 表名…values…

更新记录:表名 set 列名=值 where 条件

删除记录: from 表名 where 条件

4、数据的完整性

数据完整性指的是存储在数据库中的数据的一致性和准确性。

完整性分类:

(1)实体完整性:主键值必须唯一且非空。(主键约束)

(2) 引用完整性(也叫参照完整性):外键要么为空,要么引用主表中存在的记录。(外键约束)。

(3)用户自定义完整性:针对某一具体关系数据库中的约束条件。

5、SQL的查询优化

(1)从表连接的角度优化:尽量使用内连接,因为内连接是两表都满足的行的组合,而外连接是以其中一个表的全部为基准。

(2)尽量使用存储过程代替临时写SQL语句:因为存储过程是预先编译好的SQL语句的集合,这样可以减少编译时间。

(3)从索引的角度优化:对那些常用的查询字段简历索引,这样查询时值进行索引扫描,不读取数据块。

(4)还有一些常用的select优化技巧:

(5)A.只查询那些需要访问的字段,来代替select*

B、将过滤记录越多的where语句向前移:在一个SQL语句中,如果一个where条件过滤的数据库记录越多,定位越准确,则该where条件越应该前移。

6、索引的作用,聚集索引与非聚集索引的区别

索引是一个数据库对象,使用索引,可以是数据库程序无须对整个数据进行扫描,就可以在其中找到目标数据,从而提高查找效率。索引的底层采用的是B树。

聚集索引:根据记录的key再表中排序数据行。

非聚集索引:独立于记录的结构,非聚集所以包含的`key,且每个键值项都有指向该简直的数据行的指针。

聚集索引与非聚集索引的区别:

(1)聚集索引的物理存储按索引排序,非聚集所以的物理存储不按索引排序。

(2) 聚集索引插入,更新数据的速度比非聚集索引慢,单查询速度更快。

(3) 聚集索引的叶级结点保存的是时间的数据项,而非聚集结点的叶级结点保存的是指向数据项的指针。

(4)一个表只能有一个聚集索引(因为只有一种排序方式),但可以有多个非聚集索引。

7、存储过程与函数的区别

(1)函数有返回值,存储过程没有返回值。

(2) 因为存储过程没有返回值,所以不能将存储过程的执行结果赋值给变量;函数有返回值类型,调用函数时,可以将函数的执行结果赋值给变量。也就是说,函数可以在select语句中使用,而存储过程则不能。


;

❻ 常见大数据公司面试问题有哪些

1、您对“大数据”一词有什么了解?


答: 大数据是与复杂和大型数据集相关的宴派术语。关系数据库无法处理大数据,这就是为什么使用特殊的工具和方法对大量数据执行操作的原因。大数据使公司能够更好地了解其业务,并帮助他们从定期收集的非结构化和原始数据中获取有意义的信息。大数据还使公司能够根据数据做出更好的业务决策。散祥渗


2、告诉我们大数据和Hadoop之间的关系。


答: 大数据和Hadoop几乎是同义词。随着大数据的兴起,专门用于大数据操作的Hadoop框架也开始流行。专业人士可以使用该框架来分析大数据并帮助企业做出决策。


注意: 在大数据采访中通常会问这个问题。 可以进一步去回答这个问题,并试图解释的Hadoop的主要组成部分。


3、大数据分析如何有助于增加业务收入?


答:大数据分析对于企业来说已经变得非常重要。它可以帮助企业与众不同,并增加收入。通过预测分析,大数据分析为企业提供了定制的建议。此外,冲脊大数据分析使企业能够根据客户的需求和偏好推出新产品。这些因素使企业获得更多收入,因此公司正在使用大数据分析。通过实施大数据分析,公司的收入可能会大幅增长5-20%。一些使用大数据分析来增加收入的受欢迎的公司是-沃尔玛,LinkedIn,Facebook,Twitter,美国银行等。

热点内容
剪力墙压脚筋大小怎么配置 发布:2025-01-23 00:50:53 浏览:534
腾讯云cos云服务器 发布:2025-01-23 00:46:47 浏览:63
如何给安卓平板刷上MIUI系统 发布:2025-01-23 00:45:51 浏览:73
2开方算法 发布:2025-01-23 00:27:21 浏览:16
如何看自己steam服务器 发布:2025-01-23 00:07:21 浏览:710
armlinux命令 发布:2025-01-23 00:01:08 浏览:137
战地4亚洲服务器为什么被攻击 发布:2025-01-22 23:45:42 浏览:671
javascript反编译 发布:2025-01-22 23:37:57 浏览:432
夏天来了你的巴氏奶存储对吗 发布:2025-01-22 23:37:56 浏览:206
求最大值c语言 发布:2025-01-22 23:22:35 浏览:250