100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > MYSQL 索引 主键 外键

MYSQL 索引 主键 外键

时间:2022-10-03 17:58:16

相关推荐

MYSQL 索引 主键 外键

MYSQL 索引 主键 外键

解释:

索引可分为普通索引和唯一索引,主要用于提高访问速度,普通索引允许索引列内容重复,唯一索引不允许重复;

主键具有唯一索引的特性,用于唯一标识记录,一个表只能一个主键;

外键具有普通索引的的特性,是关联表的主键,用于多表级联,维护多表数据一致性。

注意:外键必须是一个索引,数据库引擎必须是InnoDB;

索引:

创建:①直接创建:例如:create [unique]index index_nameon table_name(column_name,... [desc/asc]);②修改表结构添加:例如:alter table table_nameadd [unique]index index_name (column_name,...[desc/asc]);删除:①直接删除:例如:drop index index_name on table_name;②修改表结构删除:例如:alter table table_namedrop index index_name;

主键:

创建:① 创建表的时候创建:例如:create table table_name(id int not null auto_increment,name varchar(20)not null,primary key(id));或:create table table_name(id int not null auto_increment primary key,name varchar(20)not null,);② 修改表结构添加:例如:alter table table_name add primary key (id);删除:① 修改表结构删除:例如:alter table table_name drop primary key;

外键:

创建:①创建表的时候创建:例如:create table table_name(id int not null auto_increment,foreign_id varchar(20)not null,primary key(id),constraint constraint_name foreign key (column_name)references relation_table_name(relation_table_column_name)on [delete|update][no action|cascade|set null|restrict|set default]);或:create table table_name(id int not null auto_increment,foreign_id varchar(20)not null,primary key(id),foreign key (column_name)references relation_table_name(relation_table_column_name)on [delete|update][no action|cascade|set null|restrict|set default]);②修改表结构添加:例如:alter table table_nameadd foreign key (column_name)references relation_table_name(relation_table_column_name)on[delete|update][no action|cascade|set null|restrict|set default];或:alter table table_nameadd constraint constraint_nameforeign key (column_name)references relation_table_name(relation_table_column_name);删除:①修改表结构删除:例如:alter table table_namedrop foreign key constraint_name;

delimiter:分隔符

触发器trigger:

说明:①tri是触发器名字②ball是表名③score是ball表中的字段④”-“ 是使用的limiter 定义的分隔符,为了begin ···end 语句的使用 ⑤此触发器的目的是当更新ball表中score列数据,如果新值<旧值,拒绝更新;

delimiter -

create trigger tri after update on ball

for each row

begin

if old.score> new.score

then

update ball set score=old.score where id= old.id;

end if;

end-

delimiter ;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。