㈠ 数据库面试常问问题有哪些
1、什么是数据库事务
数据库事务是构成单一逻辑工作单元的操作集合。数据库事务可以包括一个或多个数据库操作,但是这些操作构成一个逻辑上的整体。
2、数据库事务的四个特性(ACID)
A:原子性,事务中的所有操作作为一个整体不可分割,要么全部操作要么全部不操作。
C:一致性,事务的执行结果必须使数据库从一个一致性状态转为另一个一致性状态。一致性状态:1.系统状态满足数据库的完整性约束,2.系统的状态反映数据库所描述的现实世界的真实状态。
I:隔离性:并发执行的事务不会相互影响,其对数据库的影响和他们串行执行时一样。
D:持久性:事务一旦提交,对数据库的影响就是持久的。任何事务或系统故障都不会导致数据丢失。
3、什么是数据库连接泄露
数据库连接泄露指的是如果在某次使用或者某段程序中没有正确地关闭Connection、Statement和ResultSet资源,那么每次执行都会留下一些没有关闭的连接,这些连接失去了引用而不能得到重新使用,因此就造成了数据库连接的泄漏。数据库连接的资源是宝贵而且是有限的,如果在某段使用频率很高的代码中出现这种泄漏,那么数据库连接资源将被耗尽,影响系统的正常运转。
4、聚集索引
数据行的物理顺序与列值的顺序相同,如果我们查询id比较靠后的数据,那么这行数据的地址在磁盘中的物理地址也会比较靠后。而且由于物理排列方式与聚集索引的顺序相同,所以也就只能建立一个聚集索引了。
5、主键与外键
关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。
外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。
㈡ 数据库问题
我没有做过太多的实际的数据库优化,但是根据我的理解。
我觉得第三题应该选A。如果是多选选AC
我的理解是,这条查询的条件是Birth列,所以正常就是给条件列加索引才能提高效率。
首先B是给ename加非聚集索引,查询过程中会以Birth列为条件筛选,所以这个索引没用,排除。
同理,D是给主键又加了非聚集索引,另外主键本身就有聚集索引了,所以这个也排除。
剩下AC,AC的区别就是A是聚集索引,C是非聚集索引,一般我的习惯是给datetime类型加聚集索引,这样省空间,而且在这个大于区间的条件下,聚集索引能剩下一大半的查询时间。所以我认为选A。 我也不清楚C到底能不能加速,因为C的确有些画蛇添足,至少浪费了很多空间,查询速度上有没有优化我不敢肯定。
下面的表总结了何时使用聚集索引或非聚集索引(很重要)。
动作描述 使用聚集索引 使用非聚集索引
列经常被分组排序 应 应
返回某范围内的数据 应 不应
一个或极少不同值 不应 不应
小数目的不同值 应 不应
大数目的不同值 不应 应
频繁更新的列 不应 应
外键列 应 应
主键列 应 应
频繁修改索引列 不应 应
㈢ 求两道有关数据库问题的答案,最好有讲解~!
13. 选D A 概念模式改变,数据库管理员对各个外模式/模式的映像作相应的改变,使外模式和应用程序保持不变,这是数据的逻辑独立性;概念模式改变,数据库管理员对各个模式/内模式的映像作相应的改变,外模式和应用程序不变。
14.选C 这次上一题的A的解释就是了~概念模式改变,数据库管理员对各个外模式/模式的映像作相应的改变,使外模式和应用程序保持不变,这是数据的逻辑独立性
这是数据库二级映像功能与数据独立性的知识,看一下书本这一节能更清楚了解一下。
㈣ 数据库笔试问题
有问题再追问,望采纳。
1、定义固定长度非Unicode字符型局部变量S,且长度为6的命令是declare @S char(10)。
2、表达式6!8=的值是 true,表达式(9=8)and(5<6)的值为false。
3、表达式STR(123.645,8,2)的值的 123.64。
4、表约束是SQL Server 提供的一种强制实现数据完整性的机制,包括:主键约束、外键约束、唯一键约束、检查约束、默认值约束、级联参照完整新约束
5、定义日期时间局部变量DT的命令是:declare @DT datetime。
6、实体之间的联系可以有3种:1对1、1对多和多对多。
7、表达式LEN(‘beijing’)的值是7。
8、在T-SQL中可以使用两种类型的注释字符:单行注释和多行注释。