2,MySQL索引操作
create index index_name on table_name (field_name);
create unique index index_name on table_name (field_name);
drop index index_name on table_name;
alter table table_name add index index_name (field_name);
alter table table_name add unique index index_name (field_name);
alter table table_name add primary key (field_name);
alter table table_name drop index index_name;
alter table table_name drop primary key;
3,MySQL创建视图
示例:mysql> create view view_name as select * from test where id > 1 and id <10;
善于使用? 可得到帮助信息,如mysql> ? view
创建完视图后,可通过mysql> show tables;查看视图,数据库存储目录中将增加一个以视图名命名的frm文件(表结构文件)
删除视图,mysql> drop view view_name;
注意:当视图所依赖的表损毁或被删除时,视图将发生错误。
4,MySQL预处理语句
mysql> prepare stm_name from 'select * from test where id > ?';
mysql> set @i=1;
mysql> execute stm_name using @i ;
mysql> set @i=5;
mysql> execute stm_name using @i ;
mysql> drop prepare stm_name;
很多更成熟的数据库都支持预处理语句的概念。什么是预处理语句?可以把它看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制。预处理语句可以带来两大好处:
5,MySQL事务处理
MySQL中InnoDB存储引擎支持事务处理,MyISAM存储引擎不支持事务机制
查看是否为自动提交模式
mysql> show variables like 'auto%';
可以看出,自动提交模式开启,关闭自动提交
mysql> set autocommit = 0;
mysql> delete from test where id = 5;
mysql> rollback;
可以看到删除的记录由于回滚操作,仍存在于表中。
设置回滚点为 p1
mysql> delete from test where id = 5;
mysql> savepoint p1;
设置回滚点为p2
mysql> delete from test where id = 6;
mysql> savepoint p2;
回滚到p1状态,此时id=6的记录被删除,id=5的记录被保留
mysql> rollback to p1;
当已确定的提交,使用commit显式提交
mysql> commit;
6,MySQL存储操作
更改sql结束符为// 或用delimiter //命令
mysql> \d //
mysql> create trigger tg1 before insert on t1 for each row
> begin
> insert into t2 values (new.id, new.name);
> end //
mysql> create trigger tg2 before delete on t1 for each row
> begin
> delete from t2 where id = old.id;
> end //
mysql> create trigger tg3 before update on t1 for each row
> begin
> update t2 set name=new.name where id=old.id;
> end //
mysql> \d ;
mysql> show triggers;
mysql> drop trigger tg1;
8,MySQL清空表