美文网首页
常用语句

常用语句

作者: 如雨随行2020 | 来源:发表于2022-01-24 01:11 被阅读0次

--重置mysql的表id,id从0开始自增
--方法一:

delete from tb1; 
ALTER TABLE tbl AUTO_INCREMENT = 100; 

-- 方法二:

truncate tb1;

--获取当前auto_increment

select table_name, table_comment, auto_increment from information_schema.tables where table_name = 'devices';

--获取表信息

desc information_schema.tables;

--指定使用数据库

use testdb;

--获取数据库所有表名

show tables;

-- 数据量太大导致(2006, 'MySQL server has gone away')
-- 查询max_allowed_packet大小

show VARIABLES like '%max_allowed_packet%';

-- 修改max_allowed_packet(20m),重启mysql服务,再进入
set global max_allowed_packet = 2010241024

--插入数据,主键重复
-- 与phoenix的直接覆盖不同,mysql会报错(1062 - Duplicate entry '40' for key 'PRIMARY')
-- 方法一
-- 用insert ignore代替insert,这样会忽略报错,也不会修改
--方法二
--用replace代替insert,重复会覆盖,相当与delete和insert两条语句的效果,但却是原子的。

--日期(毫秒比较)
--先设置datetime的长度设置为3,然后按照直接把datetime看出字符串处理

select * from tb where addtime = '2019-08-20 10:35:25.125';

--大于,小于也是可以的,between and区间是闭区间(可以选到等于两端的)。

select * from tb where addtime between '2019-08-20 09:06:08.615' and '2019-08-20 09:06:10.615';

--另外,获取系统时间(毫秒)

select now(3);
select current_timestamp(3);

--关于datetime和timestamp
--timestamp只能到2038年,并且和时区相关,占4个字节,效率更高。
--datetime能到9999年,和时区无关,占8个字节,效率较低。
--尽量使用datetime

--格式化打印日期类型

select date_format(addtime, '%Y-%m-%d %T') from teacher; --精确到秒
select date_format(addtime, '%Y-%m-%d %T.%f') from teacher; --精确到微秒

--所以时间比较也可以用

select * from tb where addtime = str_to_date('2019-08-20 09:06:08.615', '%Y-%m-%d %T.%f');

--时间加减

update tb set addtime = addtime + id; --错误

--如果不涉及进位和借位时是正确的,否则结果就是'0000-00-00 00:00:00';
正确做法应该是

update set addtime=date_add(addtime, interval id second)

--把second换成microsecond就是加1微秒;
--date_sub就是相应的减。

相关文章

网友评论

      本文标题:常用语句

      本文链接:https://www.haomeiwen.com/subject/jzeraltx.html