码迷,mamicode.com
首页 > 数据库 > 详细

mysql(2)

时间:2015-08-10 16:09:34      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:

1.创建计算字段:

   concat ,    select concat(vend_name,‘(‘,vend_country,‘)‘) from vendors;

   Rtrim,     删除右侧空格

   select a+b as c from table order by c;

2.数据处理函数:

   文本处理函数:upper   ex: select upper(a) as a_upper_case from table;

                    trim,rtrim,trim

                    left  ,    ex: select left(‘abcdefg‘, 3), 返回abc

                    locate:   返回字符串str第一次出现的子串SUBSTR的位置 ,ex: select locate(‘a‘,‘bac‘);  得到2

                   substring:  http://www.yiibai.com/sql/sql_function_substring.html

   时间:字段为datetime类型,存储为 日期+时分秒,通过date,time函数过滤字段

                   ex: select xx from table date(xxx)=‘2015-01-01‘;

                   year,month,day过滤出年月日

  数据处理: ex : select Pi();  select rand(); select abs(-1);

3.聚集函数:avg , 忽略null的字段)

                  count ,count(*) 不管是否为空,还是null;count(column)对特定列中具有值进行计算

                 max,min,sum

4.group by ,  ...from table where xxx group by xxx order by xxxx

                处聚聚计算语句外,select语句中的每个列都必须在group by 字句中给出

 

  having xxx ,必须使用表达式,不可使用别名,ex: 如下 不可使用having ordertotal

 

  ex, select order_num,sum(quantity*item_price) as ordertotal

        from orderitems

        group by order_num

        having sum(quantity*item_price)>=50

        order by ordertotal;

    ps: 对 orderitems中的数据,根据order_num 分组,每组计算sum(quantity*item_price),

         当 sum(quantity*item_price)>=50时,过滤出来,按照ordertotal升序显示

     

      select student_id,avg(score)  as average_score from scores

      group by student_id having avg(score)<60

      order by average_score;

     

mysql(2)

标签:

原文地址:http://www.cnblogs.com/Citizen/p/4718244.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!