终于有时间可以整理一下工作中常用的sql语句,基本的sql语句及增删改查就不说了。对于测试而言,经常用到的还是造数据,取随机数据和查询。比如造数据时,为了确保数据真实性,可能时间是随机的,用户是随机的。对null值得处理和update。下面列出我工作中使用较多的一些sql使用技巧,希望能帮助到大家。
时间处理
  1. select UNIX_TIMESTAMP(NOW()); -- 将时间转换为时间戳 1518428395
  2. select FROM_UNIXTIME(1518428166); -- 将时间戳转换为时间 2018-02-12 17:36:06
  3. select FROM_UNIXTIME(1518428166,'%Y-%m-%d') -- 2018-02-12
  4. SELECT STR_TO_DATE(NOW(),'%Y-%m-%d'); -- 2018-02-12 java代码调用会出错
  5. SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %k:%i:%s'); -- 2018-02-12 17:44:33
  6. select date_format(DATE_SUB(NOW(),INTERVAL +1 DAY), '%Y%m%d') -- 20180211 +为减去多少天 -为加多少天
    SELECT DATE_SUB(CURDATE(),INTERVAL -1 DAY); -- 2018-02-13

随机数

  1. set @min=1;
  2. set @max =3;
  3. select FLOOR(RAND() * @max-@min+1)+@min; -- 返回1-3之间的随机数
  4.  
  5. select FLOOR(RAND() * 56); -- 产生0-56的随机整数数
  6. SELECT FORMAT(rand()*55,2); -- 0-55随机数,保留2位小数

小数处理

  1. SELECT FORMAT(22.6655,2); -- 四舍五入 保留2位小数
  2. SELECT truncate(1.228,2); -- 只舍不入 保留2位小数

UNION和 UNION ALL区别

  1. select 'a1','a2' FROM DUAL UNION -- 会合并成1条数据 结果1
  2. select 'a1','a2' from DUAL;
  3.  
  4. select 'a1','a2' FROM DUAL UNION ALL -- 不会合并 还是2条数据 结果2
  5. select 'a1','a2' from DUAL;

 其他使用技巧

  1. select 53+IFNULL(NULL,0);-- IFNULL 返回53
  2. -- case WHEN
  3. 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
  4. -- IFNULL(expr1,expr2)
  5. 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

  1. update t_user_game_binding t set t.member_uid = (select uid from t_mer where channel_id = t.chl_id limit 1);
  2. -- 比上面那个高效
  3. 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

  1. -- insert包含join
  2. INSERT INTO t_user_game_binding_1 (user_id,outter_game_id,chl_id,member_uid)
  3. 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;
  4.  
  5. INSERT ignore t_user_game_binding_1…… -- 忽略错误
  6. -- 根据条件insert insert into ... select ..from dual where EXISTS ()
  7. 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
  1.  

 其他使用技巧

  1. http://www.jb51.net/article/42229.htm 随机取数据
  1. -- 随机排序
  2. SELECT * FROM t_game ORDER BY RAND() LIMIT 1;
  3.  
  4. select CONCAT('a','','') -- 返回 a1112
  5.  
  6. select * from t_user_register_chl t where t.user_register_chl =1 and user_register_account REGEXP '^[a-z].*$' -- 正则表达式匹配
  1. -- 正数 负数转换
  2. select -1*55,ABS(-11);
  3. -- 向前补位 0001
  4. select LPAD('',3,0);
  5. -- 向后补位 1000
  6. select RPAD('',3,0);

修改DDL

  1. alter table tableName modify column redeem_code VARCHAR(500) NOT NULL DEFAULT '' COMMENT '兑换码'; -- 修改字段长度
  2. alter table t_user_checked_record ADD id BIGINT auto_increment primary key; -- 增加自增列

mysql 性能分析 EXPLAIN 

https://www.cnblogs.com/EasonJim/p/8108040.html

  1. EXPLAIN select * from user_base_info t where uid='';
  1. -- 设置cache大小
  2. SET GLOBAL max_binlog_cache_size =1009715200;
  3. SET GLOBAL binlog_cache_size =1009715200;
  1. -- select into 一定要初始化变量
  2. SET @id = NULL;
  3. SET @n = NULL;
  4. select game_id,outter_game_id INTO @id,@n from t_game where game_id%5=0 limit 1;
  5. select @id,@n;

关于教程:http://www.w3school.com.cn/sql/index.asp

