问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql唯一键和唯一索引的区别,还是二者就是一个东西!

发布网友 发布时间:2022-04-07 20:27

我来回答

2个回答

懂视网 时间:2022-04-08 00:48

MySQL索引和键   
 (不同的索引有不同功能 ,不同的约束方式,不同的使用规则)
优点:对一张表来说,索引就像一本书的目录,能够加快查询速度
缺点:占用物理存储空间 (索引信息存储在表对应的文件里)
     会降低插入、更新表记录的速度(insert   delete   update)
1.索引的类型
普通索引:index        
唯一索引:unique
全文索引:fulltext  

2.各个索引的说明
(1).index 普通索引
一个表中可以有多个INDEX字段
把经常做查询条件的字段设置为INDEX字段   
INDEX字段的KEY标志是MUL
对应的字段值允许有重复
样例1:
建表时设置索引字段。(默认索引字与字段名相同)
create   table   tea(
name  char(10) not null,
age  int(3) not null,
index(name)
);
样例2:
把已有表里的字段设置为index字段。
create   index  索引名  on  表名(字段名);
create  index   name  on  stu_info(name);
create  index   name  on  stu_info(name,sex);
删除指定表的索引字段
drop  index  索引名  on  表名;
drop  index  name  on  stu_info;
注:index使用BTREE  算法   (二叉树算法)
查看表的索引信息:show  index  from stu_info;

(2)unique 唯一索引   
字段值不允许有重复,UNIQUE字段的值允许为NULL,【当将其修改为不允许为NULL,则此字段限制与主键相同】
一个表中可以有多个UNIQUE字段
UNIQUE字段的KEY标志是UNI
样例:
create  table  tea23(
id int(3),
name char(3),
unique(id)
);

create unique index  stu_id   on   stu_info(stu_id);
3.键
主    键:primary  key
外    键:foreign   key
(1). primary   key   
一个表中只能有一个PRIMARY字段
字段值不允许有重复,不允许为null
主键字段的KEY标志是PRI
如果有多个字段都作为PRIMARY KEY,称为复合主键,必须在建表时一起创建
通常与 AUTO_INCREMENT 连用 (字段的值自动增长 +)
把能唯一定位一条记录的字段设置为主键字段
样例:
create table baitao(lf int(3),primary key(lf));
alter table  stu_info add  primary key(id)
alter   table  表名   drop    primary  key;

(2).foreign    key   * 外      键  
字段类型要一致
表的存储引擎必须是innodb
被参考字段必须是索引类型中的一种。

FOREIGN  KEY(字段名)   References  表B(字段名)  ON  UPDATE CASCADE
    ON  DELETE  CASCADE

样例:
create   table  yg_info(yg_id  int(3) primary key  auto_increment,name  varchar(15) not null,index(name))engine=innodb;
create  table  gz_tab2(
id  int(3) primary  key   auto_increment,
name   varchar(15) not null,
gz_id   int(3)   not  null,
gz  float(7,2),
FOREIGN  KEY(gz_id)    References  yg_info(yg_id)
on update cascade   on  delete  cascade
)engine=innodb;
insert into  yg_info(name)values("jim");
insert into  yg_info(name)values("tom");
insert  into  gz_tab(name,gz_id,gz)values("jim",1,20000);
insert  into  gz_tab(name,gz_id,gz)values("tom",2,20000);


update   yg_info  set  yg_id=20  where name="tom";
delete from yg_info where yg_id=20;

(3).primary key 复合主键
(主键字段的值 不可以同时相同 )
                   
ip             ser_name     port     status
1.1.1.1        vsftpd        21        deny
1.1.1.1        sshd          22        allow
2.2.2.2        sshd          22        allow
1.1.1.10        sshd         22        deny

create  table   sertab(
ip    varchar(15),
ser_name  varchar(15),
port   int(3),
status  enum("deny","allow")  default "deny",
primary key(ip,port)
);

本文出自 “刘福” 博客,请务必保留此出处http://liufu1103.blog.51cto.com/9120722/1656829

五、MySQL索引和键

标签:mysql索引和键

热心网友 时间:2022-04-07 21:56

两者有类似的功能,值都是必须唯一,但是不是主键的字段或者几个字段可以设置为唯一索引。追问索引和唯一键很相似,二者的区别在于作用不同,索引用于提高查询速度,唯一键用于唯一约束。当然如果建立的索引是唯一索引的话,也可以起到唯一约束的作用。在MySQL具体实现上,索引需要建立数据结构,需要额外的磁盘空间来存储索引,而键(主键,外键和唯一键)都是逻辑层面的实现和约束,二者还是有着本质的区别。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
水利水电工程单元工程施工质量验收评定标准——土石方工程(SL 631... 关于水利水电工程项目划分的规程有哪些?划分的越细越好,感谢大家的帮 ... 水利水电工程的单位工程包括哪些工程? 尖子生学案:生物高中选修3目录 U盘传了数据怎么删除电脑记录如何清除电脑上U盘使用记录 把u盘插电脑怎么删掉记忆如何删掉电脑上插过U盘的记录 win7清除u盘记录 如何清理win7电脑u盘痕迹如何清除电脑上U盘使用记录 麦当劳和华莱士的外卖电话是什么? 一文详解ISO/IEC20000信息技术服务管理体系认证好处、材料、流程 东风风光580跑27000公里需要换什么? 东风580三次保养换些什么及多少钱 手机改时间在哪里设置华为 华为手机那里可以设置时间 华为调手机时间在哪里调 2021教育培训机构新政策 培训行业新政策 培训机构剩余财产处置方案 想做教育行业,请问下融资的话怎么操作? 培训机构创业计划书怎么写 应该如何确定雇主责任险的管辖法院 公司交的工伤险怎么查 金蝶怎么查雇主责任险? 对于生气打家长的孩子,父母应该怎样进行教育呢? 如何把微信好友全部转移到另一个上,不要一个个添加了,求大神详解,_百度问一问 孩子在幼儿园抓伤别人怎么办 单位给伤残员工报了雇主责任险,自己能查询吗? 为什么孩子突然就爱动手打人了 如何教育爱动手的孩子 换码,如何将原微信好友一起加到新? 金立9012是什么型号 金立GN9012是S6PRO手机吗 谁知道深圳富士康公司的电话, 深圳富士康有联系电话吗 怎么打富士康员工关爱中心的电话? 深圳富士康总公司联系方式 金立9012这款手机怎样 深圳龙华,富士康,服务电话是多少? 请问深圳富士康公司总部电话是多少,传真也行,请各位仁兄告知,谢! 深圳富士康的具体地址在哪里 金立手机什么处理器 深圳富士康的联系方式,谁有呀!~ 深圳龙华富士康详细地址是在哪里? 什么是打电话的礼节? 打电话的礼仪是什么呢? 深圳富士康电话 打电话是什么? 打电话 到底是什么意思? 坐地铁什么东西不能带 关于坐地铁的一些安全常识问题?