当前位置:文档之家› SQL笔试题

SQL笔试题

针对以下题目请选择正确答案(每道题目有一个或多个正确的答案)。

针对每一道题目,所有答案都选对,则该题得分,否则不得分。

1. 数据库设计的最终目标不包括()。

(选择两项)BDA. 高效B. 满足范式要求C. 安全D. 表现设计者的技术实力E. 易用F. 便于将来扩展功能和容量2. 有关数据冗余说法错误的是()。

(选择一项)CA. 数据库中,数据存在副本的现象,就是数据冗余。

B. 通过分类存储,可以有效减少数据冗余,但是会增加数据查找的复杂性。

C. 在数据库设计阶段,一定要尽最大可能避免数据冗余,最好做到无数据冗余。

D. 数据冗余通常是由于数据库设计引起的。

3. 用于表示数据库实体之间的关系图是()。

AA. 实体关系图B. 数据模型图C. 实体分类图D. 以上都不是4. 假定有一个用户表,表中包含字段:userid (int)、username (varchar)、password(varchar)等,该表需要设置主键,以下说法正确的是()。

(选择两项)ABA. 如果不能有同时重复的username和password,那么username和password可以组合在一起作为主键。

B. 此表设计主键时,根据选择主键的最小性原则,最好采用userid作为主键。

C. 此表设计主键时,根据选择主键的最小性原则,最好采用username和password作为组合键。

D. 如果采用userid作为主键,那么在userid列输入的数值,允许为空。

5. 语句alter table userinfo add constraint uq_userid unique(userid)执行成功后,为userinfo表的()字段添加了()约束。

BA. userid 主键B. userid 唯一C. uq_userid 外键D. uq_userid 检查6. 运行如下T-SQL,结果返回包含()的记录集。

Acreate table scores(scoreid int identity(1,2),score numeric(4,2) not null,courseid int)insert int scores values(90.5,null);insert into scores values(78.234,2);select * from scores;A. 1 90.50 NULL3 78.23 2B. 1 78.23 2C. 1 90.50D. 1 90.502 78.23 27. 关于子查询,以下说法正确的是()。

(选择两项)ACA. 一般来说,表连接都可以用子查询替换。

B. 一般来说,子查询都可以用表连接替换。

C. 相对于表连接,子查询适合于作为查询的筛选条件。

D. 相对于表连接,子查询适合于查看多表的数据。

8. 创建存储过程如下:create procedure scoreproc@scoreid int,@score numeric(4,2) outputasselect @score = score from scores where scoreid=@scoreid正确的调用是:CA. exec scoreproc 1,@myscore outputprint @myscoreB. exec scoreproc @id = 1,@myscore outputprint @myscoreC. declare @myscore numeric(4,2)exec scoreproc 1,@myscore outputprint @myscoreD. declare @myscore numeric(4,2)exec scoreproc @id = 1,@myscore outputprint @myscore9. 假设需要设计一张表,记录各个作者著作的所有图书信息,表的结构如下:作者(作者名称,图书1,版本1,书价1,图书二,版本2,书价2,…),该表最多符合第()范式。

AA. 一B. 二C. 三D. 不符合任何范式10. 一个学生只能就读于一个班级,而一个班级可以同时容纳多个学生,学生与班级之间是()的关系。

CA. 一对一B. 一对多C. 多对一D. 多对多11. E-R图中,关系集用下面()来表示。

BA. 矩形B. 椭圆形C. 菱形D. 圆形12. 有如下表结构,#号打头字段代表主键或组合主键,一份订单可以订购多种产品。

产品:#产品编号,产品名称,产品价格;订单:#订单编号,#产品编号,订购日期,订购数量;(订单编号与产品编号是组合主键)该表最高符合第()范式。

BA. 一B. 二C. 三D. 未规范化的13. 有如下表结构,#号打头字段代表主键或组合主键,一份订单可以订购多种产品。

产品:#产品编号,产品名称,产品价格;订单:#订单编号,总价,订购日期;订单子项:#子项编号,订单编号,产品编号,订购数量;该表最高符合第()范式。

