MySQL数据库存储引擎、索引、视图、触发器

1、查看MySQL数据库支持的存储引擎类型:show engines;

1.1 InnoDB存储引擎:InnoDB存储引擎支持事务处理,支持外键。同时支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高,要求实现并发控制,那选择InnoDB存储引擎有其很大的优势。如果需要频繁的进行更新、删除操作的数据库,也可以选择InnoDB存储引擎。因为该类存储引擎可以实现事务的提交(Commit)和回滚(Rollback)。

1.2 MyISAM存储引擎:MySAM存储引擎的插入数据快,空间和内存使用比较低。如果表主要是用于插入新纪录和读出记录,那么选择MySAM存储引擎能实现处理的高效率。如果应用的完整性、并发性要求很低,也可以选择MySAM存储引擎。

1.3 MEMORY存储引擎:MEMORY存储引擎的所有数据都在内存中,数据的处理速度快,但安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMORY存储引擎。MEMORY存储引擎对表的大小有要求,不能建立太大的表。所以这类数据库只是用与相对较小的数据库表。

       注:同一个数据库中可以使用多种存储引擎的表。如果一个表要求较高的事务处理,可以选择InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储引擎。如果需要该数据库中需要一个用于查询的临时表,可以选择MEMORY存储引擎。

2、索引:普通索引、唯一性索引、全文索引、单列索引、多列索引、空间索引

2.1 创建表的时候创建索引:create table 表名(属性名 数据类型 [完整性约束条件],

                                                                          属性名 数据类型 [完整性约束条件],

                                                                          ......
                                                                          属性名 数据类型  
                                                                          [ UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY 

                                                                          [别名]  ( 属性名1  [(长度)]  [ ASC | DESC])

                                                                         );

       注:UNIQUE是可选参数,表示索引为唯一性索引;FULLTEXT是可选参数,表示索引为全文索引;SPATIAL也是可选参数,表示索引为空间索引;INDEX和KEY参数用来指定字段为索引的,两者选择其中之一就可以了,作用是一样的;"别名"是可选参数,用来给创建的索引取的新名称;"属性1"参数指定索引对应的字段的名称,该字段必须为前面定义好的字段;"长度"是可选参数,其指索引的长度,必须是字符串类型才可以使用;"ASC"和"DESC"都是可选参数,"ASC"参数表示升序排列,"DESC"参数表示降序排列。

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

(1)creat语句: create [unique | fulltext | spatial] index 索引名

                             on 表名(属性名 [(长度)] [asc | desc]);

(2)alter table语句:alter table 表名 add [unique | fulltext | spatial] index

                                    索引名 (属性名 [(长度)] [asc | desc]);

2.3 删除索引:drop index 索引名 on 表名;

3、视图

3.1 创建视图

(1)创建视图:create [algorithm = {undefined | merge | temptable}]

                            view 视图名 [(属性清单)]

                            as select语句

                            [with [cascaded | local] check option];

(2)在单表上创建视图:create view 视图名 as select* from 表名;

(3)在多表上创建视图:create algorithm=merge view

                                          视图名 (name,表名1,sex,age,address)

                                          as select name,表名1.d_name,sex,2009-birthday,address

                                          from 表名2,表名1 where 表名2.d_id=表名1.d_id

                                          with local check option;

3.2 查看视图:describe语句、show table status语句、show create view语句、查询information_schema数据库下的views

(1)describe语句:describe 视图名;(describe语句可以查看视图的基本定义,describe语句查看视图的基本形式与查看表的形式一样)

(2)show table status语句:show table status like '视图名';(show table status语句可以查看视图的基本信息)

(3)show create view语句:show create view 视图名;(show create view语句可以查看视图的详细定义)

(4)在views表中查看视图详细信息:select* from information_schema.views;

3.3 修改视图

(1)create or replace view语句:create or replace [algorithm = {undefined | merge | temptable}]

                                                        view 视图名 [(属性清单)]

                                                        as select语句

                                                        [with [cascaded | local] check option];

           注:在视图已经存在的情况下,对视图进行修改;视图不存在时,可以直接创建视图。

(2)alter语句:alter [algorithm = {undefined | megre | temptable}]                  

                           view 视图名 [(属性清单)]

                           as select语句

                           [with [cascaded | local] check option];

3.4 更新视图:转换到基本表来更新视图。更新视图时,只能更新权限范围内的数据。

3.5 删除视图:drop view [if exists] 视图名列表 [restrict | cascade];

4、触发器

4.1 创建触发器

(1)创建只有一个执行语句的触发器:create trigger 触发器名 before | after 触发事件

                                                               on 表名 for each row 执行语句;

(2)创建有多个执行语句的触发器:create trigger 触发器名 before | after 触发事件

                                                            on 表名 for each row begin 执行语句列表 end;

4.2 查看触发器

(1)show triggers语句:show triggers;

(2)在triggers表中查看触发器信息:select* from information_schema.triggers;

4.3 删除触发器:drop trigger 触发器名;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只小菜鸟~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值