<<MYSQL从零开始>>笔记--对<<MYSQL必知必会>>补充
一、查看数据库支持的引擎(同时查看关于对应引擎的一些功能支持)
1)、MyISAM
2)、InnoDB
3)、desc/describe/show create table (查看相关建表语句)
二、表结构操作
1)、修改字段名称
2)、添加字段
3)、删除字段
4)、修改字段位置
5)、修改表引擎
6)、删除表
三、索引
1)、类型:一般为两种 – BTREE、HASH
一般MyISAM与InnDB为BTREE,Memory可为HASH与BTREE
2)、索引的设计原则
3)、索引创建
1、创建一般索引
2、创建唯一索引
3、创建组合索引(注意组合索引使用的最左匹配原则)
4、全文索引(主要是前面添加 fulltext,前面唯一索引是添加unique)
4)、创建表后通过修改添加索引
1、第一种写法
2、第二种写法
5)、删除索引
1、第一种
2、第二种
6)、创建短索引(在创建的时候为字段添加长短)
7)、查看表已创建索引
8)、explain(查看索引的使用情况)
通过这里的explain与前面show index的对照,我猜下这里关于组合索引的最左匹配原则(因为关于一些知识点我喜欢进行逻辑自洽的理解)。这里关于where条件的处理,应该首先是通过where后面的初始,去索引里面查(因为我们通过show index查看,组合索引的每个字段其实是分开的,通过Sql_in_index,来看其顺序),所以如果只有一个字段,首先根据字段名以及其是where参数位置,其在索引信息就通过Sql_in_index=1 + Column_name=xxx这种组合来查,当然以上纯属猜测。
四、存储过程与函数
1)、存储过程定义
2)、变量定义
3)、定义条件及处理程序
1、先直接看一个对比demo,有个基本了解
这里我们可以看到插入重复数据的错误状态码是 1062(23000),而我们定义的declare 是continue,这个就表示如果出现这种状态也继续执行,所以@x1是为2。
这里我们再将continue改为另一种值(exit)可以看到,现在@x1=1,表明发生23000这种状态错误的时候,就不继续执行了。
2、具体介绍
4)、流程控制
1、if用法
2、case用法
3、loop用法
4、iterate用法