zoukankan      html  css  js  c++  java
  • mysql 索引和视图

    第五节:创建索引
    5.1 创建表的时候创建索引

    CREATE TABLE 表名(属性名数据类型[完整性约束条件],
              属性名数据类型[完整性约束条件],
              ....
              属性名数据类型
              [UNIQUE | FULLTEXT | SPATIAL ] INDEX| KEY
              [别名] (属性名1 [(长度)] [ASC | DESC])

    );

    1,创建普通索引

    CREATE TABLE t_user1(id INT ,
                         userName VARCHAR(20),
                         PASSWORD VARCHAR(20),
                         INDEX (userName)
                     );
    2,创建唯一性索引

    CREATE TABLE t_user2(id INT ,
                         userName VARCHAR(20),
                         PASSWORD VARCHAR(20),
                         UNIQUE INDEX index_userName(userName)
                     );
    3,创建全文索引
    4,创建单列索引
    5,创建多列索引

    CREATE TABLE t_user3(id INT ,
                         userName VARCHAR(20),
                         PASSWORD VARCHAR(20),
                         INDEX index_userName_password(userName,PASSWORD)
                     );
    6,创建空间索引

    5.2 在已经存在的表上创建索引

    CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名 ON 表名(属性名[(长度)] [ ASC | DESC]);

    5.3 用ALTER TABLE 语句来创建索引

    ALTER TABLE 表名ADD [ UNIQUE | FULLTEXT | SPATIAL ] INDEX 索引名(属性名[(长度)] [ ASC | DESC]);

    第六节:删除索引

    DROP INDEX 索引名ON 表名;


     第八章视图

    第一节:视图的引入

    1,视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。
    2,数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。
    3,使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。

    第二节:视图的作用

    1,使操作简便化;
    2,增加数据的安全性;
    3,提高表的逻辑独立性;

    第三节:创建视图

    CREATE [ ALGORITHM ={ UNDEFIEND | MERGE | TEMPTABLE }]
           VIEW 视图名[ ( 属性清单) ]
           AS SELECT 语句
          [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];


    ALGORITHM 是可选参数,表示视图选择的算法;
    “视图名”参数表示要创建的视图的名称;
    “属性清单”是可选参数,其指定了视图中各种属性的名词,默认情况下与SELECT 语句中查询的属性相同;
    SELECT 语句参数是一个完整的查询语句,标识从某个表查出某些满足条件的记录,将这些记录导入视图中;
    WITH CHECK OPTION 是可选参数,表示更新视图时要保证在该视图的权限范围之内;


    ALGORITHM 包括3 个选项UNDEFINED、MERGE 和TEMPTABLE。其中,UNDEFINED 选项表示MySQL 将
    自动选择所要使用的算法;MERGE 选项表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分
    取代语句的对应部分;TEMPTABLE 选项表示将视图的结果存入临时表,然后使用临时表执行语句;CASCADED
    是可选参数,表示更新视图时要满足所有相关视图和表的条件,该参数为默认值;LOCAL 表示更新视图时,要
    满足该视图本身的定义条件即可;

    3.1 在单表上创建视图

    CREATE VIEW v1 AS SELECT * FROM t_book;
    CREATE VIEW v2 AS SELECT bookName,price FROM t_book;
    CREATE VIEW v3(b,p) AS SELECT bookName,price FROM t_book;


    3.2 在多表上创建视图

    CREATE VIEW v4 AS SELECT bookName,bookTypeName FROM t_book,t_booktype WHERE t_book.bookTypeId=t_booktype.id;
    CREATE VIEW v5 AS SELECT tb.bookName,tby.bookTypeName FROM t_book tb,t_booktype tby WHERE tb.bookTypeId=tby.id;

    第四节:查看视图
    4.1 DESCRIBE 语句查看视图基本信息

      DESC v5;
    4.2 SHOW TABLE STATUS 语句查看视图基本信息

      SHOW TABLE STATUS LIKE 'v5';
    4.3 SHOW CREATE VIEW 语句查看视图详细信息

      SHOW TABLE STATUS LIKE 't_book';
    4.3 在views 表中查看视图详细信息

      SHOW CREATE VIEW v5;

    第五节:修改视图

    5.1 CREATE OR REPLACE VIEW 语句修改视图

    CREATE OR REPLACE [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]
              VIEW 视图名[( 属性清单)]
              AS SELECT 语句
              [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];

    CREATE OR REPLACE VIEW v1(bookName,price) AS SELECT bookName,price FROM t_book;

    5.2 ALTER 语句修改视图

    ALTER [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]
                VIEW 视图名[( 属性清单)]
                AS SELECT 语句
                [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];

    ALTER VIEW v1 AS SELECT * FROM t_book;
    第六节:更新视图

    更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。因为视图是一个虚
    拟的表,其中没有数据。通过视图更新时,都是转换基本表来更新。更新视图时,只能更新权限范围内的数据。
    超出了范围,就不能更新。

    6.1 插入(INSERT)

    INSERT INTO v1 VALUES(NULL,'java good',120,'feng',1);


    6.2 更新(UPDATE)

    UPDATE v1 SET bookName='java very good',price=200 WHERE id=5;


    6.3 删除(DELETE)

    DELETE FROM v1 WHERE id=5;


    第七节:删除视图

    删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据;
    DROP VIEW [ IF EXISTS ] 视图名列表[ RESTRICT | CASCADE ]

    DROP VIEW IF EXISTS v4;

  • 相关阅读:
    [转载]oracle 存储过程的基本语法及注意事项
    [转载]Oracle常用函数大全
    [转载]Java编程思想:面向对象的逻辑思维方法
    [转载]细说Java反射
    [转载]一位大学老师写给大学新生的100条肺腑之言
    [转载]学习java30条基本的概念
    [转载]细说Java反射
    [转载]Java编程思想:面向对象的逻辑思维方法
    Item 38. 异常安全之公理(Exception Safety Axioms)
    Item 36. ClassSpecific Memory Management
  • 原文地址:https://www.cnblogs.com/zhaojiatao/p/7645788.html
Copyright © 2011-2022 走看看