数据库面试题 联系客服

发布时间 : 星期二 文章数据库面试题更新完毕开始阅读

42. “找出每个支行储户数”:(C)

A. Select branch-name, count(customer-name) From depositor, account Where depositor.account-number = account.account-number Group by branch-name

B. Select branch-name, count(distinct customer-name) From depositor, account

Where depositor.account-number = account.account-number

C. Select branch-name, count(distinct customer-name) From depositor, account

Where depositor.account-number = account.account-number Group by branch-name

D. Select branch-name, count(customer-name) From depositor, account Group by branch-name

43.“找出账户平均余额大于1200元的支行”:(C) A. Select branch-name, avg(balance) From account Where balance > 1200 Group by branch-name

B. Select branch-name, avg(balance) From account Group by branch-name Having balance > 1200

C. Select branch-name, avg(balance) From account Group by branch-name Having avg(balance) > 1200

D. Select branch-name, avg(balance) From account Where balance>avg(balance)

Group by branch-nameHaving balance > 1200

44.“找出街道地址中包含子串Main的所有客户的姓名”:(C)

A. Select customer-name From customer Where customer-street like ‘_Main_’

B. Select customer-name From customer Where customer-street like ‘Main%’

C. Select customer-name From customer Where customer-street like ‘%Main%’

D. Select customer-name From customer Where customer-street like ‘\\%Main\\%’

1) 数据库设计的任务是(c)。 a) 选择一个符合项目需求的数据库 b) 根据需求建立几个表来存贮数据 c) 规划和结构化数据库中的数据对象以及这些对象之间的关系

d) 能使程序同时访问多个或多种数据库

2) (a)图被用来表示数据库实体之间的关系。 a) 实体关系 b) 数据模型 c) 实体分类 d) 以上都不是

3) 用户程序使用 SQL批处理技术的好处是(bcd)(多选)。

a) 没有好处,和每次传递一条SQL语句一样

b) 可以减少网络流量 c) 简化数据库的管理 d) 提高效率

4) 在sql server的存储过程中,有几个语句用于为局部变量赋值(b)。 a) 1个 b) 2个 c) 3个

d) 不需要语句,等号即可

5) 在用户程序中,如果没有设置显示或隐式事务模式,那么SQL server(b)。

a) 不进行任何事务处理

b) 使用自动提交模式

c) 就处理不了数据的更新 d) 选择默认的隐式事务模式 6) 当我们的程序使用了select * from table时,sql server会为我们建立(c)锁。 a) 意向 b) 排他 c) 共享 d) 构架

7) 如果某公司有10个部门,每个部门有6-7个员工,但每个员工可能会为不止一个部门工作。下面所给的模型合理的是( c)。

a) 部门和员工之间是一种确定的一对多的关系

b) 建立一个关联表,从该关联表到员工表建立一个一对多的关系,然后再从该关连表到部门表建立一个一对多的关系

c) 建立一个关联表,从员工表到该关联表建立一个一对多的关系,然后从部门表到该关联表建立一个一对多的关系

d) 这种情况,不能建立正常的数据库模型

8) 有一张销售表orders,含有地区编号(regionID)、销售额(orderamount)两列,现希望统计出各地区的销售总额以及所有销售额总和,下面( c)语句可以实现。

a) SELECT SUM (orderamount) FROM orders GROUP BY salepersonID, regionID b) SELECT regionID, SUM (orderamount) FROM orders ORDER BY regionID COMPUTE SUM (orderamount)

c) SELECT regionID, orderamount FROM orders ORDER BY regionID COMPUTE SUM (orderamount) BY regionID COMPUTE SUM (orderamount) d) SELECT regionID, orderamount FROM orders

GROUP BY regionID, orderamount COMPUTE SUM (orderamount) 9) 你想删除在t表中5年以前的数据,可以使用以下(a)的T-SQL a) Delete from t Where OrderDate < DATEADD(YYYY,-5,GETDATE()) b) Delete from t Where OrderDate < DATEADD(YYYY,5,GETDATE()) c) Delete from t Where OrderDate < GETDATE(), -5 d) Delete from t Where OrderDate < GETDATE(), +5

10) 一存储过程:

CREATE PROCEDURE pr_getstudent @age Int As

select name,age from Students where Age = @age 假如你要在Students表中查找年龄是18岁的学生,( b)可以正确的调用这个存储过程。

a) EXEC pr_getstudent @ age ='18' b) EXEC pr_getstudent @ age =18 c) EXEC pr_getstudent age ='18' d) EXEC pr_getstudent age =18

11) 在SQL Server 2000的查询分析器中运行以下T-SQL: USE PUBS GO sp_recompile Authors 下面说法正确的是:C

a) 报告语法错误,因为执行存储过程需要EXEC关键字 b) 执行成功,并且Authors表中的数据行被重新排列

c) 执行成功,并且Authors表中的存储过程在下次运行时将重新编译

