《数据库》编程+总复习(思考题、实验解答)

上传人:第*** 文档编号:54450573 上传时间:2018-09-13 格式:PPT 页数:43 大小:288KB
返回 下载 相关 举报
《数据库》编程+总复习(思考题、实验解答)_第1页
第1页 / 共43页
《数据库》编程+总复习(思考题、实验解答)_第2页
第2页 / 共43页
《数据库》编程+总复习(思考题、实验解答)_第3页
第3页 / 共43页
《数据库》编程+总复习(思考题、实验解答)_第4页
第4页 / 共43页
《数据库》编程+总复习(思考题、实验解答)_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《《数据库》编程+总复习(思考题、实验解答)》由会员分享,可在线阅读,更多相关《《数据库》编程+总复习(思考题、实验解答)(43页珍藏版)》请在金锄头文库上搜索。

1、1,思考题,公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从部门到职员的联系类型是 ( )A. 多对多 B. 一对一 C. 多对一 D. 一对多,一对多,2,思考题,下列聚合函数中哪一个是计算列的平均值( )SUM ( ) MAX ( ) AVG ( ) COUNT ( ),AVG ( ),3,思考题,Where age = 20 and age =20 or age = 50 C. Where age between 20 and 50 D. Where age between 20 or 50,Where age between 20 and 50,4,思考

