zoukankan      html  css  js  c++  java
  • sql小总结2

    SQL NULL 值

    如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。

    NULL 值的处理方式与其他值不同。

    NULL 用作未知的或不适用的值的占位符。

    注释:无法比较 NULL 和 0;它们是不等价的。

    无法使用比较运算符来测试 NULL 值,比如 =, <, 或者 <>。
    --------------->mysql中ifnull的用法

    SELECT ProductName,UnitPrice*(UnitsInStock+IFNULL(UnitsOnOrder,0))
    FROM Products 
    或者  
        
    SELECT ProductName,UnitPrice*(UnitsInStock+COALESCE(UnitsOnOrder,0))
    FROM Products

    -------------------------------------------------------------------------------------------------------------------------------------------------------

      各种函数的应用

      count(*)和count(column)的区别是后者会忽略null的选项。

      在用sum函数的时候通常要和group by 结合使用.当然,group by 后面可以跟多个列。

      SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
      GROUP BY Customer,OrderDate

    切记:group by一般要和聚合函数结合使用,否则就没什么意义,并且假如只有group by没有什么聚合函数,那么查出的记录会丢失一部分。
       在group by分组后每个分组对应1个count();
    -----------------------------------------------------------------------------------------------------------------------------------
    sql中having子句的应用,因为where关键字无法与合计函数一起使用,Having函数代替了where函数.
    例如我们需要查找订单总额大于2000的用户...
    SELECT Customer,SUM(OrderPrice) FROM Orders  GROUP BY Customer  HAVING SUM(OrderPrice)<2000

    当然,where无法使用是指,不能放到group by 子句后面,可以如下使用
    select Customer ,SUM(OrderPrice) from Orders wherr customer ='A' or customer ='B' group by customer having sum(orderprice) >1500

    ------------------------------------------------------------------------------------------------------------------------------------
    ucase,lcase将数据表中的某列置为大写或者小写
    select ucase(firstname) as u_name from person;
    -----------------------------------------------------------------------------------------------------------------------------------
    mid函数用于从文本字段中截取字符串,比如 mid(firstname,start[,end]);其中start,end可以随便写,或者返回数据或者返回空,不会报错。

    假如想提取第二个字段,可以这么写,mid(firstname,2,2);返回来就是第二个字符。
    SELECT MID(column_name,start[,length]) FROM table_name
    select mid(firstname ,1,3) from person;
    -----------------------------------------------------------------------------------------------------------------------------------
    LEN 函数返回文本字段中值的长度。
    select len(firstname) from person;
    ----------------------------------------------------------------------------------------------------------------------------------
    ROUND 函数用于把数值字段舍入为指定的小数位数。

      select customer ,round(orderprice,0) from orders ;意思是要把订单金额保留整数。

    -------------------------------------------------------------------------------------------------------------------------------------------------------

      NOW 函数返回当前的日期和时间。

     select now() as perDate from person ;
    ----------------------------------------------------------------------------------------------------------------------------------
    FORMAT 函数用于对字段的显示进行格式化。---->format(column,format)其中两个参数是必须的。
    SELECT ProductName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD') as PerDate FROM Products。
    ---------------------------------------------------------------------------------------------------------------------------------- 

     

  • 相关阅读:
    20110603 本日跌的股票之后一段时间轻易不要碰
    一日三省
    火电排污新标准年内出台 撬动千亿脱硝市场
    20082011大股东增持专题
    收评:5月24日资金流向(摘自益盟)
    2011年中期业绩预增前20家公司
    2011大股东十大增持概念股全景图
    放不下期货
    从众是通向地狱最廉价的门票
    在ASP.NET中获取Get方式和Post方式提交的数据
  • 原文地址:https://www.cnblogs.com/lovebaoqiang/p/4075895.html
Copyright © 2011-2022 走看看