交大继续教育--数据库系统及应用第三次作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库系统及应用(高/专)
题目1
题干
关于索引的分类,下面说法正确的是()。

选择一项:
a. 主键创建时自动定义为非聚集索引。

b. 一张表可以拥有多个聚集索引。

c. 一张表可以拥有多个非聚集索引。

d. 聚集索引是按B树来组织的,而非聚集索引不是。

正确答案是:一张表可以拥有多个非聚集索引。

题目2
题干
给KCB表的“课程名”、“开课学期”列上创建复合索引KCMKKXQ_idx的命令为:()。

选择一项:
a. ALTER INDEX KCMKKXQ_idx ON KCB (课程名, 开课学期)
b. CREATE INDEX KCMKKXQ_idx ON KCB (课程名, 开课学期)
c. CREATE INDEX KCMKKXQ_idx ON KCB (课程名+ 开课学期)
d. DROP INDEX KCMKKXQ_idx ON KCB课程名, 开课学期)
正确答案是:CREATE INDEX KCMKKXQ_idx ON KCB (课程名,开课学期)
题目3
题干
给XSB表的“出生时间”列上创建唯一索引CSSJ_idx的命令为:()。

选择一项:
a. CREATE PRIMARY INDEX CSSJ_idx ON XSB(出生时间)
b. CREATE CLUSTERED INDEX CSSJ_idx ON XSB(出生时间)
c. CREATE INDEX CSSJ_idx ON XSB(出生时间)
d. CREATE UNIQUE INDEX CSSJ_idx ON XSB(出生时间)
反馈
你的回答正确
正确答案是:CREATE UNIQUE INDEX CSSJ_idx ON XSB(出生时间)
题目4
题干
给KCB表“学分”列增加让其值位于2~7之间约束的命令是()。

选择一项:
a. ALTER TABLE KCB ADD CHECK (2<=学分AND 学分<=7)
b. ALTER TABLE KCB ADD 学分tinyint CHECK (2<=学分AND 学分<=7)
c. ALTER TABLE KCB ADD (2<=学分AND 学分<=7)
d. CREATE TABLE KCB (学分tinyint CHECK(2<=学分AND 学分<=7))
反馈
你的回答正确
正确答案是:ALTER TABLE KCB ADD CHECK (2<=学分AND 学分<=7)
题目5
题干
给KCB表增加如下约束:①“学分”列的值在2~7之间,②每学分对应的学时数在16~18之间(以上范围都含边界值),其对应的SQL语句为()。

选择一项:
a. ALTER TABLE KCB ADD CHECK (2< 学分 AND 学分 <= 7) , CHECK (16 <= 学时/学
分 AND 学时/学分<=18)
b. ALTER TABLE KCB ADD CHECK (2< 学分 AND 学分 <= 7) AND CHECK (16 <= 学时/学分 AND 学时/学分<=18)
c. ALTER TABLE KCB ADD CONSTRAINT (2< 学分 AND 学分 <= 7) , CONSTRAINT (16 <= 学时/学分 AND学时/学分<=18)
d. ALTER TABLE KCB ADD CONSTRAINT (2< 学分 AND 学分 <= 7) AND CONSTRAINT (16 <=学时/学分 AND 学时/学分<=18)
反馈
d. 水果号 char(12) PRIMARY KEY ,
水果名 char(30)
反馈
你的回答正确
正确答案是:水果号 char(12) PRIMARY KEY ,
水果名 char(30)
题目7
题干
如下创建用户表的语句:
CREATE TABLE Users (
__①__ ,
密码 char(30),
通信地址 varchar(100)
)
上述语句的空项内容为()。

选择一项:
a. 用户号 char(20) ,
用户名 char(8)
b. 用户号 char(20) NOT NULL PRIMARY KEY,
用户名 char(8)
c. 用户号 char(20) NOT NULL PRIMARY KEY,
用户名 char(8) NOT NULL PRIMARY KEY
d. 用户号 char(20) ,
用户名 char(8) NOT NULL PRIMARY KEY
反馈
你的回答正确
正确答案是:用户号 char(20) NOT NULL PRIMARY KEY, 用户名 char(8)
题干
如下创建网购表的语句:
CREATE TABLE NetShops (
__①__ ,
__②__ ,
数量 int ,
__③__
)
上述语句的空项内容为()。

