复制表结构 + 表数据 Mysql> create tables t2 like t1; Mysql> insert into t2 select * from t1;
mysql 索引 a、Alert Table 用来创建普通索引、Unique 唯一索引 (当前列数值不可重复) 或 Primary Key 主键索引 Mysql> alter table table_name add index index_name(column_list); Mysql> alter table table_name add Unique(column_list); Mysql> alter table table_name add Primary Key(column_list);
b、creat index (不可处理主键索引) Mysql> create index index_name on table_name(column_list); Mysql> create Unique index index_name on table_name(column_list);
c、drop index(不可处理主键索引) Mysql> drop index index_name on table_name;
d、alter table drop Mysql> alter table table_name drop index index_name; Mysql> alter table table_name drop primary key;
mysql 视图 创建视图 (视图可根据主表实时更新) Mysql> create view v_t1 as select * from t1 where id>4 and id <11; Mysql> show tables; Mysql> show create view v_t1; Mysql> drop view v_t1;
mysql 预处理语句 设置 stmt1 预处理,传递一个数据作为 where 判断条件 Mysql> prepare stmt1 from ‘select * from t1 where id>?‘; 设置一个变量 Mysql> set @i=5; 执行 stmt1 预处理 Mysql> execute stmt1 using @i; 删除预处理 stmt1 Mysql> drop prepare stmt1;
mysql 事务处理 (Engine=MyISAM 表引擎不支持事务机制) 查看表引擎是否支持 Mysql> show create table t1; 设置表引擎为 innodb Mysql> alter table t1 engine=innodb; 关闭自动提交功能 Mysql> set autocommit=0; 查看当前 autocommit 设置 Mysql> select @@autocommit; 提交 Mysql> commit; 从表 t1 中删除了一条记录 Mysql> delete from t1 where id =11; 此时做一个 p1 还原点 Mysql> savepoint p1; 再次从表 t1 中删除一条记录 Mysql> delete from t1 where id =10; 再次做一个 p2 还原点 Mysql> savepoint p2; 此时恢复到 p1 还原点,当然后面 p2 这些还原点自动失效 Mysql> rollback to p1; 退回到最原始的还原点 Mysql>roolback;
Mysql 触发器 修改 delimiter 为 // Mysql> \d // 例子:创建触发器 tg1,当向 t1 表插入数据时,t2 表也被插入数据 Mysql> create trigger tg1 before insert on t1 for each row ->begin ->insert into t2(name) values(new.name); ->end// Mysql> \d ; 查看触发器 Mysql> show triggers; 删除触发器 Mysql> drop trigger tg1; 创建触发器 tg2,当向 t1 表删除数据时,t2 表也被删除数据 Mysql> create trigger tg2 before delete on t1 for each row ->begin ->delete from t2 where name=old.name; ->end//
创建触发器 tg3,当向 t1 表更新数据时,t2 表也被更新数据 Mysql> create trigger tg3 before update on t1 for each row ->begin ->update t2 set name=new.name where name=old.name; ->end//
重排 auto_increment Mysql 数据库自动增长的 ID 恢复重新排序 Mysql> alter table tablename auto_increment = 1;
Other: 联合查询 Mysql> select * from t1 union select *from t2 快速删除 Mysql> truncate table tablename;