-
2019-08-24 21:10:03
1.2 域完整性约束
域完整性约束的作用:限制此单元格的数据正确,不对其它单元格起作用,域代表当前单元格
域完整性约束:数据类型、非空约束(not null)、默认值约束(default)
check约束(mysql不支持)check(sex='男'or sex='女')
1.2.1 数据类型
数值类型
类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值 INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值 BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值 FLOAT 4 字节 查看帮助文档 查看帮助文档 单精度浮点数值 DOUBLE 8 字节 查看帮助文档 查看帮助文档 双精度浮点数值 DOUBLE(M,D) 8个字节,M表示长度,D表示小数位数 同上,受M和D的约束 DUBLE(5,2) -999.99-999.99 同上,受M和D的约束 双精度浮点数值 DECIMAL(M,D) 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值,M最大值为65 依赖于M和D的值,M最大值为65 小数值 日期类型:
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性
类型 大小(字节) 范围 格式 用途 DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值 TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间 YEAR 1 1901/2155 YYYY 年份值 DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值 TIMESTAMP 4 1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 YYYYMMDD HHMMSS 混合日期和时间值,时间戳 字符串类型:
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET
类型 大小 用途 CHAR 0-255字符 定长字符串 char(10) 10个字符 VARCHAR 0-65535 字节 变长字符串 varchar(10) 10个字符 TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串 TINYTEXT 0-255字节 短文本字符串 BLOB(binary large object) 0-65 535字节 二进制形式的长文本数据 TEXT 0-65 535字节 长文本数据 MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据 MEDIUMTEXT 0-16 777 215字节 中等长度文本数据 LONGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据 LONGTEXT 0-4 294 967 295字节 极大文本数据 CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它们只是可容纳值的最大长度不同。
有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
1.2.2 非空约束
not null
CREATE TABLE student( Id int primary key, Name varchar(50) not null, Sex varchar(10) ); INSERT INTO student values(1,’tom’,null);
1.2.3 默认值约束
default
CREATE TABLE student( Id int primary key, Name varchar(50) not null, Sex varchar(10) default '男' ); insert intostudent1 values(1,'tom','女'); insert intostudent1 values(2,'jerry',default);
更多相关内容 -
使用CHECK为SQL Server执行域完整性
2020-03-03 23:50:07你可能认为简单的数据错误并不特别重要,但即使一个小错误也可能造成许多破坏。约束任何域,或栏可以接受的数据,可以帮助保证应用程序保存了适当的...在本文中,我们将使用CHECK约束来执行业务规则,保护数据完整性。 -
数据的完整性(实体完整性、域完整性、引用完整性)
2021-08-23 02:37:15实体完整性,即行完整性 阈完整性,即列完整性 引用完整性(关联表完整性); 主约束键: primary key 唯一约束: unique [key] 非空约束: not null 默认约束: default 自动增长: auto_increment 外键约束: ...数据的完整性(实体完整性、域完整性、引用完整性)
1 数据库的完整
-
用来保证存入数据库中的数据是有效的,即有效性和准确性;
-
确保数据的完整性 ≠ 给数据添加约束
-
完整性的分类:
- 实体完整性,即行完整性
- 阈完整性,即列完整性
- 引用完整性(关联表完整性);
- 主约束键:
primary key
- 唯一约束:
unique [key]
- 非空约束:
not null
- 默认约束:
default
- 自动增长:
auto_increment
- 外键约束:
foreign key
- 主约束键:
-
各类约束最好在创建表的时候设置,多个约束条件应用空格隔开
-- eg create table student( stuNum int primary key auto_increment; passwd varchar[12] not null default '123456'; stuName char[30] not null; id int not null; phoneNum varchar(20) not null; address varchar(30) not null default '学生宿舍'; birthday datetime; emali varchar(30) );
2 实体完整性
- 实体:表中的唯一一行,代表一个实体,
- 实体完整性的作用是标识每一行数据都不重复
- 约束类型主要包括:
主键约束:primary key
唯一约束:unique
自动增重列:auto_increment
2.1 主键约束(primary key)
-
每个表中要有一个主键
-
主键的特点:数据唯一(即每行的值都不一样),且不能为null
-
添加方式:
第一种添加方式:在创建表的时候直接添加在属性类型之后添加primary key-- 学生的id为主键约束 create table student(id int primary key, name varchar(10))
第二种方式:先写完所有属性,然后添加一个primary key,这种方式可以创建联合主键
create table student(id int, name varchar(10), primary key(id) ); create table student(classId int, id int, name varchar(10), primary key(classId, id) );
第三种方式:先正常创建表,然后通过 alter 添加一个primary key
create table student( id int, name varchar(10) ); alter table student add primary key(id);
2.2 唯一约束(unique)
唯一约束的特点是数据值唯一,与主键约束不同的是,唯一约束可以是null;
create table student(Id int primary key, name varchar(5) unique);
2.3 自动增长序列(auto_increment)
-
每新建一个实体,会自动增加1
-
该属性类型只能是整数类型
create table student(id int primary key auto_increment, name varchar(5) ); -- insert into student(name) values('老大'); -- id为1,自动生成 -- insert into student(name) values('老二'); -- id为2,无需手动插入,自动生成
3 域完整性
- 作用:限制此单元格是符合要求的数据
- 域完整性约束:
- 数据类型
- 非空约束 (not null)
- 默认值约束(default)
- check约束
3.1 数据类型约束
-
数值类型
使用方法:直接在属性后面加类型名称即可; -
日期类型
表示时间值的日期和时间类型为DATE、DATETIME、TIMESTAMP、TIME和YEAR。 -
字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET -
二进制类型
3.2 非空约束
-- 关键字 not null -- 在创建实体时便不能将name值置空,必须给其一个值 create table student(name varchar(5) not null);
3.3 默认值约束
-- 关键字 default -- 在创建实体类时,若没有明确给sex赋值,那么会自动添加默认值'女' create table student(sex varchar(5) default '女');
4 引用完整性
- 外键列:是用来保存别的表中主键值列
- 外键约束:
foreign key
- 作用:保证表与表之间引用的完整性,被定义为外键的列属性用于引用另一个表里的主键列属性
-- 先创建一张学生的信息表 create table student( id integer(10) primary key, -- 学号 age int, -- 年龄 sex varchar(2), -- 性别:男,女,人妖,太监 address varchar(50), -- 地址 email varchar(20) -- 邮箱 ); -- 学生各科的成绩表 create scores( id integer(10), java int, cplusplus int, c int, mysql int, -- 添加外键约束, 将scores.id列属性 关联到student.id列属性 foreign key(id) references student(id) ); -- 可以用 constraint 约束名称 给外键约束取名 constraint abc foreign key(id) references student(id); -- 或者先创建学生的各科成绩,然后添加一个外键列属性 alter table scores add foreign key(id) references student(id); -- 或者 alter table scores add constraint abc foreign key(id) references student(id); -- 或者先创建学生的各科成绩,然后添加一个外键列属性 alter table scores add foreign key(id) references student(id); -- 或者 alter table scores add constraint abc foreign key(id) references student(id);
5 如何删除约束
-
-
MySQL数据库——数据完整性(实体完整性、域完整性、参照完整性)
2021-03-15 16:55:21数据完整性分为实体完整性、域完整性、参照完整性。实体(行)完整性实体完整性中的实体指的是表中的行,因为一行记录对应一个实体。实体完整性规定表的一行在表中是唯一的实体,不能出现重复。实体完整性通过表的主键来...数据完整性的概念
数据完整性是为了保证插入到数据库中的数据是正确的,防止用户可能的错误输入。
数据完整性分为实体完整性、域完整性、参照完整性。
实体(行)完整性
实体完整性中的实体指的是表中的行,因为一行记录对应一个实体。
实体完整性规定表的一行在表中是唯一的实体,不能出现重复。
实体完整性通过表的主键来实现。
主键关键字: primary key
主键特点: 不能为null,并且唯一。
主键分类:
逻辑主键:例如ID,不代表实际的业务意义,只是用来唯一标识一条记录(推荐)
业务主键:例如username,参与实际的业务逻辑。
主键使用方式:
方式一:
Create table t1(
id int primary key,
name varchar(100)
);
插入数据:
insert into t1 values(1,’zs’);
insert into t1 values(2,’ls’);
主键自动增长:
关键字: auto_increment
下面是主键自动增长的例子
create table t4(
id int primary key auto_increment,
name varchar(100)
);
插入数据:
insert into t4(name) values(‘zs’);
insert into t4 values(null,’ls’);
域(列)完整性
域(列)完整性指数据库表的列(即字段)必须符合某种特定的数据类型或约束
非空约束:not null
唯一约束: unique
create table t5(
username varchar(100) not null unique,
gender varchar(100) not null,
phonenum varchar(100) unique
);
username 唯一 ,如果有重复就会出现错误:
[Err] 1062 - Duplicate entry 'ls' for key 'username'
如果第二次插入代码insert into student3(username,gender,phone) VALUES('ls','男','112');
就会出现错误:[Err] 1062 -关键字“用户名”的重复条目“ls”
gender 不能为 NULL,如果不输入就会出现错误:
Field 'gender' doesn't have a default value
执行下面这条代码insert into student3(username,gender,phone) values('ll','男','113');
就会出现错误Duplicate entry 'll' for key 'username'
关键字“用户名”的重复条目“ll”
参照完整性**
参照完整性指的就是多表之间的设计,主要使用外键约束。
多表设计: 一对多、多对多、一对一设计
一对多
下面举例说明:
1.客户和订单的关系就是一对多,一个客户可以有多张订单,一张订单属于一个客户;
创建客户表:
create table customers(
id int,
name varchar(100),
address varchar(255),
primary key(id)
);
创建订单表:
create table orders(
order_num int primary key,
price float(8,2),
status int,
customer_id int,
constainct customer_id_fk foreign key(customer_id) references customers(id)
);
外键约束: constraint customer_id_fk foreign key(customer_id) references customers(id);
注: constraint: 约束的意思。foreign key: 外键。references: 参照
创建一个名叫customer_id_fk的外键约束,其中外键指的是customer_id,并且参照的是 customers表中的id列。
图形界面操作的过程是:
子表的删除、更新策略
子表的删除更新策略一共有四种:
1. CASCADE 级联策略。
使用此种策略时主表的记录被删除或者主键字段被修改时会同步删除或修改子表
2. NO ACTION 无动作策略。
使用此种策略时要删除主表必须先删除子表,要删除主表的记录必须先删除子表关联的记录,不能更新主表主键字段的值。
3. RSTRICT 主表约束策略。
此种策略对主表的约束跟 NO ACTION 一样
4. SET NO 置空策略。
使用此种策略时,如果主表被删除或者主键被更改,则将子表中的外键设置为NULL。需要注意的是,如果子表的外键是主键或者是设置为NOT NULL的,则主表的删除和主键的更改跟 NO ACTION 一样。
多对多
老师和学生是多对多关系, 一个老师对应多个学生,一个学生被多个老师教
注意:
需要创建第三张表,并且公共的字段,可以放入到第三张表格中。
设置外键对应其他表格中的主键
创建老师表:
Create table teachers(
id int,
name varchar(100)
salary float(8,2),
primary key(id)
);
创建学生表:
Create table students(
id int,
name varchar(100),
grade varchar(100),
primary key(id)
);
第三张表格:
Create table teacher_student(
t_id int,
s_id int,
primary key(t_id,s_id)
CONSTRAINT teacher_id_fk FOREIGN KEY(t_id) REFERENCES teachers(id),
CONSTRAINT student_id_fk FOREIGN KEY(s_id) REFERENCES students(id)
);
一对一
按照外键关联
1.在IdCard表中的外键添加唯一约束
按照主键关联,对主键添加外键约束
实际开发中直接设计一张表格就可以了。
注意:
一般情况,设计一张表格即可;
设计成两张表格:
第二张表格中创建一个字段为外键(设置成唯一 unique)对应 第一张表格中的主键;
直接使用第二张表格中的主键为外键,对应第一张表格中的主键。
-
数据库中的数据完整性(实体完整性、域完整性、引用完整性)
2019-05-06 17:56:51域完整性: 引用完整性: 4.1 实体完整性 实体:即表中的一行(一条记录)代表一个实体(entity) 实体完整性的作用:标识每一行数据不重复。 约束类型: 主键约束(primary key) 唯一约束(unique) 自动....作用:保证用户输入的数据保存到数据库中是正确的。
确保数据的完整性 = 在创建表时给表中添加约束
完整性的分类:
-
实体完整性:
-
域完整性:
-
引用完整性:
4.1 实体完整性
实体:即表中的一行(一条记录)代表一个实体(entity)
实体完整性的作用:标识每一行数据不重复。
约束类型:
主键约束(primary key)
唯一约束(unique)
自动增长列(auto_increment)
4.1.1 主键约束(primary key)
注:每个表中要有一个主键。
特点:数据唯一,且不能为null
示例:
第一种添加方式:
CREATE TABLE student( id int primary key, name varchar(50) );
第二种添加方式:此种方式优势在于,可以创建联合主键
CREATE TABLE student( id int, name varchar(50), primary key(id) );
CREATE TABLE student( classid int, stuid int, name varchar(50), primary key(classid,stuid) );
第三种添加方式:
CREATE TABLE student( id int, name varchar(50) ); ALTER TABLE student ADD PRIMARY KEY (id);
4.1.2 唯一约束(unique)
特点:数据不能重复。
CREATE TABLE student( Id int primary key, Name varchar(50) unique );
4.1.3 自动增长列(auto_increment)
sqlserver数据库 (identity) oracle数据库( sequence)
给主键添加自动增长的数值,列只能是整数类型
CREATE TABLE student( Id int primary key auto_increment, Name varchar(50) ); INSERT INTO student(name) values(‘tom’);
4.2 域完整性
域完整性的作用:限制此单元格的数据正确,不对照此列的其它单元格比较
域代表当前单元格
域完整性约束:数据类型 非空约束(not null) 默认值约束(default)
check约束(mysql不支持)check(sex='男' or sex='女')
4.2.1 数据类型:(数值类型、日期类型、字符串类型)
4.2.2 非空约束:not null
CREATE TABLE student( Id int pirmary key, Name varchar(50) not null, Sex varchar(10) ); INSERT INTO student values(1,’tom’,null);
4.2.3 默认值约束 default
CREATE TABLE student( Id int pirmary key, Name varchar(50) not null, Sex varchar(10) default ‘男’ ); insert intostudent1 values(1,'tom','女'); insert intostudent1 values(2,'jerry',default);
4.3 引用完整性(参照完整性)
外键约束:FOREIGN KEY
示例:
CREATE TABLE student( sid int pirmary key, name varchar(50) not null, sex varchar(10) default ‘男’ );
create table score( id int, score int, sid int , -- 外键列的数据类型一定要与主键的类型一致 CONSTRAINT fk_score_sid foreign key(sid) references student(id) );
第二种添加外键方式。
ALTER TABLEscore1 ADD CONSTRAINT fk_stu_score FOREIGN KEY(sid) REFERENCES stu(id);
第二种解释,数据完整性分为以下3类。
(1)域完整性:是指一个列的输入有效性,是否允许为空值。强制域完整性的方法有:限制类型(通过设定列的数据类型)、格式(通过CHECK约束和规则)或可能值的范围(通过FOREIGN KEY约束、CHECK约束、DEFAULT定义、NOT NULL定义和规则)。如:学生的考试成绩必须在0~100之间,性别只能是“男”或“女”。
(2)实体完整性:是指保证表中所有的行唯一。实体完整性要求表中的所有行都有一个唯一标识符。这个唯一标识符可能是一列,也可能是几列的组合,称为主键。也就是说,表中的主键在所有行上必须取唯一值。强制实体完整性的方法有:索引、UNIQUE约束、PRIMARY KEY约束或IDENTITY属性。如:student表中sno(学号)的取值必须唯一,它唯一标识了相应记录所代表的学生,学号重复是非法的。学生的姓名不能作为主键,因为完全可能存在两个学生同名同姓的情况。
(3)参照完整性:是指保证主关键字(被引用表)和外部关键字(引用表)之间的参照关系。它涉及两个或两个以上表数据的一致性维护。外键值将引用表中包含此外键的记录和被引用表中主键与外键相匹配的记录关联起来。在输入、更改或删除记录时,参照完整性保持表之间已定义的关系,确保键值在所有表中一致。这样的一致性要求确保不会引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。参照完整性是基于外键与主键之间的关系。例如学生学习课程的课程号必须是有效的课程号,score表(成绩表)的外键cno(课程号)将参考course表(课程表)中主键cno(课程号)以实现数据完整性。
域完整性、实体完整性及参照完整性分别在列、行、表上实施。数据完整性任何时候都可以实施,但对已有数据的表实施数据完整性时,系统要先检查表中的数据是否满足所实施的完整性,只有表中的数据满足了所实施的完整性,数据完整性才能实施成功。 -
-
域完整性约束
2019-10-24 10:23:43域完整性约束的作用:限制此单元格的数据正确,不对其它单元格起作用,域代表当前单元格 域完整性约束:数据类型、非空约束(not null)、默认值约束(default) check约束(mysql不支持)check(sex='男’or sex=‘女... -
SQL Server--实体完整性-域完整性-引用完整性-自定义完整性
2019-10-25 21:32:48我们在学习数据库的过程中,经常会听到两个概念:数据冗余和数据完整性。数据冗余是指数据库中存在一些重复的数据,数据完整性是指数据库中的数据能够正确反应实际情况,我们说,为了性能着想,数据库中允许有一些... -
T-SQL 学习之路之数据库完整性之域完整性
2015-10-22 19:46:16数据库完整性是指对数据库的一致性和准确性强制数据完整性可靠性保证 -
数据库笔记之域完整性
2018-04-04 21:23:53域完整性的作用:限制此单元格的数据正确,不对照此列的其它单元格比较域代表当前单元格域完整性约束:数据类型,非空约束,默认约束值,check约束1.数据类型:数值类型,日期类型,字符串类型2.非空约束:not null... -
数据库(实验4 实体完整性 参照完整性 域完整性)
2019-10-31 16:29:12实体完整性约束 C表 /*1为现有表C的CN列创建UNIQUE约束*/ use testbase2 go alter table C add constraint unique_c unique(tn) go /*2删除表C中CN列的UNIQUE约束UNIQUE_C*/ use testbase2 ... -
mysql数据库 --数据完整性---实体完整性-域完整性-参照完整性
2019-04-09 22:54:30数据完整性分为实体完整性、域完整性、参照完整性。 2.1实体(行)完整性 (实体完整性中的实体指的是表中的行,因为一行记录对应一个实体) 实体完整性规定表的一行在表中是唯一的实体,不能出现重复。 实体完整性... -
数据的完整性(正确性和准确...域完整性-非空约束、默认值约束、检查约束。引用完整性-一对一、一对多、多对多
2021-03-15 10:04:05文章目录1 数据的完整性作用2 完整性的分类2.1 实体完整性2.1.1 主键约束 primary key2.1.2 唯一约束 unique2.1.3 自动增长列 auto_increment2.2 域完整性2.2.1 非空约束 not null2.2.2 默认值约束 default2.2.3 ... -
MySQL数据完整性(实体完整性、域完整性)
2019-04-09 19:47:45数据完整性: 为保证插入到数据库中的数据是正确的,防止用户输入错误的数据 分为实体完整性、 域完整性 、参照完整性 (下节再说) (1)实体完整性: 实体指的是表中的一行,一行记录对应一个实体 ,通过主键实现 ... -
MySQL数据的完整性 实体完整性(主键约束、唯一约束) 域完整性(非空、默认值约束) 参照完整性(外键约束)
2019-07-03 21:15:42*3、完成性分为:*1、实体完整性2、域完整性3、引用完整性 实体完整性 1、解释:表中的一个(一条记录)代表一个实体(entity) 2、作用:标识每一行数据不重复。行级约束。 3、约束类型:1、主键约束(primary key... -
7.数据完整性
2020-12-14 12:08:45–实体完整性、域完整性、引用完整性、用户完整性 –实体完整性 –实体完整性:要求表中每一条记录(每一行数据)是唯一的,即它必须至少拥有一个惟一标识以区分不同的数据行。 –实现方法有:主键约束PRIMARY KEY... -
MySQL的完整性约束之:域(字段)完整性
2016-05-28 10:30:57MySQL的完整性约束之:域(字段)完整性(列的类型,是否为空,是否唯一) -
关系数据库的完整性简述 关系数据库完整性规则
2020-12-31 09:06:02简述数据库的安全性和完整性有什么区别?数据库的完整性的全名,关系数据库的参照完整性(Referential Integrity),一般是用在表示多个表之间关系时用的,而且经常使用。数据库的安全性是指保护数据库以防止不合法的... -
关系模型中的三类完整性约束:实体完整性、参照完整性和用户定义完整性
2019-08-30 09:06:07数据完整性 要想了解这三类完整性约束首先要了解什么是数据完整性。数据完整性是指数据库中存储的数据是有意义的或正确的,和现实世界相符。关系模型中三类完整性约束: – 实体完整性(Entity Integrity) – 参照... -
数据库中的三种完整性:域、实体、参照完整性
2017-07-27 22:21:49域完整性是对数据表中字段属性的约束,通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系结构时所定义的字段的属性决定的。限制数据类型,缺省值,规则,约束,是否可以为空,域... -
关系型数据库中,关系的完整性有哪几种
2020-10-14 17:08:36关系模型中有3类完整性约束:域完整性、实体完整性、参照完整性。 1.域(列)完整性 也就是用户定义的表字段的完整性 通常指数据的有效性,它包括字段的值域、字段的类型及字段的有效规则等约束,它是由确定关系... -
mysql 完整性约束
2021-03-15 16:54:581、实体完整性实体完整性的实现:通过在表中设置主键约束、唯一约束或标识列来实现主键约束:应用于表列的一个约束用法:primary key(字段名)唯一约束:给定列的所有值必须唯一用法:(字段)unique2、域完整性域完整... -
关系数据库的三个完整性约束是什么?各是什么含义
2021-01-28 00:32:59展开全部可分为三种类型:与表有关的约束e68a84e8a2ad3231313335323631343130323136353331333436316265、域(Domain)约束、断言(Assertion)。1、与表有关的约束:是表中定义的一种约束。可在列定义时定义该约束,此时...