• 0
  • 0
分享
  • 测试人需要的数据库知识:MySQL常用语法——软件测试圈
  • 曼倩诙谐 2022-08-04 13:06:44 字数 2223 阅读 2114 收藏 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语法

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

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

3.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的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。

1-.png


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

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

1-1.png

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 语句的名称 和 实体名称一一映射,通过这种形式进行绑定,然后在代码中引用映射的文件名,从而实现数据查询。

1-2.png

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


作者:桃子    

来源:http://www.51testing.com/html/70/n-7792370.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   免费开源Http、Https抓包工具,支持Windows、Mac、Android、IOS, 全平台系统, 使用Flutter框架开发。  支持手机扫码连接,不用手动配置Wifi代理,包括配置同步。所有终端都可以互相扫码连接转发流量。  默认Https不是开启的,需要点击加锁图标安装根证书后开启,因为不安转证书,https会访问失败。  mac会提示已损坏,需要到系统偏好设置-安全性与隐私-允许任何来源  接下来会持续完善功能和体验,请求重写功能增强、模拟慢请求、请求debug, UI优化。  支持安卓微信小程序抓包,安卓分为系统证书和用户证书,下载的自签名根证书安装都是用户证书,微信不信任...
            0 0 1991
            分享
          • 腾讯优测总结软件测试工作深入发展的四象限,软件测试工作的四象限包括哪些内容呢?【象限一】开发能力:开发测试工具、构建测试框架、质量监控体系。开发测试实施所需要的各种工具研究开源工具,构建测试框架平台从技术运营层面构建系统性的质量高监控体系精通 Java / Python 任意一种编程语言,具有快速学习和使用新的编程语言的能力解决测试过程中的复杂技术问题【象限二】测试能力:自动化测试、性能测试、白盒测试等。进行接口和 UI 层面的自动化测试性能测试设计以及服务端开发性能调优经验具备问题定位和分析能力单元测试使用或者精通任意一种测试框架 JUnit / Pytest / Cucumber可以实施精...
            1 1 1685
            分享
          • 配置要求:工具android:5.0以上uc-devtoolsadbChromedriver手机环境配置1.打开开发者模式(不懂的就百度),打开usb调试和安装2.在windows中打开命令行,输入adb devices,可以看到手机驱动就行了uc-devtools配置1.下载好直接安装就行了,如果安装过程中缺少什么东东文件的话,就在C盘全局搜索出来复制到安装uc-devtools的文件夹就行了2.安装完成后,需要在设置中选择本地资源3。打开我们自带的浏览器,输入百度的网址,就能够看的到我们的页面了,点击inspect查看H5页面就行了(如果看不到的话,可能是浏览器内核问题)Appium配置1...
            13 14 2877
            分享
          •   版本与系统参数  Loadrunner12支持的环境参数:  LR12.02不支持win10,需要升级到12.53或以上。  LR12.55安装  注意事项:  1.去掉勾选”指定LoadRunner代理将要使用的证书”选项;  2.不能同时装两个版本,装低版本时需要卸载掉高版本。  安装结束,发现比LR11多了HPE Network Virtualization。  扩展知识:HPE网络功能虚拟化(NFV)系统(参考https://buy.hpe.com/us/en/enterprise-solutions/network-functions-virtualization-nfv/hpe...
            13 14 1995
            分享
          •   2022年早已过半,来个迟到的年中总结,说实话,2022,很迷茫,然后过的非常不如意,倒不是上一年的职业目标没达到,而是接下来的路根本不知道如何走。在没解决这个问题之前,或者说没搞清楚自己的方向之前,是迟迟不能落笔的,啊不,应该是落键盘。  下班后花了几天的时间研究了下测试的职业生涯规划,在许许多多的文章之中穿梭,结合前阵子和某公司t3级的大大面试,对自己接下来的几年职业规划,总算有了眉目,让恍惚的心总算有了着落。  先说我这三年坎坷的经历  刚毕业,计算机专业的我进入了软件测试这个行业,然后外包到了某bat公司,在今天看来,这间公司应该是学习资源最丰富的公司,可悲哀的是,基础能力薄弱,资...
            0 0 974
            分享
      • 51testing软件测试圈微信