CA. 一B. 二C. 三D. 未规范化的14. 创建sql语句如下:create table userInfo(userId int identity(-1,1), 第1行userName nvarchar(20) not null, 第2行cardNO char not null, 第3行age smallint(2), 第4行address ntext(300) 第5行)执行时,会在第()行出现错误。

(选择两项)DEA. 1B. 2C. 3D. 4E. 515. 以下关于规范设计的描述正确的是()。

(选择两项)ADA. 规范设计的主要目的是消除数据冗余。

B. 规范设计往往会增加数据库的性能。

C. 设计数据库时,规范化程度越高越好。

D. 在规范化数据库时,易于维护数据库的完整性。

16. 关于存储过程,以下说法正确的是()。

(选择一项)AA. 不能在存储过程中使用CREA TE VIEW命令。

B. T-SQL批代码的执行速度要快于存储过程。

C. 存储过程必须带有参数。

D. 存储过程不能返回结果集。

17. 已知有scores表,scoreid为主键,现在表中共有10条记录,其中一条scoreid=21。

创建视图:create view view_scoresasselect * from scores执行如下命令:delete from view_scores where (scoreid = 21)再执行如下命令:select * from scoresselect * from view_scores假定上述命令全部执行成功,将各自返回()()行记录。

DA. 10,10B. 10,9C. 9,10D. 9,918. 设计用户表时,身份证号为固定18位长,对该字段最好采用()数据类型。

(选择一项)BA. intB. charC. varcharD. text19. 授予用户someone对scores表的一些权限,正确的授权语句是()。

(选择一项)CA. grant insert , update to talbe scores on someoneB. grant insert and update to table scores on someoneC. grant insert , update on scores to someoneD. grant insert and update on scores to someone20. 建立如下数据库表:create talbe Department(departID int not null primary key,deptName varchar(20) not null)create table Employee(employeeID int not null,deptID int not null,name varchar(20) not null)要想保证Employee表中每一个雇员(employee)是唯一的,且只能属于在Department表中已经存在的部门,最有的做法是()。

(选择一项)BA. 把employeeID和deptID设为组合主键。

B. 把employeeID设为主键,同时在deptID列上创建一个外键约束。

C. 把employeeID设为主键,同时在deptID列上创建一个检查约束。

D. 在deptID列上创建一个唯一约束,同时在deptID列上创建一个外键约束。

21. 建立一张员工表,当向表中插入数据时,若不提供入职时间,就把系统当前时间作为员工入职时间插入数据库,以下说法正确的是()。

(选择一项)DA. 约束不能使用各种函数,所以无法实现要求的功能。

B. 可以使用CHECK约束实现,默认值采用日期函数getDate()。

C. 入职时间必须设为日期类型。

D. 可以使用DEFAULT约束实现,默认值采用日期函数getDate()。

22. 为了加快对某表查询的速度,应对此表建立()。

(选择一项)DA. 约束B. 存储过程C. 规则D. 索引23. 假设有表student(学生)的设计如下:id () 标识列name () 学生姓名address () 学生地址department () 所属院系departmentHead () 学院主管该表最高满足()范式。

(选择一项)BA. 一B. 二C. 三D. 不满足任何范式24. 为数据库中一个或者多个表中的数据提供另外一种查看方式的逻辑表被称为()。

(选择一项)CA. 存储过程B. 数据库关系图C. 视图D. 表25. 要建立一个教师表,包含姓名、职称、级别等字段。

若插入数据时,级别字段如果不输入,缺省值为“讲师”,最合适的实现方式是()。

AA. 为“级别”字段建立default约束。

B. 为“级别”字段建立check约束。

C. 为教师表数据输入编写一个存储过程进行控制。

26. 现有订单表orders,包含数据如下表。

若查询既订购了产品p01,又订购了产品p02的顾客编号,可以执行以下()sql语句。

(选择两项)CDA. select distinct (cid) from orders ol where ol.pid in ('p01','p02')B. select distinct (cid) from orders ol where ol.pid = 'p01' and ol.pid = 'p02'C. select distinct (o1.cid) from orders o1,orders o2 where o1.pid='p01' and o2.pid='p02' and o2.cid = o1.cidD. select distinct(cid) from orders where pid = 'p01' and cid in(select cid from orders where pid='p02')27. 关于聚集索引,以下()说法是错误的。

相关主题