索引和约束
一、索引
(一)索引的介绍
1、定义:索引是一种数据结构
2、一个索引在存储的表中的数据结构
3、索引是在表的字段上创建的
4、索引包含一列值,这个值保存在一个数据结构上
5、索引的作用:
a、实现表与表之间参照性
b、保证数据记录的唯一性
c、减少排序或分组的时间(比如:order by ,group by)7、
d、可以使用索引快速访问数据中指定信息
6、索引的缺点:
a、索引占物理内存
b、索引对表进行增删改查,索引要动态维护,降低数据的维护速度
7、索引的分类
a、主键索引 primary key 是一种唯一索引,不同为空,一个表中只有一个主键索引
b、唯一索引 unique 是一种唯一索引,可以为空,一个表中可以由多个唯一索引
c、普通索引 index 是一种基本的索引,没有任何限制
(二)索引应用
1、索引的建立时间
(1)建表后使用
(2)建表的时候使用
2、索引的查询
a、通过show查看
格式:
show index from 表名
案例:
show index from emp
b、通过desc 表结构查看
格式:desc 表名
案例:desc emp
2、创建索引
(1)添加主键索引(primary key 简写:pri)
格式
ALTER table 表名 add PRIMARY key(指定的字段) ; 这个字段不能有重复数据
格式:
ALTER table emp add PRIMARY key(sid) ;
特点:
一个表中只有一个主键,唯一,不能空
(2)删除主键索引
格式:
ALTER table 表名 drop PRIMARY key ;
案例:
ALTER table emp drop PRIMARY key ;
(3)添加唯一索引 unique (简写:uni)
格式:
ALTER table 表名 add unique 索引名(字段名)
案例:
ALTER table emp add unique sy(name)
特点:
唯一、可以为空、一个表中可以有多个
(4)普通索引 简写mul
格式:
ALTER table 表名 add index 索引名(字段名)
案例:
ALTER table emp add index sy1(age)
(5)普通索引和唯一索引删除
格式:
ALTER table 表名 drop index 索引名
案例:
ALTER table emp drop index t
(6)建表的时候添加索引
格式:
create table 表名 (字段1 字符类型(字符长度) PRIMARY key ,字段2 字符类型(字符长度) unique,字段3 字符类型(字符长度) );
案例:
create table dd (id int PRIMARY key ,name varchar(20) unique,sex int(10) );
desc dd ;
三、
1、什么索引?
2、索引的作用?
3、索引有哪些
4、如何创建索引?
5、主键索引和唯一索引的区别?
二、约束(建表时的约束)
1、主键(primary key)
2、unique
3、非空 not null
4、默认值 default
5、自增长 auto_incremet (一般和主键同时使用)
案例:
create table c2 (id int PRIMARY key auto_increment,name varchar(20) unique,sex int(10),age int(18) DEFAULT 18, fs int(10) not null);