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 触发器名;