.NET数据库面试题及答案
初级面试题:(选择题+问答题)
一、选择题
1、在MS SQL Server中,用来显示数据库信息的系统存储过程是()答案:D
A sp_ dbhelp
B sp_ db
C sp_ help
D sp_ helpdb
A sp_ dbhelp
B sp_ db
C sp_ help
D sp_ helpdb
2、SQL语言中,删除一个表的命令是( )答案:B
A DELETE
B DROP
C CLEAR
D REMORE
A DELETE
B DROP
C CLEAR
D REMORE
3、关系数据库中,主键是(__)答案:A
A、为标识表中唯一的实体
B、创建唯一的索引,允许空值
C、只允许以表中第一字段建立
D、允许有多个主键的
A、为标识表中唯一的实体
B、创建唯一的索引,允许空值
C、只允许以表中第一字段建立
D、允许有多个主键的
4、语句DBCC SHRINKDATABASE (Sample, 25)中的25表示的意思是 答案:B
A、25M
B、剩余占整个空间的25%
C、已用空间占整个空间的25%
D、以上都不对
A、25M
B、剩余占整个空间的25%
C、已用空间占整个空间的25%
D、以上都不对
5. 你是一个保险公司的数据库开发人员,公司的保单信息存储在SQL Server 2000数据库中,
你使用以下脚本建立了一个名为Policy的表: 答案:A
CREATE TABLE Policy
(
PolicyNumber int NOT NULL DEFAULT (0),
InsuredLastName char (30) NOT NULL,
InsuredFirstName char (20) NOT NULL,
InsuredBirthDate datetime NOT NULL,
PolicyDate datetime NOT NULL,
FaceAmount money NOT NULL,
CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber)
)
每次公司销售出一份保单,Policy表中就增加一条记录,并赋予其一个新的保单号,你将怎么做?
CREATE TABLE Policy
(
PolicyNumber int NOT NULL DEFAULT (0),
InsuredLastName char (30) NOT NULL,
InsuredFirstName char (20) NOT NULL,
InsuredBirthDate datetime NOT NULL,
PolicyDate datetime NOT NULL,
FaceAmount money NOT NULL,
CONSTRAINT PK_Policy PRIMARY KEY (PolicyNumber)
)
每次公司销售出一份保单,Policy表中就增加一条记录,并赋予其一个新的保单号,你将怎么做?
a.建立一个INSTEAD OF INSERT触发器来产生一个新的保单号,并将这个保单号插入数据表中。
b.建立一个INSTEAD OF UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。
c.建立一个AFTER UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。
d.用AFTER UPDATE触发器替代DEFAULT约束条件产生一个新的保单号,并将这个保单号插入数据表中。
c.建立一个AFTER UPDATE触发器来产生一个新的保单号,并将这个保单号插入数据表中。
d.用AFTER UPDATE触发器替代DEFAULT约束条件产生一个新的保单号,并将这个保单号插入数据表中。
二、问答题
1.维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么?
答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。
答:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。
2.ADO中常用的对象有哪些?分别描述一下。
答:Connection 对象用于在应用程序和数据库之间的连接
Command 可以检索和操纵数据库中的数据
DataAdapter对象充当DataSet和数据源之间用于检索和保存数据的桥接器
DataSet 对象从数据库检索的数据可以存储在其中能够以XML形式保存
DataReader 是查询结果的一种只进。只读的视图 不具有DataSet的任何复杂功能
所以可以加快访问和查看数据的速度 不提供断开式访问
3.DataReader和DataSet的异同?
答:
DataReader 和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection 的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为 DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为
DataReader 和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection 的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为 DataReader的特殊性和高性能.所以DataReader是只进的..你读了第一条后就不能再去读取第一条了..
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为
DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
4.写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)?
答:
select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
5.SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号?
答:Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)
oracle数据库自动备份方法
6. Oracle中使用索引的理由
解答:快速访问表中的data block
中级面试题:
一、选择题
1.在对SQL Server 数据库操作时应选用() 答案A
a)SQL Server .NET Framework 数据提供程序;
b)OLE DB .NET Framework 数据提供程序;
c)ODBC .NET Framework 数据提供程序;
d)Oracle .NET Framework数据提供程序;
2.下面叙述正确的是______。解答:C
A、算法的执行效率与数据的存储结构无关
A、算法的执行效率与数据的存储结构无关
B、算法的空间复杂度是指算法程序中指令(或语句)的条数
C、算法的有穷性是指算法必须能在执行有限个步骤之后终止
D、以上三种描述都不对
C、算法的有穷性是指算法必须能在执行有限个步骤之后终止
D、以上三种描述都不对
3.以下数据结构中不属于线性数据结构的是______。答案为: C
A、队列
B、线性表
C、二叉树
D、栈
4.在一棵二叉树上第5层的结点数最多是______。答案为: B
A、8 B、16 C、32 D、15
下面描述中,符合结构化程序设计风格的是______。答案为: A
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的执行效率
A、使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑
B、模块只有一个入口,可以有多个出口
C、注重提高程序的执行效率
D、不使用goto语句
二、问答题
1.什么是触发器?SQL Server 2000有什么不同类型的触发器?
答:触发器是一种专用类型的存储过程,它被捆绑到SQL Server 2000的表格或者视图上。在SQL Server 2000里,有INSTEAD-OF和AFTER两种触发器。
INSTEAD-OF触发器是替代数据操控语言(Data Manipulation Language,DML)语句对表格执行语句的存储过程。
2.如何处理几十万条并发数据?
答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取
3.SQLServer支持集吗?
支持,但是是属于热备份类型,不能做负载平衡。不过符合你的条件。
首先系统做集,数据库文件放到磁盘阵列里,双机或多机共同访问磁盘阵列,就可以了。
4.SQLServer中左联接查询用left join,Oracle中用什么?
左连接:select(nvl(a.c,0)-nvl(b.c,0)) from a,b where a.id(+)=b.id
右连接:select(nvl(a.c,0)-nvl(b.c,0)) from a,b where a.id=b.id(+)
自连接:select(nvl(a.c,0)-nvl(b.c,0)) from a,b where a.id(+)=b.id(+)
5.解释Oracle数据库冷备份和热备份的不同点以及各自的优点?
解答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷
备份指在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份
时,数据库仍旧可以被使用并且可以将数据库恢复到任意一个时间点。冷备份的优点在于
它的备份和恢复操作相当简单,并且由于冷备份的数据库可以工作在非归档模式下,数据库
性能会比归档模式稍好。(因为不必将archive log写入硬盘)
6.比较Oracle数据库中的 truncate和delete 命令?
解答:两者都可以用来删除表中所有的记录。区别在于:truncate是DDL操作,它移动HWK,不需要rollback segment .而Delete是DML操作, 需要rollback segment 且花费较长时间.
7.解释$ORACLE_HOME和$ORACLE_BASE的区别?
解答:ORACLE_BASE是oracle的根目录,ORACLE_HOME是oracle产品的目录
8.你必须利用备份恢复Oracle数据库,但是你没有控制文件,该如何解决问题呢?
解答:重建控制文件,用带backup control file 子句的recover 命令恢复数据库。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论