MYSQL 测试常用语句使用技巧
select UNIX_TIMESTAMP(NOW()); -- 将时间转换为时间戳 1518428395
select FROM_UNIXTIME(1518428166); -- 将时间戳转换为时间 2018-02-12 17:36:06
select FROM_UNIXTIME(1518428166,'%Y-%m-%d') -- 2018-02-12
SELECT STR_TO_DATE(NOW(),'%Y-%m-%d'); -- 2018-02-12 java代码调用会出错
SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %k:%i:%s'); -- 2018-02-12 17:44:33
select date_format(DATE_SUB(NOW(),INTERVAL +1 DAY), '%Y%m%d') -- 20180211 +为减去多少天 -为加多少天
SELECT DATE_SUB(CURDATE(),INTERVAL -1 DAY); -- 2018-02-13
随机数
set @min=1;
set @max =3;
select FLOOR(RAND() * @max-@min+1)+@min; -- 返回1-3之间的随机数 select FLOOR(RAND() * 56); -- 产生0-56的随机整数数
SELECT FORMAT(rand()*55,2); -- 0-55随机数,保留2位小数
小数处理
SELECT FORMAT(22.6655,2); -- 四舍五入 保留2位小数
SELECT truncate(1.228,2); -- 只舍不入 保留2位小数
UNION和 UNION ALL区别
select 'a1','a2' FROM DUAL UNION -- 会合并成1条数据 结果1
select 'a1','a2' from DUAL;select 'a1','a2' FROM DUAL UNION ALL -- 不会合并 还是2条数据 结果2
select 'a1','a2' from DUAL;

