2.4MySQL索引管理

索引的类型

INDEX  普通索引

UNIQUE  唯一索引

FULLTEXT  全文索引

PRIMARY KEY  主键

FOREIGN KEY  外键

INDEX普通索引

一个表中可以有多个INDEX字段

字段的值允许有重复,且可以赋空值

把查询频率搞的字段设置为INDEX字段

INDEX字段的KEY标志为MUL

建表的时候指定索引字段

INDEX(字段1),INDEX(字段2),INDEX(字段3)...

create table db1.t4(

name char(10) not null,

age tinyint unsigend not null,

gender enum("man","woman","no") default "no",

index(name),

index(age)

);

在已有的表中设置index字段

create index 索引名 on 表名(字段名);

create index cc on t2(name);

删除索引信息

删除指定表的索引字段

drop index 索引名 on 表名;

当有索引名字的时候删除索引名字

没有索引名字删除索引字段名(默认索引名与字段名相同)

drop index cc on t2;

查看索引信息

查看表的索引信息

show index from 表名\G;

主键

注意事项

一个表中只能有一个主键

对应的字段值不允许有重复,且不允许赋null值

主键字段的KEY标志是PRI

primary key通常与AUTO_INCREMENT连用

当需要删除primary key时,须先删除AUTO_INCREMENT

经常把表中能够唯一标识记录的字段设置为主键字段,如ID字段

SQL AUTO INCREMENT 字段

Auto-increment会在新纪录插入表中时生成一个唯一数字

AUTO INCREMENT 字段

我们通常希望在每次插入新纪录时,自动创建主键字段的值

我们可以在表中创建一个auto-increment字段

MSQL使用AUTO_INCREMENT关键字来执行auto-increment任务。

默认地,AUTO_INCREMENT的开始值是1,每条新纪录递增1

创建主键

建表时指定primary key 字段

primary key(字段名);

create table db1.t5(

name char(10) not null,

age tinyint unsigned not null,

gender enum("man","woman","no") default "no",

index(name),

index(age),

primary key (age)

);

在已有的表中设置primary key字段

alter table 表名 add primary key(字段名);

在给定字段添加主键时如果该字段的值有重复或者空值,不允许添加

移除表中的primary key字段

alter table 表名 drop primary key;

删除主键后,null字段不会自动恢复成yes

AUTO_INCREMENT自增长

建表时创建primary key主键字段与auto_increment自增长连用

auto_increment必须用在主键字段且字段类型必须是数值类型。

create table t9(

id int auto_increment,

name char(10) not null,

primary key(id)

);

在已有的表中添加auto_increment

alter table date add id int auto_increment first;

外键

用于在两个表的数据之间建立链接

让当前表字段的值在另一个表中字段值的范围内选择

使用外键的条件

表的存储引擎必须是innodb类型

被参照表字段类型宽度要一致必须是索引类型的一种primary key

基本用法

foreign key (表A字段名)

references 表B(字段名)

on update cascade  //同步更新

on delete cascade  //同步删除

 create table 工资表(

姓名 varchar(7),

工资 int(3),

foreign key(姓名) references 员工信息表(姓名) on update cascade on delete cascade)

engine=innodb,

default charset=utf8;

删除外键

使用show create table 表名查看外键名字

alter table 表名 drop foreign key 外键名字;

posted @ 2022-06-06 11:11  胖丿虎  阅读(36)  评论(0编辑  收藏  举报