d) 执行成功,并且Authors表中的触发器将被暂时禁止使用,直到下次运行本命令

12) 在SQL Server的视图里有:

SELECT DISTINCT productName, price FROM

product WHERE (price>(SELECT AVG(price) FROM product)) ORDER BY price DESC; 下面说法错误的是(B ).

a) ”SELECT AVG(price) FROM product ”是子查询

b) ”ORDER BY price DESC”是指按price从低到高顺序排列 c) 查询结果显示的是大于平均价格的产品记录

d) 此查询显示的字段只有”productName”和”price” 13) 以下是SQL Server表autos的定义: Create table autos (

make varchar(20) not null, model varchar(20) not null, acquisition_cost money null, acquisition_date datetime null )go

创建该表后再执行以下的语句: Truncate table autos Begin tran

Insert autos (make,model) values (‘Tucker’,'Torpedo’) If exists (select * from autos) Rollback tran Else

Commit tran go

以下说法正确的是(B)

a) 该批处理将失败,因为begin tran??commit tran 没有正确嵌套 b) 该批处理结束后,表内没有数据行 c) 该批处理结束后,表内有一行数据

d) 插入数据行的语句将失败,并且提示错误信息

14) 下列哪些答案最好地表达了下面建表命令的执行结果? (AC)

Create table MyTable (id int not null, price smallmoney not null, markup numeric (5,2) not null, msrp as price *(1+(markup/100))) a) SQL Sever存储了一张4列的表

b) SQL Server存储了一张看上去像4列实际上是3列的表 c) 建立了一张表,只允许msrp字段为null d) Markup字段是7位数字宽度

15) 关于IDENTITY属性的描述,错误的说法是? C a) 一个表只能有一个列具有IDENTITY属性。

b) 你不能对定义了IDENTITY属性的列加上 default约束。 c) 附加了IDENTITY属性的列可以是任意数据类

d) 你不能直接更新一个定义了IDENTITY属性的列。

16) Create table Sale(SaleId numeric identity, CustomerId numeric(10),

SaleNote varchar(2000) default ‘NONE’,

SaleDate datetime) 你不想将SaleNote再存储到表中,为了从表中删除SaleNote,下面所列的做法中最好的是D

a) 将sale表从数据库中以块的方式拷贝了来,删除该表,然后建立一个新的sale表,并将数据库块拷贝到的Sale表中,但忽略SaleNote列。 b) 通过删除SaleNote列来改变Sale表。 c) 先将Sale表改名,然后建立一个新的Sale表,用DTS将数据转移到新的Sale表中,但忽略SaleNote列。最后删除原始的sale表。 d) 先删除SaleNote列的缺省对象(包括索引和约束等),然后再删除该SaleNote列。

17) 对于下列建表语句:描述正确的是(A)。

Create table MyTable(id int not null,price smallmoney not null,markup numeric(5,2) not null,msrp as price*(1+(markup/100))) a) 在数据库中建立了表MyTable b) 表中所有字段都可以为null

c) 除了字段msrp,表中所有其它字段都可以为null d) 不会建立表MyTable

18) 考虑下列实例,设计一个数据库跟踪系里的课程负载情况 : PROFESSORS表包含每一个教授的信息。

COURSES 表包含所有的课程的信息。

每门课程被分配给一个指定的教授,而每一个教授可以教授几门课程。

只有在PROFESSORS 表中注册过的教授才能够教授课程,而这个教授也只能教授那些在COURSES表中登记过的课程 。

有关约束方面,下列说法正确的是(B)?

a) 在PROFESSORS表中建立一个主键,引用COURSES表。 b) 在COURSES表中创建一个外键,引用 PROFESSORS表。 c) 在PROFESSORS表中创建一个外键,引用COURSES表。 d) 在COURSES表中建立一个主键,引用PROFESSORS表。

19) 有关下列T-SQL语句,说法正确的是(BC)。 ALTER TABLE MyTable

ADD AddDate smalldatetime NULL CONSTRAINT AddDateDflt

DEFAULT getdate( ) WITH VALUES

a) 修改表MyTable,添加一个约束“AddDate”,要求数据必须为日期格式,默认值为当前日期

b) 修改表MyTable,添加一列“AddDate”,数据类型为日期

c) 修改表MyTable,添加一列“AddDate”,允许为空,默认值为当前日期 d) WITH VALUES选项表示用当前日期填充现有行的AddDate列数据。 20) 有关下列T-SQL语句,说法正确的是(BC)。 CREATE DATABASE mytest GO

a) 创建数据库需要日志文件和数据文件,所以上述语句错误。

b) 上述语句创建数据库mytest,并创建相应的主文件和事务日志文件,保存在默认的位置。

c) 上述语句创建数据库mytest,主数据库文件的大小为 model 数据库主文件的大小。

d) 上述语句创建数据库mytest,日志文件的大小为master 数据库事务日志文件的大小。