栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql基础(4)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql基础(4)

内容一:字符串运算函数

 例子1 字符串替换---replace函数

把查询id那一列 E开头数据  变成jw开头数据

select id,REPLACE(id,"E","jw") as "员工编号" from  jw03_sale;

例子2: 字符串合并  将两列数据可以合并显示

select concat("陈","冠希")

将员工编号+ 姓名+a商品销量一起显示

select CONCAt(id,name,sales_a) from jw03_sale;

select CONCAT_Ws("--",id,name,sales_a) as "个人销量" from jw03_sale;

内容二:  控制流函数(重点) 需求: 根据不同的数据---显示出不同的结果 根据考试分数 >=60  显示及格  否则 显示不及格

解决方案:if() 函数  理解  ifNULL函数  NULLif函数  2.Case  when 函数

If函数

格式1:===》支持嵌套

   if(条件,满足条件值,不满足条件的值)

条件 假   0  NULL  FASLE  其它 TRue

if函数格式

select if(70>=60,"及格","不及格")

例子 if嵌套  先判断是否及格 ,然后再判断是否优秀

select if(85>=60,if(85>=80,"优秀","良好"),"不及格")

应用1: 给表格增加一列  显示学生是否及格

select id,score,if(score>=60,"及格","不及格") as score_result

from jw04_stu8;

应用2: 给表格增加一列  显示学生是否及格 小于80分==》良好,大于等于80 优秀

select id,score,if(score>=60,if(score<80,"良好","优秀"),"不及格") as score_result

from jw04_stu8;

if函数  外层到内层进行解析即可

ifNULL函数  NULLif函数

 ifNULL(参数1,参数2)

含义 如果参数1 不为空则返回参数1            否则  则返回参数2

NULLif(参数1,参数2)

含义:如果 参数1等于参数2 返回NULL       否则返回 参数1

例子 查询worker表

根据 岗位类型  type="A"  数据分析岗位

其它类型   非数据分析岗位

增加1列 没有工资的 工资显示为0

增加1列 没有工资的 工资显示为NULL

select name,

if(type='A',"数据分析岗","非数据岗") as jwtype,

IFNULL(salary,0) as '无工资为0',

NULLIF(salary,null) as '无工资为Null'

from worker;

需求: 在sql if 不建议嵌套太深(不要3层)==》慢查询

解决:  使用 case ..when 解决

格式一:(简单写法)

   Case  字段名字

      When  条件1  then 满足条件1结果

      When  条件2  then 满足条件2结果

      When  条件3  then 满足条件3结果

      ...

      Else  不满足返回默认值

   End

注意:  条件具体的值,只适合相等条件判断,不能进行比较运算!!!

格式二:(搜索写法  解决格式1 问题 可以做比较运算)

 Case  (啥也没有)

      When  条件1  then 满足条件1结果

      When  条件2  then 满足条件2结果

      When  条件3  then 满足条件3结果

      ...

      Else  不满足返回默认值

   End

说明: 这里的条件可以进行比较运算的

例子 1.增加一列 根据班级 结果  显示不同班级别名(幼儿园)

select id,class ,

(

case class

   when "一班"  then "向日葵班"

   when "二班"  then "玫瑰班"

   when "三班"  then "小鸡班"

  else  "老鹰班" end

) as "班级别名"

from jw04_stu8;

例子2. 小于60分 "不及格" 小于80分 良好 其它情况优秀

select

    id,score,

(

case

  when score <60  then "不及格"

  when score <80 then "良好"

  else "优秀"

  end

)  "分数等级"

from jw04_stu8;

补充说明  条件between and 关键字支持的

小结: if和case

   If 简单  不建议嵌套 建议推荐使用case

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995038.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号