51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 808|回复: 0
打印 上一主题 下一主题

测试人需要的数据库知识:MySQL常用语法

[复制链接]
  • TA的每日心情
    无聊
    3 天前
  • 签到天数: 1050 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-7-28 09:17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    作为一名测试人,掌握数据库常用的操作不可缺少,下面就一段mysql 查询语句梳理几个相关语法知识。
      本篇文章主要包括两方面内容
      ·常用的sql语法
      ·开发代码中如何和sql进行关联
      案例代码:
    1. <font size="3">`
    2. select a.blastid,d.apptime,a.charge_approve,
    3.             a.blast_batch,
    4.             a.plan_blast_time,
    5.             a.exe_plan_id,
    6.             a.import_flag,
    7.             a.rig_type,.......
    8.             case when (select "count"(*) from bla_geology_info geo where a.blast_id=geo.blast_id and  geo.delete_flag=0)>0
    9.                 then 'true' else 'false'  
    10.     END as isShowFlag
    11.     from bla_blast_info a
    12.     left join exe_plan_month b
    13.     on a.exe_plan_id = b.exe_plan_id
    14.     left join sys_user c
    15.     on a.dynamite_user = c.user_id
    16.     left join (select blast_id,isagree,idea,create_time as app_time from bla_charge_approve where delete_flag = '0') d
    17.     on a.blast_id = d.blast_id
    18.     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
    19. `</font>
    复制代码
    一 常用的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的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。

    一句话的意思是 先取交集,再关联到左表。
      引申整理出几个连接的常用含义及区分 ,如下表所示:


    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 字段进行绑定,可以这么理解 只有两个表绑定后才能进行相关的查询操作。
      总结通用模板:
    1. Select 字段名1,字段名2  case when  条件 then 执行语句  else 执行语句 end as 别名 from 表名 别名 left join on 表连接(a.exe_plan_id = b.exe_plan_id)
    2. Where 查询条件(d.app_time DESC)
    复制代码
    二 开发代码中如何和sql进行关联
      开发逻辑中有一个词‘mapper映射’,里面具体的实现不做过多赘述。
      简单点的逻辑是:
      用xml文件 将sql 语句的名称 和 实体名称一一映射,通过这种形式进行绑定,然后在代码中引用映射的文件名,从而实现数据查询。

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



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 18:44 , Processed in 0.063271 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表