立足娱乐圈·争做八卦帝!

无限魅力物联网

CONSTRAINT(编程命令)

来源:未知 作者:佚名 发布时间:2023-08-14 21:37:32

CONSTRAINT子句是指限制和索引相似,虽然限制也能被用于建立和另一个表的关联。用ALTERTABLE和CREATETABLE语句中的CONSTRAINT子句来建立或删除条件.CONSTRAINT子句可分为两种类型:第一种是在单一字段上创建条件;第二种是在一个以上的字段上创建条件。

外文名

CONSTRAINT

子句指

限制和索引相似

类别

编程命令

范畴

计算机语言

说明

紧接在字段的数据类型规格之后,在ALTERTABLE或CREATETABLE语句的字段定义子句中,使用单一字段条件之语法。

在ALTERTABLE或CREATETABLE语句中,只要在字段定义子句外使用保留字CONSTRAINT,就应使用多字段约束的语法。[1]

使用CONSTRAINT,可以将字段设计为如下的条件类型之一:可以使用UNIQUE保留字将字段设计为唯一键。

这意味着在同一个表中没有两个记录的这个字段的值是相同的。可以强制任何字段或字段列表为唯一的。如果多重字段条件被设计成唯一键,在索引之中的所有字段的组合值必须也是唯一的,即使在这些字段之中有两个或两个以上的记录有相同的值。

可以用PRIMARYKEY保留字,将表中的字段或一组字段设计为主键。在主键之中所有的值必须是唯一的,且不可为Null,一个表只能有一个主键。注意在一个已经设有主键的表中,不能再设置PRIMARYKEY条件,否则会发生错误。

您可以使用FOREIGNKEY保留字将一个字段设置为外部键。如果外部表的主键是由一个以上的字段所组成,则必须使用多重字段条件定义,列出全部的引用字段、外部表名、以及以列出引用字段相同的顺序在外部表中列出引用字段的名称。若所引用的字段是外部表的主键,则无须指定所引用的字段。

根据默认,数据库引擎在认为外部表的主键是所引用字段的情况下执行操作。外部键条件限定具体的活动在一个相应的主键值被改变时来执行:你可以指定外部表上执行的活动,此活动基于一个在定义了CONSTRAINT的表中主键上执行的相应的活动。

例如,考虑以下对“客户”表的定义CREATETABLECustomers(CustIdINTEGERPRIMARYKEY,CLstNmNCHARVARYING(50))考虑表的以下定义,定义外部键与Customers表的主键关系的顺序为

