数据库21/11/8

视图

视图的概念

视图就是由数据库中一张表或者多张表根据特定的条件查询出的数据构成的虚拟表

视图的作用

  • 安全性:想要对数据表中的数据进行保护,可以将公开的数据生成视图,授权用户访问视图,不用访问数据表,从而保护数据库中未公开的数据
  • 简单性:若我们需要的数据来源于多数据表,可以进行多表连接查询,通过视图将这些连表查询的结果对用户开放,用户则可直接通过实体查询多表中的数据,用户操作更便捷

创建视图

示例1:将学生表中性别为男的学生生成一个视图

CREATE VIEW view_nan
as
SELECT * from students where stu_gender='男';

示例二:查询学生借书的信息(学生名,图书名,借书数量)

CREATE VIEW view_brs
as
SELECT s.stu_name,b.book_name,r.books_num
from  students s INNER JOIN books b INNER JOIN records r
on s.stu_num=r.snum and b.book_id=r.bid;

查询视图

SELECT * from view_nan;

视图数据的特性

查询操作 :数据表进行增删改查,若满足田间相应的视图在进行查询时也会有相应的变化
新增数据 :在视图中新增数据也会在相应的数据表中添加数据,若视图中的数据来源于多张表,将不能添加

INSERT into view_nan VALUES('2021005','王刚','男',21);

删除数据 :在视图中删除数据,数据也将在原表删除,若视图中的数据来源于多张表,将不能删除

DELETE from view_nan WHERE stu_num='2021005';

修改数据 :在视图中修改数据,数据也将在原表修改

UPDATE view_nan set stu_age=19 where stu_num='2021001';

视图的使用建议 :对复杂查询简化操作,并且不会对数据进行修改的情况下可以使用视图

视图的操作

查询视图的结构

desc view_brs;

修改视图

  1. or replace 是替换
CREATE or REPLACE VIEW view_nan
as
SELECT * from students where stu_gender='女';

2.alter 修改

alter view view_nan
as
SELECT * from students where stu_gender='男';

删除视图
删除视图不会影响原数据表中的数据

drop view view_nan;

索引

索引的介绍

在互联网应用中数据库中存储的数据会很多,数据表中数据的查阅速度会随着数据量的增长逐渐变慢,从而到时响应用户的速度变慢——用户体验差,为提高数据的查询效率,引进索引
索引 :就是用来提高数据表中数据的查阅效率的,将数据表中的某一列/某几列的值取出来构造成便于查找的结构(B+Tree),类似数据表的目录

索引的分类

mysql中的索引根据创建索引的列不同,可以分为

  • 主键索引
  • 唯一索引
  • 普通索引
  • 组合索引
    1.在创建数据表时,将字段声明为主键,会自动在主键字段创建主键索引
    2.在创建数据表时,将字段声明为唯一键,会自动在唯一字段创建唯一索引

创建索引

-- 创建唯一索引 创建唯一索引的值不能重复
create unique index index_test on table(tid);
  • 全文索引

可以通过此索引进行全文索引操作,不支持中文,不怎么用

-- 创建全文索引
create fulltext index index_test on table(tid);

使用索引

索引创建完成后无需调用,当根据创建索引的列进行查询的时候,会自动使用索引,组合索引需要根据创建索引的所有字段进行查询时触发

在命令行窗口可以查看查询语句的查询规划

explain select * from table where tid=250000\G;

查看索引

1.在命令行窗口中

show create table table_name\G;

2.查询数据表的索引

show indexes from students;
show keys from students;

删除索引

drop index index_name on table_name;
posted @ 2021-11-08 22:39  想吃坚果  阅读(32)  评论(0)    收藏  举报