/* Mysql基础操作(优化) @auther: luowen @time: 2013-07-26 1.mysql复制表机构和表数据 create table t1 like t2; insert into t1 select * from t2; 2.mysql创建索引 method 1: increate [unique] [index] [primary key] indexName on t1(name); show index from t1; drop index [unique] [index] [primary key]indexName on t1; method 2: alter table t1 add [index][unique][primary key] indexName (column); alter table t1 drop [index][unique][primary key] indexName; 3.mysql 视图 create view v_t1 as select * from t1 where id > 3; drop view v_t1; 4.mysql 内置函数 [字符串函数] 1.连接函数 concat select concat('luowe','wen') as luowen; 2.大小写转换 lcase select lcase('SDFSADF') as demo ucase select ucase('asdfsadf') as demo2 3.长度 length length select length('sdfsadfsadf'); 4.去空 ltrim select ltrim(' sadfsdf') rtrim select rtrim('asdfsaf ') 5.重复 repleat select repleat('xx',10) 6.替代 replace select replace('linux is very good','linux','php') ; 7.截取 substr select substr('linux is very good',pos,length); // pos 是从1开始 8.生成空格 space select space(10); select concat(space(10),'linux'); //在linux左侧添加了10个空格 [数学函数] 1.二进制函数 bin select bin(10); 2.取整 ceiling select ceiling(2.5) //3 floor select floor(2.5) //2 3.最大最小 max max(col); //聚合使用 min min(col); 4.平方根 sqrt select sqrt(2); 5.随机数 rand select rand(count); //count 选出几个 配合order by 可是实现随机排序 [日期函数] 1.curdate //当前时间 2.curtime 3.now(); 4.unix_timestamp 5.week 6.year 7.datediff('日期1','日期2') //计算中间差了几天 5: mysql 的预处理 prepare preTable from "select * from t2 where id > ?"; set @i=3; execute preTable using @i; //@i替代了prepare 语句中的?号 drop prepare preTable //删除预处理 6:mysql 事务(MyISAM不支持事务,innoDB支持) set autocommit = 0; //打开事务 //alter table t2 engine innodb;//修改表引擎 delete from t2 where id < 1; savepoint p1 delect form t2 where id < 3; savepoint p2; rollback to p2 //还原到p2的点 rollback //回滚 commit //提交 7:mysql 存储 procedure //一个小段的程序 d // //将存储设置定界符 create procedure p1() begin set @i = 3 while @i <= 100 do insert into t2(name) values(concat('user',@i)); end while; end// show create procedure p2 //查看存储 call p2 //呼叫执行p2 drop prcedure p2 8:mysql 触发器 trigger d // //修改定界符 create trigger tg1 before insert on t1 for each row begin insert into t2(id) value(new.id); end 9:auto_increment 恢复1 truncate table; //已经恢复1 delete from table //没有恢复 alter table auto_increment = 1;