Mysql
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
官网地址:https://www.mysql.com/
备份数据
mysqldump -uroot -p --database logs > logs.sql
mysql 快速导入数百万级记录,这种方案可以节省很多时间。
mysql -uroot -p
create database dbname;
set sql_log_bin=off;
set autocommit=0;
use dbname;
start transaction;
source dbfilename;
commit;
查询用户 ID,在有规律的名称中,例如群 mKe,群 aer,等中,查找出这些群,然后取出创建者,并去重。
在这里没有使用%模糊匹配,而使用_进行匹配一个任意字符。
select distinct creater_id from group_info where name like '群___';
修改表的主键 key 自增值
alter table users auto_increment=1000;
查询用户留存率
select id,DATEDIFF(now(),ifnull(login_date,add_date)) as 'days' from user;
查询天数
select id,floor((DATEDIFF(now(),login_date))/7) as 'groupid' from user where login_date != '';
select t2.* from (select id,floor((DATEDIFF(now(),login_date))/7) as 'groupid' from user t1 where login_date != '') t2 where groupid < 2 and groupid >=1;
select id,floor(0.05) as 'groupid' from user where login_date !='';
select now from user ;
select t1.id,now() from user t1 where id = '9xxxxxxx';
查询周数
select t.weekid,count(t.id) as num from
(
select id,floor((DATEDIFF(now(),login_date))/7) as 'weekid' from user where login_date != ''
) as t
group by t.weekid
order by t.weekid
查询月数
select floor(groupid / 4) as mon,sum(num) from (
select t.groupid,count(t.id) as num from
(
select id,floor((DATEDIFF(now(),login_date))/7) as 'groupid' from user where login_date != ''
) as t
group by t.groupid
order by t.groupid
) t3
group by floor(groupid / 4)
查看视图定义者
select TABLE_SCHEMA,TABLE_NAME,DEFINER from information_schema.VIEWS;
查询待修改视图定义者,dbs@%是老的 view 定义者,app@localhost 是新的 view 定义者。
select concat("alter DEFINER=app@localhost SQL SECURITY DEFINER VIEW ",TABLE_SCHEMA,".",TABLE_NAME," as ",VIEW_DEFINITION,";") from information_schema.VIEWS where DEFINER = 'dbs@%';
在 MYSQL 命令中,再次使用得到的结果语句执行即可。