一、自增长
1.前提
存在一个id列,我们希望在添加记录的时候,该列从1开始自动增长
2.语句
字段名 整型 primary key auto_increment
3.添加自增长的字段方式
insert into xxx(字段1,字段2...) values(null,'值'...)
insert into xxx(字段2) values('值1','值2'...)
insert into xxx values(null,'值1'...)
create table users(
user_id INT AUTO_INCREMENT PRIMARY KEY,
user_name VARCHAR(50) NOT NULL,
email VARCHAR(100)
);
insert into users(user_name, email) values ('u1', 'u1@test.com');
insert into users(user_name, email) values ('u2', 'u2@test.com');
select * from users;
user_id|user_name|email |
-------|---------|-----------|
1|u1 |u1@test.com|
2|u2 |u2@test.com|
4.自增长使用细节
①一般来说自增长要和primary key配合使用
②自增长也可以和unique配合使用
③自增长修饰的字段是整型的
④自增长从1开始,也可以修改通过:alter table 表名 auto_increment = 新的开始值
⑤如果添加数据你在自增长那一列设置了你的值,他就会用你的值,后面增长也是按照你设置的这个值往后+1
二、索引
1.原理
2.索引的好处>坏处
①好处:索引形成了一个索引数据结构,如二叉树,所以查找会很快
②坏处:磁盘占用更大,dml语句效率会降低
3.索引分类
①.主键索引:主键自动为主键索引
②.唯一索引:unique
③.普通索引:index
④.全文索引:fulltext
4.索引的增删改查
=============================================添加索引
create table t4(id int,`name` varchar(32))
创建唯一索引
create unique index id_index on t4 (id)
查询索引
show index from t4
创建普通索引两种方式
create index name_index on t4 (`name`)
alter table t4 add index id_index (id)
当某列的值不会重复用唯一索引unique,其他用普通索引
create table t5(id int,`name` varchar(32))
创建主键索引(当创建表时在字段后面加上primary key 该字段会自动生成主键索引)
alter table t5 add primary key (id)
=============================================删除索引
删除普通索引
drop index id_index on t4
删除主键索引(后面不用加字段名,表只有一个主键)
alter table t5 drop primary key
==============================================修改索引,就是先删除索引,再添加
===============================================查询索引
show index from t4
show indexes from t4
show keys from t4
5.适合创建索引条件
1.较为频繁的作为查询条件字段应该创建索引
2.唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件,比如:性别
3.更新非常频繁的字段不适合创建索引
4.不会出现在where子句中字段不该创建索引