问题
多项选择题
在以下有关约束的陈述中,哪两个是正确的
A.约束仅仅是强加在表一级的规则
B.约束用来防止存在依赖数据的表被删除掉
C.在创建约束时,必须为每个约束提供一个名字
D.约束的名字不需要遵守标准的对象命名规则
E.约束既可以在创建表的同时创建,也可以在创建表之后创建
答案
参考答案:B,E
解析: 这一题是测试对Oracle约束的理解和熟悉程度。根据有关Oracle约束的介绍,可知Oracle的约束既可以定义在列一级,也可以定义在表一级,所以可以断定选项A是错误的。
根据有关Oracle约束的介绍,可知如果在定义约束时没有给出约束的名字,Oracle系统将为该约束自动生成一个名字,其格式为SYS_Cn,所以可以断定选项C是错误的。
根据有关外键约束的介绍,可知外键约束是用来维护从表和主表之间的引用完整性的,再参阅有关外键约束对DML语句和DDL语句影响的解释,所以可以断定选项B是正确的。
根据有关Oracle约束的介绍,可以在创建表时在CREATE TABLE语句中定义约束,也可以在已存在的表上利用ALTER TABLE语句来定义约束,所以可以断定选项E是正确的。实际上,到此为止已经获得了该题的所有正确答案。
根据有关唯一约束和约束命名的介绍,可知Oracle推荐的约束命名法由三部分组成,按顺序分别是表名、列名和约束的类型,而它们之间由下划线(_)连接,因此可以确定选项D是错误的。