字段+索引

空值和null的区别

null值:占用空间,也就是一个具体的值,不过是null值。
空值:不占用空间,就是空格值。
区别的最主要一点就是是否占用空间,明白了这个就明白了空值和null的区别。
create table test1(col1 varchar(10) not null,col2 varchar(10) null);

在这里插入图片描述

default:为一个字段设置一个默认的值

create table test2(name varchar(10) not null,id int default 20);
insert into (name)values("zahngsan");

在这里插入图片描述

auto_increment:自动增长,一般用于主键

一旦自增长进行跳转之后,会在跳转之后进行自动增长。

create table test3(id int not null auto_increment primary key,laber varchar(10) not null);

在这里插入图片描述
在这里插入图片描述

清空表的记录

delete 用来清空,但是不会对自动增长进行删除,他还是会按照之前设置的自动增长的最后一个数字后进行增长

我们auto_increment最后的值为7,我们使用delete进行删除,然后插入数据,发现id从8开始,也就是依靠之前的自动增长的数字。

在这里插入图片描述

truncate table test3,经过清空后,我们再次进行插入数据,会发现自动增长从1开始,也就是说清空了auto_increment的之前设置。

在这里插入图片描述

索引:为了增加速度,相当于目录

普通索引的创建——创建表的时候创建索引

create table demo(id int,name varchar(20),pwd varchar(20),index(pwd));
create table demo1(id int,name varchar(20),pwd varchar(20),key(pwd));
create table demo3(id int,name varchar(20),pwd varchar(20),key indexkey (pwd));

在这里插入图片描述
删除和增加普通索引——建立表后创建索引

create table demo1 (id int,name varchar(20),pwd varchar(20),index keyindex(pwd));
show create table demo1
删除的是索引名字,增加的是字段名字,需要加括号()
删除:alter table demo1 drop key indexkey;
增加: alter table demo1 add key(id);

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
唯一索引+主键索引+创建表的时候

主键索引:不能有重复的数据,不允许为空
唯一索引:不能有重复的数据,唯一性允许有NULL值<允许为空>。
create table demo2(id int auto_increment primary key,uname varchar(20),upwd varchar(20),unique key (uname));
desc demo2;

在这里插入图片描述
在这里插入图片描述
主键索引的修改:不能删除的原因:是因为存在着其他约束条件,例如:auto_increment.需要先使用change该表主键的约束条件,也就是相当于删除了。增加的时候只需要修改字段也就可以了。

删除:alter table demo2 drop primary key;
增加:alter table demo2 change id id int not null primary key;

在这里插入图片描述
在这里插入图片描述
唯一索引的修改

删除:alter table demo2 drop key uname
增加:alter table demo2 add unique key(uname);

在这里插入图片描述
在这里插入图片描述
复合索引

create table firewall (host varchar(15) not null,port smallint(4) not null,access enum("deny","allow") not null,primary key(host,port));

在这里插入图片描述在这里插入图片描述
全文索引:

全文索引支持的引擎:MyISAM,并且不支持中文。他也有2种方式,一种是创建,一种是修改
create table demo4(id int ,name varchar(20),name1 varchar(20),fulltext key indexket(name));
alter table demo4 add fulltext key(name1);
alter table demo4 drop key name1;

在这里插入图片描述
在这里插入图片描述

索引设计的原则

索引并非越多越好
数据量不大不需要建立索引
列中的值变化不多不需要建立索引 row id
经常排序(order by 字段)和分组(group by 字段)的列需要建立索引
唯一性约束对应使用唯一性索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值