表的完整性
1)实体完整性 每条记录有一个唯一的标识符,通常用无任何含义的字段表示
在设计一张表时,一般会采用一个没有任何含义的字段来标识一个记录。
2)参照完整性 一张表的某个字段引用另一张表的某个字段值(外键) 主要针对多张表
3)域完整性 域即单元数据,域中的数值必须符合一定的规则。
在设计一张表时,一般会采用一个没有任何含义的字段来标识一个记录。
2)参照完整性 一张表的某个字段引用另一张表的某个字段值(外键) 主要针对多张表
3)域完整性 域即单元数据,域中的数值必须符合一定的规则。
键的概念
1) 单一主键 只有唯一字段
2)组合主键 由多个字段组合起来,形成只一字段
3)外键 针对多张表之间的关联。
2)组合主键 由多个字段组合起来,形成只一字段
3)外键 针对多张表之间的关联。
l约束
数据类型告诉我们需要存储什么样子的数据,而约束告诉我们这些数据具体需要满足的规则
。如:age int, 我们可以存储负整数,
price float,我们可以存储负小数,
但是负数是不满足实际规则的,因此我们需要约束
常见约束
检查约束
(MySQL
目前不支持
)
非空约束not null
唯一约束unique
主键约束
外键约束
主键约束的特点
在mysql中,通过 primary key 来定义主键主键非空,且值唯一
在mysql中,删除主键是alert table 表名 drop primary key(一个表中只有一个主键)
删除主键后不能插入null值,但可插入重复值。
在mysql中可以对主键自动从1开始增加,以后就无需对id主键显示设置值,由系统自动产生。
id int(5) primary key auto_increment
如果显示指定id值,则系统不会取默认值,用显示的id去覆盖系统默认值。
主键体现实体完整性,通常用一个没有任何业务含义的单独字段表示
唯一约束的特点
name varchar(20) unique值不能重复
Null可以有多次,但"Null"中只能有一
非空约束
not null值不能为空。
外键约束的特点
constraint 外键名 foreign key(外键字段) references 主表(映射的键字段)
例
create table P(
id int primary key,
name varchar(20)
);
create table C(
name varchar(20),
pid int ,
constraint xxx foreign key(pid) references P(id)
)
或者直接在字段后写 references 主表(字段)
create table P(
id int primary key,
name varchar(20)
);
create table C(
name varchar(20),
pid int references P(id)
);
如果存在主外键关联,那么在删除时,要先删除有外键的表,在删除另外一张表
// 增加外键
alter table card add constraint pid_fk(外键名)
alter table card add constraint pid_fk(外键名)
foreign key(pid) references person(id);
//删除外键
//删除外键
alter table 表名 drop foreign key 外键名.