关于语句CREATE TABLE R(no int,sum int CHECK(sum>0))和CREATE TABLE R(no int,sum int,CHECK(sum>0)) 以下说法不正确的是() A.两条语句都是合法的 B.前者定义了属性上的约束条件,后者定义了元组上的约束条件 C.两条语句的约束效果不一样 D.当sum属性改变时检CHECK查,上述两种约束都要被检查
sql
CREATE TABLE R(no int, sum int CHECK(sum > 0))
这条语句创建了一个表 R,其中 sum 属性有一个检查约束(CHECK),规定 sum 的值必须大于 0。一般来说,此 CHECK 约束是针对属性的。
R
sum
第二条语句:
CREATE TABLE R(no int, sum int, CHECK(sum > 0))
这条语句同样创建表 R,并设定一个 CHECK 约束。一般情况下,语法上并没有指明 CHECK 是针对于哪个属性。根据 SQL 标准,当 CHECK 约束写在列定义外面时,通常是指向元组级约束(即用于整行约束)。
以下是对各选项的分析:
A. 两条语句都是合法的
B. 前者定义了属性上的约束条件,后者定义了元组上的约束条件
CHECK(sum > 0)
C. 两条语句的约束效果不一样
D. 当 sum 属性改变时检查 CHECK,上述两种约束都要被检查
这题的两个语句是一样的
C
用户登录可进行刷题及查看答案
登录后提交答案