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

MySQL主键与索引的区别和联系

发布网友 发布时间:2022-04-29 21:24

我来回答

2个回答

懂视网 时间:2022-04-30 01:46

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-29 22:54

1.主键的值不可以改变,唯一键的值可以改变成另一个也是唯一的值
2.对外的应用程序接口如ODBC或者JAVA中的Hibernate通常都是以主键来加载记录
3.唯一键的列可以改成not unique,而主键却不能
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
美的面包机和面要多久 美的面包机和面的时间要多长 美的面包机怎么用手动操作 如何用美的面包机发面 如何用美的面包机和面 美的面包机如何和面 CDR教程—教你如何使用CorelDRAW复制图形方法 苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 京津冀地区城市发展的有利条件? 地理题,在线等 京津冀协同发展有什么经济意义? 京津冀协同发展的先行领域是哪个领域? 京津冀以后发展怎么样 京津冀区域发展指数提升多少? 实现京津冀协同发展是在哪一年? 自考本科人力资源有用没 人力资源自考时间 网盘是什么东西?有什么用?该怎么使用? 我想知道网盘是什么,怎么使用 怎么去除人身上鸡虱子 怎么快速消灭鸡虱子 鸡虱子怕肥皂水吗?家里花盆用了鸡粪,现在花盆里浇水后满是鸡虱子,怎么办?网上的药什么百禽康都用过 75度酒精能杀死鸡虱子么? 请问深圳公明哪里办理营业执照的? 水能泡死鸡虱子吗?最近老被一种比芝麻小很多的黑色虫子咬,家人说是鸡虱子,平时很干净家里也没有任何 网盘是什么,怎么用? 五常大米最高价500克多少钱? 刚定植的棚内有很多鸡虱子,怎样杀灭呢? 身上有鸡虱子,怎么洗都洗不掉 oppo手机声音没有了怎么办 oppoa93调了振动后怎么还有声音 全运会几号开完 志高洗衣机显示代码大全志高洗衣机显示c1代码大全? 志高滚筒洗衣机转了十分钟滴滴滴显示这个 志高洗衣机按下电源键报警是是什么回事? 专利类别查询有哪些方式?如何进行查询? 如何快速查询一个产品是否有专利- 问一问 如何根据中国专利(申请)号判断专利类型? 专利怎么查询 怎样做专利查询?专利查询方法解答 南京师范大学成考历年分数线是多少 谢谢各位啦 南京师范大学录取大约多少分 今年江苏省南京师范大学的分数线是多少 2015年,南京师范大学录取分数线是多少 2018年南京师范学院高考录取分数线多少 我是安徽的,想考南京师范大学,分数线是多少 华为手机哪个型号比较耐用求推荐 mysql 中主键和索引的关系和说明 华为手机哪个型号比较耐用??求推荐