![](https://static.youtibao.com/asksite/comm/h5/images/m_q_title.png)
外键是一个实体的主键,它被贡献给(复制到)另一个实体以确定一个关系实例。子实体中的外键总是匹配父实体中的主键。()
![](https://static.youtibao.com/asksite/comm/h5/images/solist_ts.png)
A.B表外键列的取值必须是A表主键列或者唯一索引列中的取值
B.A表主键列或者唯一索引列取值发生改变,B表外键列的值也发生改变
C.在MySQL中,所有的存储引擎均支持外键约束
D.A表主键列或者唯一索引列取值删除,B表外键列取值与该值相同的行会被删除
在关系模型中,实现关系中不允许出现相同的元组的约束是通过【】
A.侯选键
B.主键
C.外键
D.超键
A.机械强度
B.活性
C.再生性
D.稳定性
以下是某图书管理系统的数据库模式: 读者(借书证号,姓名,联系电话,身份证号,注销标记) 主键:借书证号 出版社(出版社名称,联系电话,地址) 主键:出版社名称 采购图书(ISBN,书名,作者,责任编辑,出版社名称,出版时间,单价,馆藏数量) 主键:ISBN 外键:出版社名称,参照 出版社(出版社名称) 上架图书(内部编码,检索号,借阅状态,ISBN,上架时间) 主键:内部编码 外键:ISBN,参照 采购图书(ISBN) 借阅(借阅编号,借书证号,图书内部编码,借阅时间,归还时间) 主键:借阅编号 外键:借书证号,参照 读者(借书证号) 图书内部编码,参照 上架图书(内部编码) 请基于上述数据库模式,用SQL实现以下操作: 1、创建基本表“采购图书”,要求包含主、外键定义,以及其它相关的完整性约束。 2、在已成功创建的“读者”基本表上,添加对属性“注销标记”的约束,要求该属性的值只能为“是”或“否”。 3、列出借书证编号为”S20170204”的读者借阅过的所有书籍的名称。 4、读者未归还的图书超过一定数量将不能再办理图书借阅,实现查询读者未归还的图书数量。 5、查询已采购图书中尚未上架的图书ISBN和书名,以便于指导工作人员及时上架图书(要求:不要使用集合查询实现)。 6、列出所有的上架图书的ISBN号和总被借阅次数(提示:考虑外连接)。 7、计算借书次数最多的读者姓名和身份证号(要求:先创建读者借阅次数视图,再在视图上查询)。 8、借书证编号为”S20170204”的读者曾借阅过一本《数据库原理与应用》,今日前来归还,经扫描该本书的内部编码是“N20160347”,请更新相关基本表中的数据。 9、增加一条记录到读者表中,借书证编号为“S20190141”,姓名为“张赫”,其他信息未知。 10、从基本表“上架图书”中删除那些已上架两年但从未被借过的图书。 11、图书的借阅情况是图书流通的历史记录,图书管理员只能添加记录和修改归还时间,而没有其他权限,请实现对图书管理员的授权操作。 12、读者经常按书名进行上架图书的查询,涉及到基本表“上架图书”和“采购图书”的连接,为加快查询速度,请在“上架图书”表的属性“ISBN”创建非聚集索引。