mysql

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了mysql脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1.   substring_index(str,delim,count)

      str  表示要处理的字符串

      delim  表示分隔符

      count  计数

      select    substring_index(us.profile,',',-1) as gender,

                   count(*) as number

      from    user_submit us

      group by gender;

      比较count(*)和count(字段名)的区别:

                  前者对行的数目进行计算,包含null,

                 后者对特定的列的值具有的行数进行计算,不包含null,得到的结果将是除去值为null和重复数据后的结果。

 

2.  

      select difficult_level,      (sum(case when qpd.result = "right" then 1 else 0 end)/count(u.answer_cnt)) as correct_rate         from user_profile u inner join question_practice_detail qpd on u.device_id = qpd.device_id      inner join question_detail qd on qd.question_id = qpd.question_id       where university = "浙江大学"      group by difficult_level      order by correct_rate;

  (sum(case when qpd.result = "right" then 1 else 0 end)/count(u.answer_cnt)) as correct_rate   正确率 = 正确的个数/总答题个数

  sum(case when qpd.result = "right" then 1 else 0 end)  sum表示计算和 当result="right"时为1  否则为0

  user_profile u inner join question_practice_detail qpd on u.device_id = qpd.device_id  inner join question_detail qd on qd.question_id = qpd.question_id   三张表之间连接inner join

 

3. 

      select device_id,gpa,age      from user_profile      order by gpa ,age

先按照业绩进行升序排序,再按照年龄进行升序排序

     select device_id,gpa,age     from user_profile    order by gpa desc,age desc

先按照业绩进行降序排序,再按照年龄进行降序排序

 

4.  

        CASE 测试表达式        WHEN 简单表达式1 THEN 结果表达式1        WHEN 简单表达式2 THEN 结果表达式2 …        WHEN 简单表达式n THEN 结果表达式n        [ ELSE 结果表达式n+1 ]        END

   

      select (case when age >= 25 then "25岁及以上" else "25岁以下" end) as age_cnt,    当年龄大于25等于25时,显示为25岁及以上,否则显                                                                                                                                                示为25岁以下      count(*) as number      from user_profile      group by age_cnt

5.  mysql语句的优先级

      首先要选定需要操作的表   from  / jion on / inner join

     确定操作过滤的条件   where/  and /or

     以何种方式展示数据   group by / having

     确定操作方式  select

     确定展示顺序  order by

     截取展示  limit

6. 表之间的连接

  

1.  Inner Join

     SELECT * FROM a INNER JOIN b ON a.`name` = b.`name` 显示结果为a表和b表的交集部分:

 

 2.  LEFT OUTER JOIN

      SELECT * FROM a LEFT OUTER JOIN b ON a.`name` = b.`name`显示结果为a的全部值,b表中匹配的则显示不匹配的则显示null:

3. 

     RIGHT OUTER JOIN

     SELECT * FROM a RIGHT OUTER JOIN b ON a.`name` = b.`name`显示结果为b的全部值,a表中匹配的则显示不匹配的则显示null:

4.  

  UNION

  注意:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。

  同时,每条 SELECT 语句中的列的顺序必须相同。UNION 只选取记录,而UNION ALL会列出所有记录。

  SELECT name FROM a UNION SELECT name FROM b显示a表和b表中所有内容,相同内容只显示一次:

5.

   UNION ALL

  SELECT name FROM a UNION ALL SELECT name FROM b显示a表和b表中所有内容:

 

脚本宝典总结

以上是脚本宝典为你收集整理的mysql全部内容,希望文章能够帮你解决mysql所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: