数据库应用(六): Ubuntu 下 MySQL 视图和索引

视图和索引

  

  索引(Index)是影响数据性能的重要因素之一,设计高效的、合理的索引可以显著提高数据信息的查询速度和应用程序的性能。

  视图(View)是一个存储指定查询语句的虚拟表,视图中数据来源于由定义视图所引用的表,并且能够实现动态引用,即表中数据发生变化,视图中的数据随之变化

 

  理解索引

    MySQL的索引是为了加速对数据进行检索而创建的一种分散的、物理的数据结构。索引包含从表或视图中一个或多个列生成的键,以及映射到指定数据行的存储位置指针。

    索引是依赖于表建立的,提供了数据库中编排表中数据的内部方法。表的存储由两部分组成,一部分是表的数据页面,另一部分是索引页面。索引就存放在索引页面上

    

  索引的分类

    1. 普通索引
    2. 唯一索引
    3. 全文索引
    4. 单列索引
    5. 多列索引
    6. 空间索引      

 

  创建索引的方式

    1.   创建表的时候创建索引
      CREATE TABLE 表名(字段名 数据类型[完整性约束条件],
                           字段名 数据类型[完整性约束条件],
                           ......
               字段名 数据类型
              [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY
                                           [别名] (字段名1 [(长度)]) [ASC|DESC])
                                         );

      例: 在t1表中id字段上建立索引

      例:创建一个表名为t2的表,在表中的id 字段上建立索引名为unique_id的唯一性索引,并且按照升序排序

      例: 创建一个表名为t3的表,在表中的name字段上建立索引名为fulltext_name的全文索引

      例:创建一个表名为t4的表,在表中的name字段上建立索引名为single_name的单列索引

      例:创建一个表名为t6的表,在表中的id和name字段上建立索引名为multi的多列索引

       

    2.   使用CREATE INDEX 语句在已经存在的表上创建索引
      CREATE [UNIQUE|FULLTEXT] INDEX 索引名
       ON 表名 (字段名 [(长度)] [ASC|DESC]);

      在book表中的bookid字段上建立普通索引 

      在book表中的bookid字段上建立唯一性索引 

      在book表中的comment字段上建立单列索引 

      在book表中的authors和info字段上建立多列索引 

    3.   使用ALTER TABLE语句在已经存在表上创建索引
      ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT]  INDEX
                                          索引名 (字段名 [(长度)] [ASC|DESC]);

 

       在表中的bookid字段上创建普通索引

        

 

 

 

 

       在表中的bookid字段上创建唯一索引

        

 

 

 

       在book表中的comment字段上建立单列索引

        

 

 

 

        

 

 

 

  删除索引

    ALTER TABLE 表名 DROP  primary  key;

    ALTER TABLE 表名 DROP INDEX 索引名;

    ALTER TABLE 表名 DROP FOREIGN KEY fk_symbol;

    DROP INDEX 索引名 ON 表名;

 

 

  视图

  创建视图

CREATE VIEW  view_name[(column_list)]
AS  SELECT_statement
[WITH  CHECK  OPTION]

  在student表上创建view_stu视图

    

 

 

   查看视图

DESCRIBE 视图名;
SHOW TABLE STATUS LIKE '视图名'
SHOW CREATE VIEW 视图名;

 

  修改视图

CREATE [OR REPLACE ]VIEW view_name [(column_list)]
AS SELECT_statement
[WITH CHECK OPTION]

  使用CREATE OR REPLACE VIEW 语句修改view_stu视图

  

 

 

   使用ALTER语句修改视图

  

 

   更新视图

    使用UPDATE语句更新视图

      

 

 

 

  学习不易,诸君共勉!

 

posted @ 2020-09-13 13:38  秦_殇  阅读(180)  评论(0编辑  收藏  举报