视图、索引和数据库表之间的关系

1 表

  • 数据库中的数据都存储在表中;
  • 表示物理存储的,真实存在的。

2 视图

2.1 视图的定义

视图:视图本身就是一张虚拟表,其内容与真实表类似,包含一些列带有名称的列和行数据。视图并不在数据库中以存储数据值的形式存在。行和列数据来定义视图的查询所引用基本表,并且在具体引用视图时动态生成。

  • 视图是基于SQL语句的结果集的可视化表;
  • 包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。
  • 视图是逻辑概念,并非真实存在,它不同于一张物理表,它是一个逻辑表。
  • 视图是SQL集,它表示的事对一个SQL查询的结果。

2.2 视图的特点

  • 视图的列可以来自于不同的表,是表的抽象在逻辑意义上建立的新关系;
  • 视图是由基本表(是表)产生的表(虚表);
  • 视图的建立和删除不影响基本表;
  • 对视图内容的更新(添加、删除、修改)直接影响基本表;
  • 当视图来自多个基本表时,不允许添加和删除数据。

2.3 创建视图的 SQL 语句

2.3.1 创建视图

create view View-name [参数列表]
as select [查询列表] from 表名;

2.3.2 查询视图

select [视图列表] from 视图名

2.3.3 创建各种视图表

1、封装实现查询常量语句的视图,即常量视图,语句如下:

create view view_test1
as select 3.2415926;

2、封装使用聚合函数(sum、min、count、max等)查询语句的视图,语句如下:

select view view_test2
as select count(name) from t_student;

3、封装了实现排序功能(order by)查询语句的视图,语句如下:

create view view_test3
as select name
  from t_student
    order by id desc;

2.3.4 删除视图

drop view view_name[,view_name2,view_name3];

2.3.5 修改视图

1、create or replace view 语句来修改视图:
对于已经修改好的视图,尤其是已经存在大量的数据视图,可以先删除在创建视图:

drop view view_selectproduct;  //删除已创建好的视图
create view view_selectproduct 
  as 
    select name
      from t_product;

或者可以使用create or replace语句俩创建视图:

create or replace view view_selectproduct
  as
    select name
      from t_product;

2、alter 语句修改视图

alter view view_name
  as select name from t_product;

视图的增删改查和表的增删改查大致相同,这里就不详细记录了。

3 索引

3.1 索引的定义

数据库索引通俗的讲就是和书本的目录一样,只要就是为了提高查询数据的效率。由于数据存储在数据库表中,所以索引是创建在数据库表对象上,有表中的一个字段或多个字段生成的键组成,由表中的一个或多个字段生成的键组成,这些键存储在数据结构(B-树或hash表)中,通过MySQL可以快速有效地查找和键值相关联的字段。根据索引的存储类型,可以将索引分为B型树索引(Btree)和哈希索引(hash)。MySQL中支持的索引有6中,分别是普通索引、唯一索引、全文索引、单列索引、多列索引和空间索引。

3.2 索引的特性

  • 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。(是为了快速查询而针对某些字段建立起来的)
  • 更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于缩影本身也需要更新。
posted @ 2022-12-12 10:52  空岛迷梦  阅读(447)  评论(0编辑  收藏  举报
// 侧边栏目录 // https://blog-static.cnblogs.com/files/douzujun/marvin.nav.my1502.css