七 索引
索引:索引是创建在表上的,是对数据库表中的一列或多列的值进行排序的一种结构。索引可以提高查询的速度。
索引有两种存储类型:
  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 ;

MariaDB学习笔记(二)的更多相关文章

  1. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  2. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  3. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  4. JMX学习笔记(二)-Notification

    Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...

  5. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  6. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  7. 《SQL必知必会》学习笔记二)

    <SQL必知必会>学习笔记(二) 咱们接着上一篇的内容继续.这一篇主要回顾子查询,联合查询,复制表这三类内容. 上一部分基本上都是简单的Select查询,即从单个数据库表中检索数据的单条语 ...

  8. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  9. Learning ROS for Robotics Programming Second Edition学习笔记(二) indigo tools

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  10. Redis学习笔记二 (BitMap算法分析与BitCount语法)

    Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...

随机推荐

  1. navigate连接不上Centos7+mariadb的问题

    链接数据库时忽然遇到一个问题.Mac Navicat链接时报错Can’t connect to MySQL server on ‘xx.xx.xx.xx’ (61). PS. win版Navicat ...

  2. sendmail 出现 My unqualified host name的解决办法

    有"My unqualified host name"错误 修改/etc/hosts, 在本机的ip那一行, 在xxxhostname后面加上"  xxxhostname ...

  3. 2017ICPC沈阳赛现场赛 L-Tree (dfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6228 题目大意:给一棵树,需要用k种颜色给树上的节点染色,问你在最优的染色方案下,相同颜色的节点连接的 ...

  4. html5 jquery音乐播放器,play()和pause()不起作用

    今天在自己写的页面上加上背景音乐,当我点击图片时可以切换 播放/暂停 用jquery写的,方法总是提示没有pause这个方法! 检查了半天最后发现 你使用的是jquery选择器所以返回的是jquery ...

  5. Java类加载顺序练习题

    一.题目 public class Test { public static Test t1 = new Test();// 标记1 // 普通代码块 { System.out.println(&qu ...

  6. Exception和Error区别

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11393728.html Exception和Error都是继承了Throwable类,在Java中只有 ...

  7. vuejs如何调试代码

    基于webpack的配置调试 使用Vue-cli命令行工具初始化基于wabpack模板的项目的命令语法: npm install -g @vue/cli # 全局安装vue-cli,版本vue3.x ...

  8. Fmx在android下InputBox输入框点击Cancel取消按钮后报异常

    在网上搜索半天也没有找到相关信息,估计遇到这个问题的相当少, 解决办法: 找到FMX.Dialogs.Android.pas, 将121行中  FValues[I] := FDefaultValues ...

  9. DELPHI 10 SEATTLE 在OSX上安装PASERVER

    旧版本的DELPHI在安装目录下里的PASERVER目录有安装文件,但奇怪在这个SEATTLE上的PASERVER目录下只有一个EXE程序的安装程序​​,显然不能安装到OSX里,需要在Embarcad ...

  10. Apache Flink 为什么能够成为新一代大数据计算引擎?

    众所周知,Apache Flink(以下简称 Flink)最早诞生于欧洲,2014 年由其创始团队捐赠给 Apache 基金会.如同其他诞生之初的项目,它新鲜,它开源,它适应了快速转的世界中更重视的速 ...