第五章 MySql索引

1.约束

1.1定义与作用

对表中的字段(字段的值)进行一定的约束限制,以保证数据的完整性,一致性,有效性。

1.2约束分类

1).非空约束(NOT NULL):不允许该字段的值有NULL

用法:字段名 数据类型 NOT NULL

2).默认约束(DEFAULT):向表中插入记录,不给该字段赋值时。则使用默认值。

用法:字段名 数据类型 DEFAULT 默认值
在这里插入图片描述

1.3约束分类例题

1.创建一张表t1,添加 id,name,sex字段,且不为id字段不能为空,sex字段默认值为‘s’

# 建表操作
CREATE TABLE t1(
id int NOT NULL,
name varchar(15),
sex enum('m','f','s') DEFAULT 's'
);
#给表的id和name字段插入值
INSERT INTO t1(id,name) VALUES(1,'刘备');

2.索引

2.1定义和优缺点

定义:对数据库中的表的一列或者多列进行排序的一种结构(排序使用的算法:Btree)
优点:加快数据检索速度
缺点:
1.占用物理存储空间
2.当表中数据更新时,索引需要动态维护,占用系统资源,降低数据维护速度

3.索引——普通索引

3.1普通索引的用法

在这里插入图片描述

3.2例题

1.直接创建带索引的表

#创建带索引的表
CREATE TABLE T1(
id int,
name varchar(20),
score decimal(5,2),
INDEX(id),
INDEX(name));
# 表中的score 没有建立索引

2.在原有的表中添加索引

CREATE INDEX score ON T1(score);

3.删除索引

DROP INDEX id ON T1
DROP INDEX name ON T1
# 删除索引只能一个一个的删除

4.索引——唯一索引

4.1唯一索引的用法

在这里插入图片描述

4.2 例题

#在T2表中添加number字段
ALTER TABLE T2  ADD number bigint;

# 在T2表中的number字段添加唯一索引
CREATE UNIQUE number ON t2(number);

5.索引——主键索引

5.1主键索引用法

在这里插入图片描述

5.2例题

1.建立带主键索引的表

CREATE TABLE t3(
id int PRIMARY KEY AUTO_INCREMENT
name varchar(15) );
# 在t3里面添加一条记录
INSERT INTO t3(name) VALUES('赵四儿');

在这里插入图片描述

INSERT INTO t3 VALUES(NULL,'张三');

在这里插入图片描述

DELETE FROM t3 WHERE id =2;
INSERT INTO t3 VALUES(NULL,'小六儿');

在这里插入图片描述

ALTER TABLE t3 AUTO_INCREMENT=10000;
INSERT INTO t3 VALUES(NULL,'王五');

在这里插入图片描述
2.在已经存在的表中添加主键索引和自动增长属性

ALTER TABLE t2 ADD PRIMARY KEY(id);

ALTER TABLE t2 MODIFY id int AUTO_INCREMENT;

3.删除主键和自动增长属性

# 需要两个步骤,需要先modify自动增长属性 然后再 DROP主键
ALTER TABLE t3 MODIFY id int;
ALTER TABLE t3 DROP PRIMARY KEY;

在这里插入图片描述

6.索引——外键索引

6.1主键索引用法

在这里插入图片描述

6.2例题

后补

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值