其他使用技巧
select 53+IFNULL(NULL,0);-- IFNULL 返回53
-- case WHEN
select uid, (CASE ISNULL(leader_uid) WHEN TRUE THEN 0 ELSE leader_uid END ) leader_uid ,channel_id from ( select uid,b.leader_uid,channel_id from t_mer a LEFT JOIN t_mer_group b on a.uid = b.member_uid) a
-- IFNULL(expr1,expr2)
select uid, IFNULL(leader_uid,0) ,channel_id from ( select uid,b.leader_uid,channel_id from t_mer a LEFT JOIN t_mer_group b on a.uid = b.member_uid) a
UPDATE
update t_user_game_binding t set t.member_uid = (select uid from t_mer where channel_id = t.chl_id limit 1);
-- 比上面那个高效
UPDATE t_user_game_binding LEFT JOIN t_mer ON t_user_game_binding.chl_id = t_mer.channel_id SET member_uid = t_mer.uid
Insert
-- insert包含join
INSERT INTO t_user_game_binding_1 (user_id,outter_game_id,chl_id,member_uid)
SELECT a.user_id,a.outter_game_id,a.chl_id,b.uid FROM t_user_game_binding a LEFT JOIN t_mer b on a.chl_id=b.channel_id; INSERT ignore t_user_game_binding_1…… -- 忽略错误
-- 根据条件insert insert into ... select ..from dual where EXISTS ()
INSERT INTO `test` (`t1`) SELECT 'x' from dual where not EXISTS (select * from test);
-- 避免插入重复的数据详情点击 https://www.cnblogs.com/duanxiaojun/p/6855680.html?utm_source=itdadao&utm_medium=referral
其他使用技巧
http://www.jb51.net/article/42229.htm 随机取数据
-- 随机排序
SELECT * FROM t_game ORDER BY RAND() LIMIT 1; select CONCAT('a','','') -- 返回 a1112 select * from t_user_register_chl t where t.user_register_chl =1 and user_register_account REGEXP '^[a-z].*$' -- 正则表达式匹配
-- 正数 负数转换
select -1*55,ABS(-11);
-- 向前补位 0001
select LPAD('',3,0);
-- 向后补位 1000
select RPAD('',3,0);
修改DDL
alter table tableName modify column redeem_code VARCHAR(500) NOT NULL DEFAULT '' COMMENT '兑换码'; -- 修改字段长度
alter table t_user_checked_record ADD id BIGINT auto_increment primary key; -- 增加自增列
mysql 性能分析 EXPLAIN
EXPLAIN select * from user_base_info t where uid='';
-- 设置cache大小
SET GLOBAL max_binlog_cache_size =1009715200;
SET GLOBAL binlog_cache_size =1009715200;
-- select into 一定要初始化变量
SET @id = NULL;
SET @n = NULL;
select game_id,outter_game_id INTO @id,@n from t_game where game_id%5=0 limit 1;
select @id,@n;
关于教程:http://www.w3school.com.cn/sql/index.asp
MYSQL 测试常用语句使用技巧的更多相关文章
- DBA必备:MySQL数据库常用操作和技巧
DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...
- mysql的常用语句
Mysql的常用语句 -- 创建表 create table tableName( id int primary key, name varchar(20) ) -- 查询 select * from ...
- mysql数据库常用语句2
关于mysql常用语句的整理,上一篇涉及到ddl.dml以及一些简单的查询语句. 1:mysql分页查询 select * from table_name limit 5,10; 从下标为5元素查 ...
- mysql数据库常用语句
关于mysql数据库常用命令的整理: 一:对于数据库的操作 show databases;显示当前用户下所有的数据库名称 use database_name;进入当前数据库 create databa ...
- MySQL:常用语句
ylbtech-MySQL:常用语句 1.返回顶部 1. -- ---------------------------- -- Table structure for st_student -- -- ...
- MySQL数据库常用操作和技巧
MySQL数据库可以说是DBA们最常见和常用的数据库之一,MySQL的广泛应用,也使更多的人加入到学习它的行列之中.下面是老MySQL DBA总结的MySQL数据库最常见和最常使用的一些经验和技巧,分 ...
- mysql sql常用语句大全
SQL执行一次INSERT INTO查询,插入多行记录 insert into test.person(number,name,birthday) values(5,'cxx5',now()),(6, ...
- mysql数据库常用语句3
一:查询指定数据库中所有的表名 数据库名:test select table_name from information_schema.tables where table_schema='test' ...
- MySql中常用语句
1.查询语句: SELECT 查询字段 FROM 表名 WHERE 条件 查询字段可以使用 通配符* 字段名 别名(把长的名字命名一个别名,比较短的) 通配符:SELECT * FROM ' ...
随机推荐
- Mybatis逆向工程配置文件详细介绍(转)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration ...
- oracle 内存分配和调优 总结
一直都想总结一下oracle内存调整方面的知识,最近正好优化一个数据库内存参数,查找一些资料并且google很多下.现在记录下来,做下备份. 一.概述: ...
- IIS6自带FTP安装及配置方法
参考:http://v.huweishen.com/video/9.html ·IIS自带的FTP服务是最安全的,不会像Serv-U那样存在各种漏洞:但其配置过程也比较复杂. ·本节将以虚拟目录方式, ...
- RK3288 HDMI配置和调试
RK3288 最大输出分辨率为 3840x2160 HDMI 驱动代码位于 kernel/drivers/video/rockchip/hdmi/rockchip-hdmiv2 目录 1.设置默认输出 ...
- 使用Docker快速搭建ELK环境
今天由于Win系统的笔记本没带回家,其次Docker在非Linux系统下都需要安装额外的软件去镜像才行 所以感觉没有差别,先直接用Mac搭建一遍呢, 本篇部分命令和配置内容为摘抄 Mac下使用Dock ...
- 1、spark集群搭建
前提:已经搭建完全分布式的Hadoop集群,请参看http://www.cnblogs.com/netbloomy/p/6660131.html 1.Scala2.12.1环境搭建 1).下载scal ...
- 2DAY初识python
一.变量 1 什么是变量之声明变量 #变量名=变量值 age=18 gender1='male' gender2='female' 2 为什么要有变量 变量作用:“变”=>变化,“量”=> ...
- 访问进程环境变量environ时的一个坑
在unistd.h中定义了变量char **environ;来表示当前所有环境变量,一般来说访问特定环境变量可以用getenv,但是想遍历所有环境变量就得使用environ. 即在程序内全局声明ext ...
- Java并发-Runnable、Callable、Future、Future Task
Runnable: Runnable的代码非常简单,他是一个接口,且接口中只有一个方法,run(),创建一个类实现他,把一些费时操作写在其中,然后使用某个线程去执行该Runnable实现类即可实现多线 ...
- ActiveMQ的多种部署方式--ActiveMQ学习之二
单点的ActiveMQ作为企业应用无法满足高可用和集群的需求,所以ActiveMQ提供了master-slave.broker cluster等多种部署方式,但通过分析多种部署方式之后我认为需要将两种 ...
select 'a1','a2' FROM DUAL UNION ALL -- 不会合并 还是2条数据 结果2