restrict?restriction
restrict和constrain区别
前者是动词后者是名词
restrict的中文意思
restrict和cascade都是在外码定义时指定的关键字。
外码所指定的字段取值受限制,可以取两种值:
所参照主码中出现过的值;
可以取空值。
外码所指定的字段中数据的增删改是受到外码约束的限制的,在数据增删改时会检查是否满足外码约束条件,当不满足外码的条件时,所做的处理与定义外码时指定的restrict关键字或者cascade关键字有关。
下面以一个具体例子说明:
设有两张表:student和class,表定义语句为:
createtableclass(cnointprimarykey,cnamevarchar(20))
createtablestudent(snointprimarykey,snamevarchar(10),cnoint,foreignkey(cno)referencesclass(cno)ondeleterestrict)
第一张表class中,cno是主码,第二张表student中,sno是主码,cno是外码,外码的取值必须在class的主码cno中出现过,或者取空值。注意,在外码定义时指定了restrict关键字,此时,如果从class表中删除一条数据(即删除一个班级),student表中恰好有该班级的学生,则会报错,不允许删除。
如果在student表的外码定义时指定的是cascade,即
createtablestudent(snointprimarykey,snamevarchar(10),cnoint,foreignkey(cno)referencesclass(cno)ondeletecascade)
则表示级联删除,删除class表中的一条数据时,会把student表中对应的数据一起删除掉。此外,在外码定义时还可以指定ondeletesetnull,表示删除class表中的一条数据时,如果student表中有对应的数据,则把这些对应的数据的cno设置为空值NULL。
limit confine restrict区别
这三个单词都有限制、限定的意思,但用法略有不同。
Limit(限制)表示一种可以被量化的限度或极限,一般用来防止超过设定的数值或范围,也可以用来阐述某种特定的限制规则。例如,“每天只能吃1000卡路里以内的食物”。
Confine(限制、限制在某处)表示将人或事物固定在某个范围内,或者将人或事物限制在某处,有包含、集合的意思。例如,“这个学生被限制在校内一周”。
Restrict(限制、约束)用来表示限制或约束某种行为或活动,一般有规定或条款来解释限制的具体内容。例如,“这个条款限制了员工在工作时间内使用社交媒体”。
总的来说,三个词语都表示限制的意思,但用法略有区别。Limit侧重于表达数值、限度,而Confine侧重于固定在某个范围中,而Restrict则强调限制的行为和规定。





