table 基础属性

唯一值约束(unique):

  一张表 可以有多个列 添加唯一值约束,只能允许一列为空值。

复合唯一性约束unique(sid, kid):

  创建 constraint uc_sk unique(sid, kid)

  删除 alter table t1 drop index uc_sk 

 

 

主键约束(primary key):

  一张表只能有一列设置为主键,主键唯一 且不能为空,innoDB引擎主键即索引。(唯一值约束 + 非空约束)

  当选用innodb存储引擎时,会在主键设置索引,记录存放顺序--索引。

自增主键(auto_increment not null primary key):

  添加新纪录时,主键默认为上条记录的 主键值加一。

复合主键 primary key(sid, kid):

  

check约束  适用于微软的(sql Server)

 

外键约束:

  被引用表的列 必须是 主键、唯一的、不为空,且表的存储引擎 为 innodb

  参照动作:cascade(相应操作),restrict(拒绝操作),set null(设为空),no action(不修改),set default(默认值)。

 从表语句:

create table score
(
sid int not null,
mark int,
constraint score_fk foreign key(sid)
references student(sid) on delete cascade on update cascade
)engine=innodb

  指定参照动作,主表记录做修改、删除,从表引用的列会做相应修改、或不修改、拒绝修改 或 设为默认值

  注意:引用表的列必须为主键,且在删除引用表时 必须删除引用从属关系 或 删除当前表。

 

创建表 if not exists

CREATE TABLE IF NOT EXISTS  `score`(
    sid int
)engine=innodb

 

posted @ 2019-05-15 00:33  scmath  阅读(238)  评论(0编辑  收藏  举报