• 0
  • 0
分享

作为一名测试人,掌握数据库常用的操作不可缺少,下面就一段mysql 查询语句梳理几个相关语法知识。 

本篇文章主要包括两方面内容

  • 常用的sql语法

  • 开发代码中如何和sql进行关联

案例代码

`
select a.blastid,d.apptime,a.charge_approve,
            a.blast_batch,
            a.plan_blast_time,
            a.exe_plan_id,
            a.import_flag,
            a.rig_type,.......
            case when (select "count"(*) from bla_geology_info geo where a.blast_id=geo.blast_id and 
geo.delete_flag=0)>0
            then 'true' else 'false'  
    END as isShowFlag
    from bla_blast_info a
    left join exe_plan_month b
    on a.exe_plan_id = b.exe_plan_id
    left join sys_user c
    on a.dynamite_user = c.user_id
    left join (select blast_id,isagree,idea,create_time as app_time from bla_charge_approve where
delete_flag = '0') d
    on a.blast_id = d.blast_id
    WHERE a.blast_type = '1' AND a.blast_status > '3' AND a.blast_status < '8' AND a.charge_approve > '1' AND 
    a.delete_flag = '0' ORDER BY cast(a.charge_approve  as numeric)  ASC , d.app_time DESC , a.create_time DESC
`

一、常用的sql语法

查询语句 select xxxx  from 表名 ,表示从哪个表进行查询。其中select 后面内容以,分割。

select xxxx  from 表名 别名,表示这个表用别名替代,如上个语句中的a,b,c等;

case when then xx,else xxx ,end  as  isShowFlag表示符合when 条件执行 then 后面语句,否则执行else 后面语句,

eg 案例中case when (select "count"(*) from blageologyinfo geo where a.blastid=geo.blastid and geo.delete_flag=0)>0

then 'true' else 'false' 表示符合条件的爆破量进行上传

         end  as  isShowFlag  起的查询语句别名,后续调用的时候 使用别名名称即可。

4、left join 左连接 ,表1左连接表2,以左为主,表示以表1为主,关联上表2的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。

一句话的意思是 先取交集,再关联到左表

引申整理出几个连接的常用含义及区分 ,如下表所示:

连接类型含义案例备注
左连接(left join)首先取出a表中所有数据,然后再加上与a,b匹配的的数据select * from a left join b on a.aid = b.bid
右连接(right join)首先取出b表中所有数据,然后再加上与a,b匹配的的数据select * from a right join b on a.aid = b.bid
内连接(inner join)取出a,b匹配的的数据select * from a join b on a.aid = b.bid
左向外联接(left outer join)首先取出a表中所有数据,然后再加上与a,b匹配的的数据select * from a left join b on a.aid = b.bid等同于左连接

5、查询语句 select xxxx from 表名 where 查询条件

where 查询条件后面接所有你要查询的内容,用and连接,这里需要注意order by 使用order by 1,2,3,4 ,先1排序,1相同的情况下按照2,3,4排序

6、cast ()数据类型转换函数,文中cast(a.charge_approve as numeric) 表示将字段charge_approve 转换为数字型,以前是字符类型,字符类型的字段不可以进行排序

7、a.exe_plan_id = b.exe_plan_id 表示 a表的exe_plan_id字段和b表的exe_plan_id 字段进行绑定,可以这么理解 只有两个表绑定后才能进行相关的查询操作。

总结通用模板:

Select 字段名1,字段名2  case when  条件 then 执行语句  else 执行语句 end as 别名 from 表名 别名 left

join on 表连接(a.exe_plan_id = b.exe_plan_id)

Where 查询条件(d.app_time DESC)

二、开发代码中如何和sql进行关联

开发逻辑中有一个词‘mapper映射’,里面具体的实现不做过多赘述。

简单点的逻辑是:

用xml文件 将sql 语句的名称 和 实体名称一一映射,通过这种形式进行绑定,然后在代码中引用映射的文件名,从而实现数据查询。