MYSQL 测试常用语句使用技巧的更多相关文章

  1. DBA必备:MySQL数据库常用操作和技巧

    DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...

  2. mysql的常用语句

    Mysql的常用语句 -- 创建表 create table tableName( id int primary key, name varchar(20) ) -- 查询 select * from ...

  3. mysql数据库常用语句2

    关于mysql常用语句的整理,上一篇涉及到ddl.dml以及一些简单的查询语句. 1:mysql分页查询 select * from table_name limit 5,10;   从下标为5元素查 ...

  4. mysql数据库常用语句

    关于mysql数据库常用命令的整理: 一:对于数据库的操作 show databases;显示当前用户下所有的数据库名称 use database_name;进入当前数据库 create databa ...

  5. MySQL:常用语句

    ylbtech-MySQL:常用语句 1.返回顶部 1. -- ---------------------------- -- Table structure for st_student -- -- ...

  6. MySQL数据库常用操作和技巧

    MySQL数据库可以说是DBA们最常见和常用的数据库之一,MySQL的广泛应用,也使更多的人加入到学习它的行列之中.下面是老MySQL DBA总结的MySQL数据库最常见和最常使用的一些经验和技巧,分 ...

  7. mysql sql常用语句大全

    SQL执行一次INSERT INTO查询,插入多行记录 insert into test.person(number,name,birthday) values(5,'cxx5',now()),(6, ...

  8. mysql数据库常用语句3

    一:查询指定数据库中所有的表名 数据库名:test select table_name from information_schema.tables where table_schema='test' ...

  9. MySql中常用语句

    1.查询语句: SELECT  查询字段  FROM  表名   WHERE 条件 查询字段可以使用 通配符* 字段名 别名(把长的名字命名一个别名,比较短的) 通配符:SELECT * FROM ' ...

随机推荐

  1. Cucumber 使用例子

    1. junit 配置 @RunWith(Cucumber.class) @CucumberOptions(format ={"pretty","html:target/ ...

  2. 5.Python使用最新爬虫工具requests-html

    1.安装,在命令行输入:pip install requests-html,安装成功后,在Pycharm引入即可. 2.代码如下所示: from requests_html import HTMLSe ...

  3. Zen Coding改名Emmet-功能更智能化

    早在2009年,谢尔盖Chikuyonok写了一篇文章,提出了一种新的编写HTML和CSS代码的方式.这一革命性的插件,被称为zen coding,多年来已帮助许多开发人员,现在已达到一个新的水平. ...

  4. Xbox360游戏收藏

    xbox360游戏下载地址 http://dl.3dmgame.com/SoftList_221.html   XBLA游戏总结.http://tieba.baidu.com/p/3174478602 ...

  5. java代码FileInputStream的复制粘贴练习

    所有的输入输出流都是对于程序来说的,这个图是实现文件内容的复制粘贴功能的e 首先把文件读到哦程序里,然后把程序读出到文件l package com.a.b; //这个复制和粘贴-----------首 ...

  6. 条件随机场(CRF)-基础

    条件随机场(conditional random fields,简称 CRF,或CRFs)下文简称CRF,是一种典型的判别模型,相比隐马尔可夫模型可以没有很强的假设存在,在分词.词性标注.命名实体识别 ...

  7. c++ 先序构建二叉树

    二叉树首先要解决构建问题,才能考虑后续的遍历,这里贴出通过先序构建二叉树,同时包含四种二叉树的遍历方法(先序,中序,后序,逐层) 第一.定义BinaryTreeNode 类 #include < ...

  8. 匿名方法,lambad表达式,匿名类

    其实lambad表达式就是“函数”或者说是“方法”写法的一个进化,越来越简化而已,如数学方法里的f(X). 匿名方法:顾名思义,匿名方法就是没有名称的方法,但是有定义参数. 匿名方法最明显的好处就是可 ...

  9. OD 快捷键

    F3 为加载一个可执行程序,进行调试分析 F2 为下断点 下完断点后,地址变为红色的 程序执行到断点处的时候会停下来 取消断点也是 F2 F4 为把程序执行到光标所在处 如果光标所在的位置在断点处之后 ...

  10. 浏览器及CURL代理设置

    需要代理的请求 代理服务器及端口 120.197.233.205 80 firefox为例浏览器代理设置:(浏览器端也可以通过foxyproxy插件方便设置) 选项->高级->网络-> ...