数据库的索引和试图

索引

索引的设立

索引分类 :

普通索引: 就是一个普通的索引,可以空,可以重复。null

ALTER TABLE teacher ADD INDEX (column);

数据库的索引和试图

数据库的索引和试图

唯一索引 : 可以为空,不可以重复

ALTER TABLE teacher ADD UNIQUE (column);

ALTER TABLE teacher ADD CULUMN TYPE UNIQUE;

主键索引 : 不可为空 不可以重复

ALTER TABLE teacher ADD PRIMARY KEY (COLUMN)

只要是主键 就是索引

 

多列索引

ALTER TABLE teacher ADD INDEX (column1,column2,column3)

 

 

使用索引 ,

1 少量数据不使用索引

2 查询次数不少于索引

3 查询要携带索引的字段 同常放在select 之后的第一个

4 索引提高了索引效率,但是占用内存

 

试图

试图介绍:

view :当查询复杂度比较大,多表,多关系,会导致查询语句混乱,不利于sql语句的编写和编写的sql语句的可读性,于是mysql推出了试图模式

试图模式是对着一个查询的结果展示,试图里只查询语句,不存放结果。

试图优点,

1 简单 试图构建了一个虚拟的逻辑表,这里面的数据来之指定的查询,而查询可以是多表联 查,在使用的时候,我们可以直接对试图表里面的数据进行查询,不用从原始表查

2,安全,数据库有权限设置,但是没有对行和列的权限。所以如果对一个表里的数据设置不同的权限,mysql本身的权限设置有些不够,我们用试图查询出数据需要的数据,用户基于试图进行查询

3数据独立,一旦试图的结构决定,可以屏蔽掉表结构变数给用户甙类的影响,在原来表当中增加一列

 

试图的缺点:

试图会降低查询的效率。尤其是在试图当中的查询,在再次使用试图的查询

 

试图的设立

需求:

查询所有姓孙的女生

创建:

查询所有姓孙的学生

select * from student where name like “孙%”;

然后将该查询形成试图

CREATE VIEW student AS (select * from student where name like "孙"%);

数据库的索引和试图

数据库的索引和试图

数据库的索引和试图

使用

数据库的索引和试图

交友网站对用户联系方式进行限制

1 创建视图,查询所有用户的个人信息(残缺版)

数据库的索引和试图

2 从残缺版里查询所有的女生

数据库的索引和试图

查看所有试图

SHOW TABLE STATUS WHERE COMMENT = "view"

数据库的索引和试图

删除试图

DROP VIEW student_sun;

数据库的索引和试图