2、题,现有如下关系: 患者(患者编号,患者姓名,性别,出生日期,所在单位) 医生(医生编号,医生姓名,所在科室) 医疗(患者编号,医生编号,诊断日期,诊断结果) 则,医疗关系中的外键有( )A.患者编号 B.医生编号 C.患者编号和医生编号 D.没有,患者编号和医生编号,5,思考题,为数据表创建索引的目的是( ) A. 创建主键 B. 创建唯一索引 C. 提高查询的检索性能 D. 归类,提高查询的检索性能,6,思考题,设有一张数据表“DEPT”,包含两个字段DNO和DNAME,如果要找出倒数第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNAME LIKE(

3、) A. _ _ W _ % B. _ % W _ _ C. _ W _ _ D. _ W _ %,_ % W _ _,7,思考题,SQL语言中,删除一个表的命令是( ) A. DELETE TABLE B. DROP TABLE C. CLEAR TABLE D. REMORE TABLE,DROP TABLE,8,思考题,如果要求学生关系S(SNO,NAME,SEX,AGE)中存储的学生信息满足下列条件:男生(SEXF)的年龄在1560岁之间,女生(SEXM)的年龄在1555岁之间。那么在关系S的定义中加入的检查子句正确的是( ) A.CHECK(AGE=15 AND(SEX=M AND

4、AGE=15 AND(SEX=MAND AGE=15 OR(SEX=MAND AGE=15 OR(SEX=MAND AGE=60)AND(SEX=FAND AGE=15 AND(SEX=MAND AGE=60)OR(SEX=FAND AGE=55),9,思考题,索引字段值不唯一,应该选择的索引类型为( )。 A、主索引 B、普通索引 C、候选索引 D、唯一索引,普通索引,10,思考题,在哪种索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同( )?A、聚簇索引 B、非聚簇索引 C、两者都是 D、两者都不是,聚簇索引,11,思考题,为了实现安全性,每个网络用户在访问 SQL server 数

5、据库之前,都必须经过验证包括:( ) 身份验证和权限验证 身份验证 权限验证 不需要验证,身份验证和权限验证,12,思考题,UPDATE语句可能涉及到触发器中的临时表为:( ) ADELETED表 BINSERTED表 CINSERTED表与DELETED表 DUPDATED表,CINSERTED表与DELETED表,13,思考题,SQL server数据库文件有三类,其中主数据文件的后缀为:( ) A、.ndf B、.ldf C、.mdf D、.idf,C、.mdf,14,思考题,下面标志符不合法的是:( ) A、my delete B、_mybase C、$money D、trigger1

6、,C、$money,15,思考题,下面对索引的相关描述正确的是:( ) A、经常被查询的列不适合建索引。 B、只有少数几个值的列适合建索引。 C、有重复值的列适合建索引。 D、是外键或主键的列不适合建索引。,C、,16,思考题,下列说法中正确的是:( ) A、SQL server中局部变量可以不声明就使用 B、SQL server中全局变量必须先声明再使用 C、SQL server中所有变量都必须先声明后使用 D、SQL server中只有局部变量先声明后使用;,全局变量是由系统提供的,用户不能自己建立。 D、,17,思考题,下面字符串能与通配符表达式ABC%a进行匹配的是:( ) A、BCD

7、EF B、A_BCD C、ABC_a D、A%a,C、,18,思考题,下列语句中正确的是( )。 表 score(sti_id,names,math,English,VB) A. select stu_id,sum(math) from score B. select sum(math),avg(VB) from score C. select * ,sum(English) from score D. delete * from score,B、(DELE语句不使用*号),19,思考题,下列说法正确的是( )。 A 、视图是观察数据的一种方法,只能基于基本表建立。 B 、视图是虚表,观察到的

8、数据是实际基本表中的数据。 C 、视图中存放着观察到的数据。 D 、视图中并不存放实际数据,所以视图没什么用。,B、,20,思考题,下面是合法的smallint数据类型数据的是:( ) A、2235 B、32768 C、-32767 D、58345,C、smallint 从 -215 (-32,768) 到 215 - 1 (32,767) 的整型数据。存储大小为 2 个字节,21,思考题,create table l1 (num decimal(7,3) go insert into l1 values (9999.9994) 执行上面命令后,表中的数据是:( ) A 、出现插入错误 B 、

9、 9999.999 C 、 10000.00 D 、 0.0,B、,22,思考题,下列哪个不属于数据库对象:( ) A 、存储过程 B 、角色 C 、 视图 D 、 日志,D、,23,思考题,下列描述中,哪个不是游标支持的功能:( ) A、建立数据库。 B、在结果集中定位特定行。 C、从结果集的当前位置检索行。 D、支持对结果集中当前位置的行进行数据修改。,A、,24,上机实验,课本P160 7.9实验 2),填空:USE SALES GO CREATE FUNCTION FF(N AS INT) RETURNS INT BEGIN DECLARE S INT, K INT SET /*填空*

10、/ SET /*填空*/ while /*填空*/ beginSET S= /*填空*/ SET /*填空*/ end RETURN /*填空*/ END GO,执行时: USE SALES GO SELECT DBO.FF(5) 显示: 120,25,课本P160 7.9实验 2)USE SALES GO CREATE FUNCTION FF(N AS INT) RETURNS INT BEGIN DECLARE S INT, K INT SET S=1 SET K=1 while K=NbeginSET S=S*KSET K=K+1end RETURN S END GO,执行时: USE

11、SALES GO SELECT DBO.FF(5) 显示: 120,26,上机实验,把SALES 数据库附加进自己的系统。 按要求建立如下的存储过程(1) 单表操作: 存储过程名:myp 带入参数:长度为3的字符串 输出:Orders表里CustomerID为该字符串的所有订单信息。见下页的运行效果:,27,28,实验提示(待填空),建立存储过程 myp: CREATE PROCEDURE mypx char(3) AS SELECT * FROM Orders WHERE (/* 填空 */ ) GO,29,解答,建立存储过程 myp: CREATE PROCEDURE mypx char(

12、3) AS SELECT * FROM Orders WHERE (customerid=x ) GO,30,(2) 多表连接:Orders、Salers、Customers 存储过程名:myp2 带入参数:一个整数 输出:Orders表里订单编号为该整数的客户名称、销售员和订单日期。见下页的运行效果:,31,32,建立存储过程 myp2: CREATE PROCEDURE myp2y int AS SELECT Orders.OrderID, Customers.CompanyName, Salers.Salename, Orders.OrderDate FROM Orders INNER

13、JOINSalers ON /* 填空 */ INNER JOINCustomers ON /* 填空 */ WHERE (/* 填空 */ ),实验提示(待填空),33,建立存储过程 myp2: CREATE PROCEDURE myp2y int AS SELECT Orders.OrderID, Customers.CompanyName, Salers.Salename, Orders.OrderDate FROM Orders INNER JOINSalers ON Orders.SaleID = Salers.SaleID INNER JOINCustomers ON Orders

14、.CustomerID = Customers.CustomerID WHERE (Orders.Orderid=y),34,上机实验:创建及使用触发器,1、把SALES 数据库附加进自己的系统。 2、按要求建立如下的触发器触发器名称:mytrigger 功能:当修改OrderDetails表中的quantity列的内容时,相应更改Products表中的库存数量(stocks列):把变动的数据在库存中反应出来,例如订单上的数量增加了100,则库存数量相应减少100。依此类推。 实例:当SALES 数据库附加进来时,OrderDetails中数据如下:,35,注意第一行的P01003(绿茶)的数

15、量为50:,36,初始时SALES数据库里的Products表的内容如下,注意其中绿茶的数量为170:,37,创建了mytrigger之后,修改OrderDetails表中的第一行:把数量从50改为100:再次打开Products表,发现绿茶的库存已从原来的170变为120:,38,删除该触发器,再次修改OrderDetails表中的数量,看看Products表的数据还有没有相应改变? 思考:怎么完善触发器,使之能避免造成库存为负数? 提示:先增加products表的CHECK约束,不允许stocks数量为负数:,39,然后确认相应的触发器为前触发器。 当把OrderDetails表中的第一行(绿茶)的数量改为400时,由于超出了products表中绿茶的库存量,于是出现下面提示。关闭窗口,发现本次修改不成功。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号