--获取当前时间 前一天的时间 interaval 后面参数是几 代表前几天
date(DATE_SUB(NOW(),INTERVAL 1 DAY);
-- 转码
CAST(countreg as char)
CAST(CONCAT('"+download+"',adid) as char) as apk
-- 不改变现有数组的情况下 连接两个或多个数组 返回 组成之后新的数组
CONCAT()
CONCAT(CONVERT(a.adid,char))
-- mysql case 语句
case when then when then else end
-- 查询为数字的列
select * from visitlog where LENGTH(0+adid)=LENGTH(adid)
-- 查询前一天的数据
select * from visitorlogs where date(firsttime)=date(DATE_ADD(now(),INTERVAL -1 day));
-- 查询重复数据
select user_name,count(*) as count from user_table group by user_name having count>1;
-- dos环境下中文乱码
set character_set_results=gb2312;
--如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2。
IFNULL(expr1,expr2)
-- 截取字符串 1. 要截取的字符串 2. 截取条件 3. 出现的位置 正数 从左往右截 负数 从右往左截
substring_index ('要截取的字符串','.',2);
--当插入数据时,如出现错误时,如重复数据,将不返回错误,只以警告形式返回。
--所以使用ignore请确保语句本身没有问题,否则也会被忽略掉
insert ignore into
-- 导出数据库
mysqldump -u(username) -p(password) (dbname) > (路径加文件名).sql
-- 将表一数据导入到表二中 两张表的字段要一致
insert into table2 ('字段1','字段2') select 字段1 , 字段2 from table1 ;
-- 如果数据存在 执行更新操作 如果不存在执行插入
REPLACE INTO ext (extid,noid,key1,value1) VALUES +values+ ;
insert into visitlog (imei ,imsi, plat, version,visitdate ,jspname,adid,count) values "
+ " (?,?,?,?,?,?,?,1) on "
+ " duplicate key update count=count+1
-- 设置权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ' pwd' WITH GRANT OPTION;
flush privileges;
-- 分组后显示每组的几条数据
select a.fdid , a.adid , a.apk , a.pkgName , a.name from
(select t1.*,(select count(*)+1 from recommend where fdid=t1.fdid and rid
where a.group_id<=5
select * from (
select localdate , userid , sum(amount) as amount from tab_pay_order where localdate between '20180320' and '20180325' group by
userid , localdate order by localdate , amount desc
) as a left join
(
select localdate , userid , sum(amount) as amount from tab_pay_order where localdate between '20180320' and '20180325' group by
userid , localdate order by localdate , amount desc
) as b on a.localdate=b.localdate and a.amount<=b.amount group by a.localdate , a.userid , a.amount
having count(1)<=3 order by a.localdate , a.amount desc;
-- 分组查询 显示日期最小的数据
select idfa,devicetoken,idfv,dcode , min(regdate) as date from romuse GROUP BY idfa,devicetoken,idfv,dcode order by date(regdate)
delete from iappleapp where type=2 and
id not in ( select id from ( select max(id) as id , count(1) as count from iappleapp where type=2 group by appname ORDER BY count desc) as b );
-- 将本地txt文件 以命令的形式 保存到数据库中
mysql -uroot -p20110725 lock[数据库名称] -e "load data local infile 'd:/zfy4.txt' into table pm_clientlog_w6(表明) fields terminated by '|' (imei,imsi,regdate,jspfile,packageid,plat,version)"
-- 删除重复数据
delete from game where id in
(select id from (select max(id) as id,count(title) as count
from game group by title having count >1 order by count desc) as tab )
alter table [biaoming] add [ziduanming] [leixing](length)
alter table isapp modify column appname varchar(50) ;
-- 获取当前日期
select curdate();
-- 获取当月最后一天。
select last_day(curdate());
-- 获取本月第一天
select DATE_ADD(curdate(),interval -day(curdate())+1 day);
-- 获取下个月的第一天
select date_add(curdate()-day(curdate())+1,interval 1 month);
-- 获取当前月的天数
select DATEDIFF(date_add(curdate()-day(curdate())+1,interval 1 month ),DATE_ADD(curdate(),interval -day(curdate())+1 day)) from dual;
-- 将查询结果保存到本地txt文件
/usr/local/mysql/bin/mysql -h romherom3.mysql.rds.aliyuncs.com -uuser_romhe -ppasswd_20110725 rom3 -e "select concat(imei,','),null,concat(',',imsi,','),null,concat(',',plat,','),null,concat(',',regdate) from rom_user where date(regdate)>=date('2014-10-01') and soid >='200188003000868' and soid<='200188003001087' ">/home/webs/meng.txt
mysql -h rdsk5j61yfna0312q977.mysql.rds.aliyuncs.com -uappstoreljd -pljd20151123 appstore -e "select idfa from iosrecimeisad where adid='876336838'">/alidata1/linshi/zfy/ximalaya.txt
/usr/local/mysql/bin/mysql -hrds32m2q332m2q3.mysql.rds.aliyuncs.com -uappstore -pdelong20110725 appstore -e "select * from iosuser_old">/home/webs/zfy/iosold.txt
-- 查询指定数据库有多少张表 appstore 为要查询的数据库
SELECT count(*) TABLES, table_schema FROM information_schema.TABLES where table_schema = 'appstore' GROUP BY table_schema;
ALTER TABLE `iosappcheck` ADD COLUMN `registerdate` varchar(255) NULL COMMENT '苹果账号注册时间';
--删除计划任务
DROP EVENT e_test_insert (计划任务名称)
--当然前提是这个事件存在,否则会产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS
--DROP EVENT IF EXISTS e_test;
--停止计划任务
ALTER EVENT e_test_insert (计划任务名称) DISABLE;
--开始事件
ALTER EVENT e_test ENABLE(计划任务名称);
1. hash索引查找数据基本上能一次定位数据,当然有大量碰撞的话性能也会下降。而btree索引就得在节点上挨着查找了,很明显在数据精确查找方面hash索引的效率是要高于btree的;
2. 那么不精确查找呢,也很明显,因为hash算法是基于等值计算的,所以对于“like”等范围查找hash索引无效,不支持;
3. 对于btree支持的联合索引的最优前缀,hash也是无法支持的,联合索引中的字段要么全用要么全不用;
4. hash不支持索引排序,索引值和计算出来的hash值大小并不一定一致。
-- MySQL 添加列,修改列,删除列
ALTER TABLE:添加,修改,删除表的列,约束等表的定义。
查看列:
desc [表名];
修改表名:
alter table [t_book] rename to [bbb];
添加列:
alter table 表名 add column 列名 varchar(30);
删除列:alter table 表名 drop column 列名;
修改列名MySQL: alter table bbb change nnnnn hh int;
修改列名SQLServer:exec sp_rename't_student.name','nn','column';
修改列名Oracle:lter table bbb rename column nnnnn to hh int;
修改列属性:alter table t_book modify name varchar(22);
sp_rename:SQLServer 内置的存储过程,用与修改表的定义。
--MySQL 查看约束,添加约束,删除约束 添加列,修改列,删除列
查看表的字段信息:desc 表名;
查看表的所有信息:show create table 表名;
添加主键约束:
alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段);
添加外键约束:
alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
删除主键约束:
alter table 表名 drop primary key;
删除外键约束:
alter table 表名 drop foreign key 外键(区分大小写);
修改表名:
alter table t_book rename to bbb;
添加列:
alter table 表名 add column 列名 varchar(30);
删除列:
alter table 表名 drop column 列名;
修改列名MySQL:
alter table bbb change nnnnn hh int;
修改列名SQLServer:
exec sp_rename't_student.name','nn','column';
修改列名Oracle:
alter table bbb rename column nnnnn to hh int;
修改列属性:
alter table t_book modify name varchar(22);
sp_rename:SQLServer 内置的存储过程,用与修改表的定义。