1,MySQL表复制
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 procedure p1()
begin
set @i=0;
while @i<10000 do
insert into t1 value (@i); #t1表仅有一个字段id 从0递增插入
set @i=@i+1;
end while
end //
更改回sql结束符为;
mysql> \d ;
调用并执行存储
mysql> call p1();
删除存储p1
mysql> drop procedure p1;
7,MySQL触发器示例
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清空表
(责任编辑:IT) |