数据库(五)之操作架构,索引和视图

创建视图语法:

CREATE VIEW view_name(view_column_name)
    AS query_expression
    [WITH CHECK OPTION]

例子

create view V_studentInfo
as
    select a.姓名,a.性别,a.名族,a.家庭住址,B.班级名
    from 学生信息 a,班级信息 B
    where a.所属班级 = B.班级编号

修改视图语法:

ALTER VIEW <view_name>[<column name list>]
    AS
    <SELECT statement>
    [WITH CHECK OPTION]

删除视图语法:

DROP VIEW V_studentInfo

通过视图修改数据:

  在下列情况下不能通过视图修改数据:

  • SELECT列表中含有DISTINCT
  • SELECT列表中含有表达式,如计算列,函数等
  • 在FROM子句引用多个表
  • 引用不可更新的视图
  • GROUP BY 或HAVING子句

插入记录

insert into v_stu
    values('2111605149', '', '', '')

索引概述

  索引是一个单独的,物理的数据结构,它是某个表中一列或若干列的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引是依赖于表建立的,它提供了数据库中编排表中数据的内部方法。一个表的存储是由两个部分组成的,一部分用来存放表的数据页面,另一部分存放索引页面。索引就存放在索引页面上,通常,索引页面相对于数据页面小得多。当进行数据检索时,系统先收索索引页面,从中找到所需数据的指针,再直接通过指针从数据页面中读取数据。从某种程度上,可以把数据库看作一本书,把所有看作书的目录,通过目录查找书中的信息,显然比没有目录的书方便。快捷。

  索引一旦创建,将有数据库自动管理和维护。例如,在向表中插入,更新或者删除一条记录时,数据库会自动在索引中做出相应的修改。在编写SQL查询语句时,具有索引的表与不具有索引的表没有任何区别,索引知识提供一种快速访问指定记录的方法。

为什么使用索引?

保证数据记录的唯一性。唯一性索引的创建可以保证表中数据记录不重复。

  加快数据检索速度。表中创建了索引的列几乎可以立即响应查询,因为在查询时数据库会首先搜索索引,找到要查询的值,然后按照索引中的位置确定表中的行,从而缩短了查询时间;而未创建索引的列在查询时就需要等待很长的时间,因为数据库会按照表的顺心逐行进行搜索。

  加快表于表之间的连接速度。如果从多个表中检索数据,而每个表中都有索引列,则数据库可以通过直接搜索各表的索引列,找到需要的数据。不但加快了表间的连接速度,也加快了表间的查询速度。

  在使用ORDER BY和GROUP BY子句中进行检索数据时,可以显著减少查询中分组和排序的时间。如果在表中的列创建索引,在使用ORDER BY和GROUP BY子句对数据进行检索时,其执行速度将大大提高

  可以在检索数据的过程中使用优化隐藏器,提高系统性能。在执行查询的过程中,数据库会自动地对查询进行优化,所以在建立索引后,数据会依据所建立地索引采取相应地索引而使检索地速度最快。

 

原文地址:https://www.cnblogs.com/ZGreMount/p/8600173.html