上面我们通过一段sql 语句列举了 mysql 常用的语法,以及sql语句编写完成后 如何在代码中进行使用的。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 作为知名的市场颠覆者之一,亚马逊在医疗健康领域正又一次遭遇失败。最初,亚马逊与摩根大通和伯克希尔哈撒韦共同启动了Haven项目,试图对医疗系统进行改革,但很快就宣布了终止。现在,亚马逊即将关闭远程护理服务AmazonCare。这家公司致力于在美国全国范围内为雇主解决远程医疗和初级保健问题,亚马逊也曾宣传该公司的服务正赢得越来越多的客户。这些情况是否真的证明了过去多年外界的普遍观点:与大多数行业相比,医疗行业更难颠覆?或许并非如此。不过这可能释放了一个信号,表明亚马逊在医疗健康行业的策略发生了变化。关于AmazonCare的关闭,最终问题可能是个简单的选择题:大公司,尤其是那些拥有大笔现金的公司...
            0 0 785
            分享
          • 在音乐的领域中,歌词宛如璀璨的明珠,为旋律增添了无尽的魅力和情感深度。然而,对于许多创作者来说,编织出美妙动人的歌词并非易事。但如今,随着科技的飞速发展,人工智能为我们带来了全新的创作可能。 《妙笔生词智能写歌词软件》,便是我们在这个新时代中得力的创作伙伴。它如同一位拥有无穷智慧和创造力的精灵,借助人工智能的强大力量,帮助我们将内心的情感和想象转化为优美的歌词。 当您脑海中回荡着一段动人的旋律,却为如何填词而苦思冥想时,妙笔生词智能写歌词软件能够迅速感知您的需求。它通过深入学习和分析海量的优秀歌词作品,掌握了丰富的词汇、多样的修辞手法以及精准的情感表达技巧。 您只...
            0 0 29
            分享
          •   “系统软件配置不得当”占所有“环境配置不得当”至少30%,这其中数据库的参数配置对性能的影响最大,需要检查的点也最多,从这一期开始专门介绍数据库的性能测试检查(以Oracle为例,因为Oracle用的最广 ^v^),因为数据库的设计复杂,影响性能测试的点不计其数。  检查的目的是什么呢?如果是测试环境,首先需要检查参数配置是否和生产环境相同或相似,如果是生产环境,需要检查参数配置是否合理。并且,由于数据库的设计逻辑,相同的场景跑几遍,其性能结果也是不同的,所以,环境检查的目的也是要确保测试结果的稳定性、可重复性。  举个例子,第一次跑的时候,数据在磁盘了,跑到过程中调入了内存。第二次跑的时...
            0 0 1637
            分享
          •   随着“十四五”规划对科技创新提出了更迫切的要求,国内人工智能(AI)、物联网、大数据、云计算等IT产业得到了迅速发展。可是现阶段,我国软件测试基础人才不足,已成为制约我国软件产业发展的瓶颈。据国家权威部门统计,中国软件测试人才缺口近40万,并且仍在以每年20%的速度增加。随着软件市场的扩大,更多的企业开始认识到软件测试的重要性。在未来,如何应对快速发展的技术变革,是测试行业和测试人员需要深耕的问题。  51Testing软件测试网立足于我国软件测试行业现状,从软件测试者的个人特征、社会特征以及技术特征等方面为大家详细呈现"软件测试员"到底是怎样的一群人。我们致力于为软件...
            0 0 1796
            分享
          • 1.Android APP 内存不足时,如何获得内存?系统优先结束被挂起(暂停)的进程,释放内存。 2.APP 测试常见问题有哪些?原因有哪些?常见的有 crash、ANR(应用无响应、卡死等),一般由设备碎片化、网络波动大、内存泄漏、代码编写错误。 3.APP 自动化测试工具有哪些,并简要介绍1)APP UI测试工具:①uiautomator2openatx开源的ui自动化工具,支持Android和iOS。主要面向的编程语言是Python,API设计简洁易用②Appium基于Node.js的一款非常成熟的APP UI自动化工具,支持多种语言开发,在测试圈非常流行,可以说是...
            1 4 14060
            分享
      • 51testing软件测试圈微信