zoukankan      html  css  js  c++  java
  • MariaDB学习笔记(二)

    七 索引
    索引:索引是创建在表上的,是对数据库表中的一列或多列的值进行排序的一种结构。索引可以提高查询的速度。
    索引有两种存储类型:
      B型树索引
      哈希索引
    I  nnoDB和MyISAM支持B型树索引,MEMORY支持哈希和B型树索引,默认为前者
    索引的优点:可以提高检索数据的速度
    索引的缺点:创建个维护索引需要消耗时间;索引会影响插入记录的速度

    索引的分类
      普通索引
      唯一性索引 UNIQUE
      全文索引 FULLTEXT
      单列索引
      多列索引
      空间索引

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

      创建普通索引:
      >create table index1(id int,
                name VARCHAR(20),
                sex BOOLEAN,
                INDEX index1_id(id) //INDEX 别名(属性名)
                );
      创建唯一性索引:
      >create table index2(id int,
                name VARCHAR(20),
                sex BOOLEAN,
                UNIQUE INDEX index2_id(id ASC) //UNIQUE INDEX 别名(属性名 升序)
                );
      创建全文索引:只能创建在CHAE VARCHAR TEXT类型的字段上,且存储引擎为MyISAM
      >create table index3(id int,
                info VARCHAR(20)
                FULLTEXT INDEX index3_info(info)
                ); ENGINE=MyISAM
      创建单列引擎:
      >create table index4(id int,
                subject VARCHAR(20)
                INDEX index4_st(subject(10)
                );
      创建多列索引
      >create table index5(id int,
                name VARCHAR(20),
                sex BOOLEAN,
                INDEX index5_ns(name,sex),
                );
      在已经存在的表上创建索引
        >CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 ON 表名 (属性名 [(长度)] [ASC|DESC]);
      用ALTER TABLE语句创建索引
        >ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (属性名 [(长度)] [ASC|DESC]);
    删除索引
      >DROP INDEX 索引名 ON 表名;

    八 视图
    视图是从一个或多个表中导出来的表,是一种虚拟存在的表。数据库中只存放了视图的定义,并没有存放视图中的数据。
    视图的作用:
      1.使操作简单化2.增加数据的安全性3.提高表的逻辑独立性
    创建视图的语法
    >CREATE [ALGORUTHM={UNDEFINED|MERGE|TEMPTABLE}] VIEW 视图名 [(属性清单)] AS SELECT语句 [WITH [CASCADED|LOCAL] CHECK OPTION];
    参数说明:
      ALGORITHM表示视图选择的算法(可选参数)
      UNDEFINED:MySQL将自动选择所要使用的算法
      MERGE:将视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分
      TEMPTABLE:将视图的结果存入临时表,然后使用临时表执行语句
      视图名表示要创建的视图的名称
      属性清单表示视图中的列名,默认与SELECT查询结果中的列名相同(可选参数)
      WITH CHECK OPTION表示更新视图时要保证在该试图的权限范围之内(可选参数)
      CASCADED:更新视图时要满足所有相关视图和表的条件
      LOCAL:更新视图时,要满足该视图本身定义的条件即可
    tips:创建试图时最好加上WITH CASCADED CHECK OPTION参数,这种方式比较严格,可以保证数据的安全性

    在单表上创建视图
    >create view mysql_users as select user from user;
    >create view user_passwd(user,passswd) as select user,password from user;
    查看视图
    >DESCRIBE 视图名;
    >SHOW TABLE STATUS LIKE ‘视图名’ G;
    >SHOW CREATE VIEW 视图名;
    修改视图
    >CREATE OR REPLACE [ALGORUTHM={UNDEFINED|MERGE|TEMPTABLE}] VIEW 视图名 [(属性清单)] AS SELECT语句 [WITH [CASCADED|LOCAL] CHECK OPTION];
    >ALTER [ALGORUTHM={UNDEFINED|MERGE|TEMPTABLE}] VIEW 视图名 [(属性清单)] AS SELECT语句 [WITH [CASCADED|LOCAL] CHECK OPTION];
    视图更新 --通过视图更改原表中的值
    >UPDATE 视图名 SET 属性1='值1',属性2='值2';
    删除视图
    >DROP VIEW [IF EXISTS] 视图名,视图名 [RESTRICT|CASCADE];

    九 触发器
    触发器是由INSERT、UPDATE和DELETE等时间来触发的某种特定操作
    创建触发器
    >CREATE TIGGER 触发器名 BEFORE|AFTER 触发事件 ON 表名 FOR EACH ROW 执行语句
    >CREATE TIGGER 触发器名 BEFORE|AFTER 触发事件 ON 表名 FOR EACH ROW BEGIN 执行语句1,执行语句2 END 
    查看触发器
    >SHOW TRIGGERS G;
    触发器执行的顺序
      BEFORE触发器、表操作、AFTER 触发器
    删除触发器
    >DROP TRIGGER 触发器名;
    TIPS:创建包含多个执行语句的触发器之前,先执行DELIMITER && 把SQL语句结束标志改掉,改回来执行DELIMITER ;

  • 相关阅读:
    前端开发:如何正确地跨端?
    开源微服务运行时 Dapr 发布 1.0 版本
    Flink 如何实时分析 Iceberg 数据湖的 CDC 数据
    为了让你在“口袋奇兵”聊遍全球,Serverless 做了什么?
    Serverless 如何在阿里巴巴实现规模化落地?
    altas(ajax)控件(十三):悬浮菜单HoverMenu
    MasterPage嵌套及MasterPage中的控件和变量的访问
    Linux下将CD音乐提取为mp3的方法和中文乱码问题的解决
    altas(ajax)控件(十四):为下拉控件添加快捷键查找功能的ListSearchExtender
    在atlas(ajax)中请不要使用Response.Write,请使用ClientScript.RegisterClientScriptBlock替换
  • 原文地址:https://www.cnblogs.com/gaoyuanzhi/p/8065987.html
Copyright © 2011-2022 走看看