MYSQL 索引与完整性约束

一、索引的分类:

  1. 普通索引
  2. 唯一性索引:与普通索引基本相同,但是索引列的所有值只能出现一次,必须唯一。
  3. 主键(主索引):主键一般在创建表的时候指定,也可以通过修改表的方式加入主键,但每个表只有一个主键
  4. 全文索引:只能在VARCHAR或TEXT类型的列上创建

表级约束:

create table test2(id int primary key);

列级约束:

 create table test3(id int primary key(id));

二、创建普通索引(属性值可以重复的)

  1. create index 语句创建

为一个表中的一列创建索引:

在name列中创建一个ID普通索引

 create index idx_name on test(name);

desc test;

展示创建的索引内容:

show index from test;

三、创建唯一索引(属性值不能重复,比较适合候选码)

1.在age列中创建一个唯一索引:

 create unique index idx_age on test(age);

2.表不存在时,可以创建:

创建表的同时创建唯一索引:

①create table test4(id int,name varchar(10),

    -> primary key(id),

    -> unique (name)  

-> );

② show index from test4;

insert into test4 values(1,'tom');   //添加一条数据值

四、比较几种索引:

  1. 一个表只能创建一个的索引是:主键(索引)
  2. 一个表可以创建多个普通或者唯一索引
  3. 创建为索引的属性列值必须唯一的是:主索引和唯一索引,值可以重复的是普通索引

五、命名完整性约束:

创建表给表完整性约束指定约束名:

创建表时为索引起名:

①create table test5(id int ,name varchar(10),

    -> constraint mypri primary key(id),

    -> constraint myuiq  unique(name)

-> );

② show index from test5;

 

六、删除主键索引:

可以根据索引名称,进行删除操作:

方法一:(删除主键(索引),不需要使用名称)

①alter table test5 drop primary key;

② show index from test5;

 

方法二:删除其他索引,需要使用名称

alter table test5 drop index myuiq;  //不能进行重复删除

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏苏☆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值