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

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

时间:2022-12-12 11:01:15浏览次数:58  
标签:存储 数据库 视图 查询 索引 SQL

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 创建各种视图表

3 索引

3.1 索引的定义

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

3.2 索引的特性

  • 在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。(是为了快速查询而针对某些字段建立起来的)
  • 更新一个包含索引的表需要比更新一个没有索引的表更多的时间,这是由于缩影本身也需要更新。

标签:存储,数据库,视图,查询,索引,SQL
From: https://www.cnblogs.com/counter/p/16975496.html

相关文章

  • MySQL之索引数据结构分析
    目录1索引数据结构1.1索引数据结构介绍1.2索引底层实现1.2.1Hash索引1.2.2B-Tree索引(MySQL使用B+Tree)1.2.3B+Tree索引3.2.3.1B+Tree性质1.2.3.2一棵B+树可以存多......
  • ASM数据库启动报ORA-01078,ORA-01565,ORA-17503,ORA-01017
    环境:ASM管理软件:11.2.0.4ORACLE软件:11.2.0.4操作系统:redhat6该环境是借用了asm管理软件来提升IO性能,并没有安装集群软件。故障现象:启动数据库时报错,alert......
  • c++ 如何做出实现一组数据的实际索引
    ​ 是一种计算机高级程序设计语言, 由​​C语言​​​扩展升级而产生, 最早于1979年由​​本贾尼·斯特劳斯特卢普​​在AT&T贝尔工作室研发。C++既可以进行C语言的......
  • oracle数据库常用操作
    1,调整显示格式colusernamefora20colDEFAULT_TABLESPACEfora302,查看表空间selectusername,default_tablespacefromdba_users;3,创建用户DROP......
  • pg9.6使用索引
    使用索引索引是用于快速数据检索操作的结构。在数据库世界中,索引与表相关联并用于有效定位数据,而无需查询数据库表中的每一行。如果表没有索引,则需要全表扫描才能找到记录,这......
  • SpringBoot源码2——SpringBoot x Mybatis 原理解析(如何整合,事务如何交由spring管理,my
    阅读本文需要spring源码知识,和springboot相关源码知识对于springboot整合mybatis,以及mybatis源码关系不密切的知识,本文将简单带过系列文章目录和关于我涉及到spring......
  • 数据库设计
    采用mysql数据库数据库使用NavicatforMySQL来管理在NavicatforMySQL中新建filedb作为电子公文系统数据库在filedb中新建5个表department:存储可选的部门file:传输......
  • JSP连接数据库
    我们选择直接用jsp连接数据库。规范写法其实是放到模型控制层中的DAO(DataAccessObject)层中步骤导入数据库jar包注册驱动Class.forName("com.mysql.jdbc.Driver")......
  • 进入python的世界_day49_Django的基本配置、ORM、前后端数据库的相联
    ​ 接口就是一个网址一、静态文件​ 不需要经常改变的文件,主要针对HTML文件所用到的资源,在django中,要提前手动创建一个文件夹,static,然后里面自己再分门别类一下#比如......
  • 静态文件、request对象、pycharm/django连接数据库、ORM了解
    静态文件、request对象、pycharm/django连接数据库、ORM了解目录静态文件、request对象、pycharm/django连接数据库、ORM了解静态文件配置静态文件相关配置form表单reques......