数学函数:
bin() 十进制转二进制
ceiling() 向上取整
floor 向下取整
max(num1,num2) 取最大值
min(num1,num2) 取最小值
sqrt() 开平方
rand() 返回0-1的随机值
排序点也可以order by rand() 随机的基准点
日期函数
curdate() 返回当前日期
curtime() 返回当前时间
now() 返回当前日期时间
unix_timestamp(date) 返回当前date的时间戳
from_unixtime() 返回unix时间戳的日期值
week(date) 返回date为1年中的第几周
year(date) 返回日期date的年份
datediff(expr,expr2)返回起始日期到结束日期的天数
1.5 mysql预处理语句
设置stmt1预处理 ,传递一个数据作为where判断条件
prepare stmt1 from 'select * from t1 where id>?';
set @i=1;
execute stmt1 using @i;
set @i=5;
execute stmt1 using @i;
drop prepare stmt1;
1.6 mysql事务处理
关闭自动提交功能
set atocommit=0;
做一个p1的还原点
savepoint p1;
rollback to p1
退回到原始的还原点。
myisam数据引擎不支持事物,必须为innodb 支持外键和事务
alter table t1 engine=innodb
select @@atocommit
rollback
commit 一旦提交了回滚是没有意义的。
1.7 mysql存储过程
procedure 一块代码段,函数。
\d //
create procedure p2()
begin
set @i=3;
while @i<=100 do
insert into t2(name) values(concat("user",@i));
end while
end//
\d //
\d=delimiter
call p1(); 调用mysql存储过程
1.8 mysql触发器
\d //
create trigger tg1 before insert on t1 for each row
begin
insert into t2(id) values(new,id)
end
truncate 可以重新清空 自增id
而delete不会,清空自增id
1.9 重排auto_increment值
alter table tablename auto_increment=1;