CREATETABLEOrders(OrderIdINTEGERPRIMARYKEY,CustIdINTEGER,OrderNotesNCHARVARYING(255),CONSTRAINTFKOrdersCustIdFOREIGNKEY(CustId)REFERENCESCustomersONUPDATECASCADEONDELETECASCADEONUPDATECASCADE

ONDELETECASCADE子句都定义于外部键上。ONUPDATECASCADE子句的含义是:如果用户的标识符(CustId)在用户表中更新,此更新将通过顺序表级联。各个含有相应用户标识符值的顺序随着新值自动更新。ONDELETECASCADE子句的含义是:如果一个用户被从用户表中删除,顺序表中所有包含同样用户标识符值的位序也会被删除。考虑到表中下列不同的定义,用SETNULL活动代替CASCADE活动的顺序为

CREATETABLEOrders(OrderIdINTEGERPRIMARYKEY,CustIdINTEGER,OrderNotesNCHARVARYING(255),CONSTRAINTFKOrdersCustIdFOREIGNKEY(CustId)REFERENCESCustomersONUPDATESETNULLONDELETESETNULL

ONUPDATESETNULL子句的含义是:如果用户的标识符(CustId)在用户表中更新,顺序表中相应的外部键值将会被自动设为NULL。相似地,ONDELETESETNULL子句的含义是:如果一个用户被从用户表中删除,顺序表中所有相应的外部键将会被自动设为NULL。

为阻止外部键索引的自动生成,可使用变址器NOINDEX。这一形式的外部键定义仅用于经常要复制形成索引值的情况。在外部键索引中的数值经常被复制的场合,使用索引不如直接进行表搜索有效。对这种索引和表中插入和删除的行列的维护会降低性能,没有任何好处。

约束类型

一共有几种约束类型:

主键约束

要对一个列加主键约束的话,这列就必须要满足的条件就是分空

因为主键约束:就是对一个列进行了约束,约束为(非空、不重复)

以下是代码要对一个列加主键,列名为id,表名为emp

格式为:

altertable表格名称addconstraint约束名称增加的约束类型(列名)

例子:

altertableempaddconstraintpppprimarykey(id)

check约束

就是给一列的数据进行了限制

比方说,年龄列的数据都要大于20的

表名(emp)列名(age)

格式:

altertable表名称addconstraint约束名称增加的约束类型(列名)

例子:

altertableempaddconstraintxxxcheck(age>20)

unique约束

这样的约束就是给列的数据追加的不重复的约束类型

格式:

altertable表名addconstraint约束名称约束类型(列名)

比方说可以给ename列加个unique,让ename列的数据不重复

例子:

altertableempaddconstraintqweunique(ename)

默认约束

意思很简单就是让此列的数据默认为一定的数据

格式:

altertable表名称addconstraint约束名称约束类型默认值)for列名

比方说:emp表中的gongzi列默认为10000

altertableempaddconstraintjfsddefault10000forgongzi

外键约束

这个有点难理解了,外键其实就是引用。

因为主键实现了实体的完整性,外键实现了引用的完整性,应用完整性规定,所引用的数据必须存在!

其实就是个引用,

比方说一个表名称叫dept里面有2列数据一列是ID一列是ENAME

id:表示产品的编号

ename:表示产品的名称

另外一个表格名称是emp里面有2列数据,一列是ID一列是DID

id:表示用户号

did:表示购买的产品号

要让emp表中的did列去引用dept表中的id可以用下面的方法

格式:

altertable表名addconstraint约束名称约束类型(列名)references被引用的表名称(列名)

例子:

altertableempaddconstraintjfkdsjforeignkey(did)referencesdept(id)


本文标题:CONSTRAINT(编程命令) - 娱乐圈事
本文地址:http://www.o-kml.com//yule/50889.html

    责任编辑:
    章贺个人资料

    2022-12-08

    中 文 名:章贺英 文 名:曾 用 名:民  族:汉族国家地区:中国内地出生日期:1979-11-8出 生 地:上海身  高:181CM体  重:70KG血  型:星  座: ... [详细]

    女大学生首次相亲险遭强奸  身体多处受伤住院男方拒不承认

    2023-12-12

    女大学生首次相亲险遭强奸 身体多处受伤住院男方拒不承认 ... [详细]

    日本女星[松岛枫/松岛かえで]全集资料

    2022-10-10

    松岛枫(1982年11月17日—)日本福冈县人,是AV电影知名女优,被称为“女优界的女神”。2002年出道,2007年宣布引退。2008年12月24日到27日,松岛枫及新生代女优樱井莉亚曾在台湾举办夜店同乐派对和艺术摄影会。中文名:松岛枫外文名:松岛かえで别名:KaedeMatsushima国籍:日本出生地:福冈县出生日期:1982年11月17日职业:AV女优主要成就:av电影人气女优代表作品:恶... ... [详细]

    刘思琦(《2017变形计》第二期城市主人公)

    2023-02-02

    刘思琦,《2017变形计》第二期城市主人公。家境富裕,颜值颇高,变形前被宠溺到毫无自理能力。 ... [详细]

    10月6日是什么星座:天秤座

    2022-12-23

    10月6日是什么星座:天秤座 天秤座日期:阳历9月23日-10月22日 10月6日出生的人总以为光靠他们的训诫或行动,就能够&ldq ... [详细]

    图酷

    图说天下

    资讯排行

    首页 - 娱乐圈事 - 体育圈事 - 两性情感 - 星座命运 - 奇闻怪事 - 历史故事 - 科技资讯 - 图说天下 - 知识百科 - 图酷 - 娱乐八卦
    电脑版 | 移动端
    Copyright © 2002-2021 无限魅力物联网 版权所有
    删帖请联系邮箱:meiyixinxi2024@163.com