选择一项:
a. ①空:水果号 char(12) NOT NULL PRIMARY KEY
②空:用户号 char(20) NOT NULL PRIMARY KEY
③空:REFERENCES Fruits(水果号), Users (用户号)
b. ①空:水果名 char(12) NOT NULL FOREIGN KEY (水果名) REFERENCES Fruits (水果名)
②空:用户名 char(20) NOT NULL FOREIGN KEY (用户名) REFERENCES Users (用户名)
③空:PRIMARY KEY (水果名, 用户名
c. ①空:水果号 char(12) NOT NULL PRIMARY KEY (水果号) REFERENCES Fruits (水果号)
②空:用户号 char(20) NOT NULL PRIMARY KEY (用户号) REFERENCES Users (用户号)
③空:UNIQUE(水果号, 用户号)
d. ①空:水果号 char(12) NOT NULL FOREIGN KEY (水果号) REFERENCES Fruits (水果号)
②空:用户号 char(20) NOT NULL FOREIGN KEY (用户号) REFERENCES Users (用户号)
③空:PRIMARY KEY (水果号, 用户号)
反馈
你的回答正确
正确答案是:①空:水果号 char(12) NOT NULL FOREIGN KEY (水果号) REFERENCES Fruits (水果号)
②空:用户号 char(20) NOT NULL FOREIGN KEY (用户号) REFERENCES Users (用户号)
③空:PRIMARY KEY (水果号, 用户号)
题干
某存储过程的定义语句为:CREATE PROCEDURE myproc @nm char(8), @age int = 30
AS ……,则下面执行该过程正确的语句是()。

选择一项:
a. EXEC myproc 18, '张三'
b. EXEC myproc '张三'
c. EXEC myproc @age=18
d. EXEC myproc
反馈
你的回答正确
正确答案是:EXEC myproc '张三'
题目11
题干
某存储过程的定义语句为CREATE PROCEDURE myproc @ nm char(8), @age int OUTPUT
AS ……,则下面执行该过程正确的语句是()。

选择一项:
a. DECLARE @zsage int; EXEC myproc @zsage, '张三'
b. DECLARE @zsage int; EXEC myproc '张三', @zsage OUTPUT
c. DECLARE @zsage int; EXEC myproc '张三', @zsage
d. EXEC myproc '张三', @zsage OUTPUT; DECLARE @zsage int
反馈
你的回答正确
正确答案是:DECLARE @zsage int; EXEC myproc '张三', @zsage OUTPUT
题目12
题干
有如下触发器CREATE TRIGGER mytrg ON KCB INSTEAD OF INSERT AS PRINT 'mytrg' ,则执行INSERT INTO KCB VALUES('303','嵌入式系统',7, 68, 4) 语句后,结果为()。

选择一项:
a. KCB表插入了记录,并在消息窗口显示mytrg文字
b. KCB表没有插入记录,仅仅在消息窗口显示mytrg文字。

c. KCB表没有插入记录,在消息窗口也没有任何文字显示。

d. KCB表插入了记录,消息窗口无显示。

反馈
你的回答正确
正确答案是:KCB表没有插入记录,仅仅在消息窗口显示mytrg文字。

题目13
题干
有如下触发器CREATE TRIGGER mytrg ON KCB AFTER INSERT AS PRINT 'mytrg' ,则执
行INSERT INTO KCB VALUES('303','嵌入式系统',7, 68, 4) 语句后,结果为()。

选择一项:
a. KCB表没有插入记录,仅仅在消息窗口显示working文字。

b. KCB表插入了记录,消息窗口无显示。

c. KCB表没有插入记录,在消息窗口也没有任何文字显示。

d. KCB表插入了记录,并在消息窗口显示mytrg文字
反馈
你的回答正确
正确答案是:KCB表插入了记录,并在消息窗口显示mytrg文字
题目14
题干
有如下触发器CREATE TRIGGER mytrg ON KCB AFTER INSERT AS ROLLBACK TRANSACTION ,则执行INSERT INTO KCB VALUES('303','嵌入式系统',7, 68, 4) 语句后,结果为()。

选择一项:
a. 触发器没有触发(即调用),KCB表没有插入记录。

b. 触发器没有触发(即调用),但KCB表插入了记录。

c. 触发器触发(即调用)了,KCB表插入了记录。

d. 触发器触发(即调用)了,但KCB表没有插入记录。

反馈
你的回答正确
正确答案是:触发器触发(即调用)了,但KCB表没有插入记录。

题目15
题干
创建一个对应D:\temp\snddb.bak物理文件,逻辑名为thebckdb的永久备份介质的SQL命令为()。

选择一项:
a. EXEC sp_dropdevice 'disk' , 'D:\temp\sndd
b.bak', 'thebckdb'
b. EXEC sp_addumpdevice 'disk' , 'D:\temp\snddb.bak', 'thebckdb'
c. EXEC sp_addumpdevice 'disk' , 'thebckdb', 'D:\temp\snddb.bak'
d. EXEC sp_dropdevice 'disk' , 'thebckdb', 'D:\temp\snddb.bak'
反馈
你的回答正确
正确答案是:EXEC sp_addumpdevice 'disk' , 'thebckdb', 'D:\temp\snddb.bak'
题目16
题干
已经有了一个对应D:\temp\snddb.bak物理文件,逻辑名为thebckdb的永久备份介质,现将数据
库TEST1完全备份到该永久介质上,对应的SQL语句为()。

选择一项:
a. BACKUP LOG TEST1 TO thebckdb
b. BACKUP LOG TEST1 TO 'D:\temp\snddb.bak'
c. BACKUP DATABASE TEST1 TO 'D:\temp\snddb.bak'
d. BACKUP DATABASE TEST1 TO thebckdb
反馈
你的回答正确
正确答案是:BACKUP DATABASE TEST1 TO thebckdb
题目17
题干
从一个已存在的命名备份介质thebckdb中恢复整个数据库TEST1的SQL语句为()。

选择一项:
a. RESTORE DATABASE TEST1 FROM thebckdb WITH FILE=1, REPLACE
b. RESTORE DATABASE TEST1 FROM DATABASE_SNAPSHOT=thebckdb
c. RESTORE LOG TEST1 FROM DATABASE_SNAPSHOT=thebckdb
d. RESTORE LOG TEST1 FROM thebckdb WITH FILE=1, REPLACE
反馈
你的回答正确
正确答案是:RESTORE DATABASE TEST1 FROM thebckdb WITH FILE=1, REPLACE 题目18
题干
angelali为登录(LOGIN)名,angela为用户(USER)名,为vip角色(ROLE)名,则下面语句中非法的是()。

选择一项:
a. GRANT CREATE TABLE TO angelali
b. GRANT CREATE TABLE TO vip
c. GRANT CREATE TABLE TO angela
d. GRANT CREATE TABLE TO guest
反馈你的回答正确
正确答案是:GRANT CREATE TABLE TO angelali
题目19
题干
要想使数据库中所有的用户都能查询KCB表,我们应该使用的SQL语句为()。

选择一项:
a. GRANT SELECT ON KCB TO anybody
b. GRANT SELECT ON KCB TO anyone
c. GRANT SELECT ON KCB TO guest
d. GRANT SELECT ON KCB TO public
反馈
你的回答正确
正确答案是:GRANT SELECT ON KCB TO public
题干
假设之前已经给予了jerry用户在KCB表上插入的权限,现在想要收回此权限,让其不再拥有此权限,我们应该使用()。

选择一项:
a. REVOKE INSERT ON KCB FROM public
b. REVOKE INSERT ON KCB FROM jerry
c. DENY INSERT ON KCB TO jerry
d. DENY INSERT ON KCB TO public
反馈
你的回答正确
正确答案是:REVOKE INSERT ON KCB FROM jerry
题目21
题干
对于下面代码:
UPDATE CJB SET 成绩= 成绩+10 WHERE 学号 = '081101'
DELETE FROM CJB WHERE 学号 = '081103'
ROLLBACK
实际的效果是:()。

选择一项:
a. UPDATE和DELETE语句运行的结果都写到数据库中。

b. 只有UPDATE语句运行的结果写到数据库中。

c. 只有DELETE语句运行的结果写到数据库中。

d. UPDATE和DELETE语句运行的结果都没有写到数据库中。

反馈
你的回答正确
正确答案是:只有UPDATE语句运行的结果写到数据库中。

题干
对于下面代码:
BEGIN TRANSACTION
UPDATE CJB SET 成绩= 成绩+10 WHERE 学号 = '081101' DELETE FROM CJB WHERE 学号 = '081103'
ROLLBACK
COMMIT
实际的效果是:()。

选择一项:
a. UPDATE和DELETE语句运行的结果都没有写到数据库中。

b. 只有UPDATE语句运行的结果写到数据库中。

c. UPDATE和DELETE语句运行的结果都写到数据库中。

d. 只有DELETE语句运行的结果写到数据库中。

反馈你的回答正确
正确答案是:UPDATE和DELETE语句运行的结果都没有写到数据库中。

题目23
题干
对于下面代码:
BEGIN TRANSACTION
UPDATE CJB SET 成绩= 成绩+10 WHERE 学号 = '081101' DELETE FROM CJB WHERE 学号 = '081103'
COMMIT
ROLLBACK
实际的效果是:()。

选择一项:
a. 只有UPDATE语句运行的结果写到数据库中。

b. UPDATE和DELETE语句运行的结果都没有写到数据库中。

c. UPDATE和DELETE语句运行的结果都写到数据库中。

d. 只有DELETE语句运行的结果写到数据库中。

反馈你的回答不正确
正确答案是:UPDATE和DELETE语句运行的结果都写到数据库中。

题干
锁的粒度越大,则系统开销越__,并发度越__。

()。

选择一项:
a. 小,低
b. 大,高
c. 小,高
d. 大,低
反馈你的回答正确
正确答案是:小,低
题目25
题干
针对上述第6~8题的“水果电商网上订购系统”所建立的表(Fruits、Users、NetShops)对应的数据库,若该网购系统规定每次订购的水果的数量不能大于库存数,定义水果表的触发器netshop_safety的代码如下:
CREATE TRIGGER netshop_safety ON Fruits
AFTER UPDATE AS
BEGIN
DECLARE @kucunshu int /* 水果的库存数 */
SELECT @kucunshu___①___ /* 获得更新后的库存数 */
IF @kucunshu < 0 /* 订购的水果的数量大于库存数 */
___②___
END
上述代码的第①空项内容为()。

选择一项:
a. = 库存数 FROM updated
b. = 0
c. = 库存数 FROM deleted
d. =库存数 FROM inserted
反馈
你的回答正确
正确答案是:=库存数 FROM inserted
题干
上述代码的第②空项内容为()。

选择一项:
a. COMMIT
b. CANCEL
c. PRINT '不能订购'
d. ROLLBACK
反馈
你的回答正确
正确答案是:ROLLBACK
题目27
题干
在上述第6~8题所建立的数据库,和第25~26题所定义的触发器的基础上,定义“水果电商网上订购系统”的网上订购一种水果的存储过程netshopafruit,参数分别为表示顾客的用户号的@userid,表示水果号的@fruitid,表示订购数量的@quantity。

该存储过程要求:
⑴如果NetShops表中没有对应用户号、水果号的记录存在,则插入新一个记录;如果有对应用户号、水果号完全相同的记录存在(即该水果本用户已经订了,现在要加订数量),则该记录的数量增加@quantity。

⑵修改Fruits表中对应水果号的记录,将库存数减去@quantity。

注:此步骤可能触发上面定义的触发器。

⑶整个过程的工作要么完全完成,要么什么都不做。

针对以上要求存储过程的定义代码如下:
CREATE PROCEDURE netshopafruit @userid char (20), @fruitid char(12), @quantity int
AS
BEGIN
___①___
IF ___②___ /* 订单已存在 */
UPDATE NetShops SET数量 = 数量 + @quantity
WHERE用户号 = @userid AND 水果号 = @fruitid
ELSE /* 订单不存在 */
___③___
___④___
END
上述代码的第①、④空项内容分别为()。

选择一项:
a. ①空:GO
④空:COMMIT
b. ①空:GO
④空:GO
c. ①空:BEGIN TRANSACTION
④空:COMMIT TRANSACTION
d. ①空:BEGIN TRANSACTION
④空:ROLLBACK
反馈
你的回答正确
正确答案是:①空:BEGIN TRANSACTION
④空:COMMIT TRANSACTION
题目28
题干
上述代码的第②空项内容为()。

选择一项:
a. (SELECT count(*) >0 FROM NetShops WHERE 用户号 = @userid AND 水果
号 = @fruitid )
b. EXISTS (SELECT * FROM NetShops)
c. (SELECT count(*) >0 FROM NetShops )
d. EXISTS (SELECT * FROM NetShops WHERE 用户号 = @userid AND 水果号 = @fruitid )
反馈
你的回答正确
正确答案是:EXISTS (SELECT * FROM NetShops WHERE 用户号 = @userid AND 水果号 = @fruitid )
题目29
题干
上述代码的第③空项内容为()。

选择一项:
a. INSERT INTO NetShops (水果号, 用户号, 数量) VALUES (@fruitid, @userid,
@quantity)
UPDATE Fruits SET 库存数 = 库存数 - @quantity WHERE商品号 = @fruitid
b. UPDATE NetShops SET数量 = 数量 + @quantity
WHERE用户号 = @userid AND 水果号 = @fruitid
c. INSERT INTO NetShops (水果号, 用户号, 数量) VALUES (@fruitid, @userid,
@quantity)
d. UPDATE Fruits SET 库存数 = 库存数 - @quantity WHERE商品号 = @fruitid
反馈
你的回答正确
正确答案是:INSERT INTO NetShops (水果号, 用户号, 数量) VALUES (@fruitid, @userid, @quantity)
UPDATE Fruits SET 库存数 = 库存数 - @quantity WHERE商品号 = @fruitid
题目30
题干
针对上述第9题的“Linux/Windows的文件目录系统”所建立的数据库,若在该数据库中规定每个目录手下最多10个子目录,定义对应的MLB的触发器mlb_safety的代码如下:CREATE TRIGGER mlb_safety ON MLB
__①__ AS
BEGIN
DECLARE @parentid char(6) /* 父目录的inode */
DECLARE @childnum int /* 子目录数 */
SELECT @ parentid __②__ /* 获得父目录的inode */
SELECT @childnum __③__ /* 获得子目录数 */
IF @childnum > 10 /* 子目录数数超过10个 */
__④___
END
上述代码的第①空项内容为()。

选择一项:
a. INSTEAD OF INSERT, UPDATE
b. INSTEAD OF INSERT
c. AFTER INSERT, UPDATE
d. AFTER INSERT
反馈
你的回答正确
正确答案是:AFTER INSERT, UPDATE
题目31
题干
上述代码的第②空项内容为()。

选择一项:
a. = 父目录 FROM deleted
b. FROM inserted
c. = 父目录 FROM inserted
d. FROM deleted
反馈
你的回答正确
正确答案是:= 父目录 FROM inserted
题目32
题干
上述代码的第③空项内容为()。

选择一项:
a. FROM MLB WHERE @parentid IS NOT NULL AND 父目录 = @parentid
b. = COUNT(*) FROM MLB WHERE 父目录 = @parentid
c. = COUNT(*) FROM MLB WHERE @parentid IS NOT NULL AND 父目录 =
@parentid
d. FROM MLB WHERE父目录 = @parentid
反馈
你的回答正确
正确答案是:= COUNT(*) FROM MLB WHERE @parentid IS NOT NULL AND 父目录 = @parentid
题目33
题干
上述代码的第④空项内容为()。

选择一项:
a. COMMIT
b. PRINT '不能编辑此项的父目录'
c. ROLLBACK
d. CANCEL
反馈
你的回答正确
正确答案是:ROLLBACK
题目34
题干
在上述第9题所建立的数据库,和第30~33题所定义的触发器的基础上,为“Linux/Windows 的文件目录系统”定义一个存储过程Find_Root_Directory,该过程对参数@dirid指定的目录(的inode),在MLB中查找出根目录的inode号放入变量@rootdirectory变量。

该过程具体情况为:如果目录(号)为@dirid的记录的“父目录”字段值不为NULL,则
@rootdirectory的值为其最高领导的目录(号);如果“父目录”字段值为NULL,则
@rootdirectory的值为NULL。

DECLARE @rtdir char(6)
EXEC Find_Root_Directory '3913105', @rtdir OUTPUT
后@rtdir的值为3877079。

而执行如下代码:
EXEC Find_Root_Directory '3877079', @rtdir OUTPUT
后@rtdir的值为NULL。

该存储过程的定义SQL语句如下:
CREATE PROCEDURE Find_Root_Directory @dirid char(6), @rootdirectory char(6) OUTPUT
AS
BEGIN
SET @rootdirectory = (SELECT 父目录 FROM MLB WHERE 学号 = @dirid)
IF @rootdirectory IS NULL
RETURN
WHILE __①__
BEGIN
__②__
END
SET @rootdirectory = @dirid
END
上述代码的第①空项内容为()。

选择一项:
a. @rootdirectory IS NULL
b. @rootdirectory IS NOT NULL
c. 1
d. 0
反馈
你的回答正确
正确答案是:@rootdirectory IS NOT NULL
题目35
题干
上述代码的第②空项内容为()。

选择一项:
a. SET @dirid = @rootdirectory
b. SET @rootdirectory = (SELECT 父目录 FROM MLB WHERE 学号 = @dirid)
c. SET @dirid = @rootdirectory
SET @rootdirectory = (SELECT 父目录 FROM MLB WHERE 学号 = @dirid)
d. SET @dirid = (SELECT 父目录 FROM MLB WHERE 学号 = @dirid)
SET @rootdirectory = @dirid
反馈
你的回答正确
正确答案是:SET @dirid = @rootdirectory
SET @rootdirectory = (SELECT 父目录 FROM MLB WHERE 学号 = @dirid)。

相关文档
最新文档