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。
---------------------------------------------------------------------------------------------------------------------------------- 

sql小总结2的更多相关文章

  1. SQL小汇总

    SQL小汇总 1.对每个时段的数据进行统计2.查询时间条件(to_date)3.插入序列号和系统时间4.查询当天.7天内.30天内5.查询前后x小时.分钟.天.月.6.保留小数点后4位7.查询字段A中 ...

  2. 几个SQL小知识

    写在前面的话:之前做的一个项目,数据库及系统整体构架设计完成之后,和弟兄们经过一段时间的编码,系统如期上线,刚开始运行一切良好,后来随着数据量的急剧膨胀,慢慢出现了很多莫名其妙的问题,经过调试,修改了 ...

  3. SQL小技巧小知识

    1.[ ]的使用 当我们所要查的表是系统关键字或者表名中含有空格时,需要用[]括起来,例如新建了两个表,分别为user,user info,那么select * from user和select * ...

  4. 11个实用经典的SQL小贴士

    学习工作之余,在没有要解决问题的压力之下,还是建议系统的看看书,对于一些认为没啥用的知识点,也建议去仔细的看看,练练手,说不定什么时候就用到了,到时也好有针对性的去查,不至于盲目的按照自己的思路,重复 ...

  5. 参数化SQL小认识

    在做机房收费系统项目,编写数据连接并访问数据库时,见别人都用了带“@”字符的SQL语句,就很好奇为什么都用这个语句呢?直接拼写SQL语句不是更加方便吗?带着这个问题上网查资料,才知道原来他们用的是参数 ...

  6. SQL小练习

    1.现在有两张表订单表TB_ORDER,包括字段:order_id(订单号),username(用户名),amount(订单金额),order_time(下单时间), product_id(商品ID) ...

  7. 几个SQL小知识(转)

    出处:http://www.cnblogs.com/wuguanglei/p/4205976.html 写在前面的话:之前做的一个项目,数据库及系统整体构架设计完成之后,和弟兄们经过一段时间的编码,系 ...

  8. 几个SQL小知识(转)

    原文地址:http://www.cnblogs.com/wuguanglei/p/4205976.html 写在前面的话:之前做的一个项目,数据库及系统整体构架设计完成之后,和弟兄们经过一段时间的编码 ...

  9. sql小计合计

    转自:http://www.jb51.net/article/18860.htm 这里介绍sql server2005里面的一个使用实例: CREATE TABLE tb(province nvarc ...

  10. sql小计汇总 rollup用法实例分析

    这里介绍sql server2005里面的一个使用实例: ),city ),score int) GO 1. 只有一个汇总 select province as 省,sum(score) as 分数 ...

随机推荐

  1. (转)FFMPEG解码流程

    http://www.douban.com/note/228831821/ FFMPEG解码流程:     1. 注册所有容器格式和CODEC: av_register_all()     2. 打开 ...

  2. SpringMVC单文件上传、多文件上传、文件列表显示、文件下载(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细讲解了SpringMVC实例单文件上传.多文件上传.文件列表显示.文件下载. 本文工程 ...

  3. 【原创】leetCodeOj --- Largest Number 解题报告

    原题地址: https://oj.leetcode.com/problems/largest-number/ 题目内容: Given a list of non negative integers, ...

  4. effective c++ 条款7 declare virtual destructor for polymophyc base class

    这似乎很明显. 如果base class的destructor不是virtual,当其derived class作为基类使用,析构的时候derived class的数据成员将不会被销毁. 举个例子 我 ...

  5. Lua 服务器Socket通信实例(转)

    local socket = require"socket" local host = "127.0.0.1"local port = "843&qu ...

  6. 乐在其中设计模式(C#) - 命令模式(Command Pattern)

    原文:乐在其中设计模式(C#) - 命令模式(Command Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 命令模式(Command Pattern) 作者:webabcd ...

  7. DICOM医学图像处理:开源库mDCM与DCMTK的比較分析(一),JPEG无损压缩DCM图像

    背景介绍: 近期项目需求,须要使用C#进行最新的UI和相关DICOM3.0医学图像模块的开发.在C++语言下,我使用的是应用最广泛的DCMTK开源库,在本专栏的起初阶段的大多数博文都是对DCMTK开源 ...

  8. php+sqlite cms

    1 phpSQLiteCMS 最新版本 phpSQLiteCMS 2.0.4 http://phpsqlitecms.net/ 2 taoCMS  最新版本 [2.5Beta5下载地址] 需要php ...

  9. tomcatport占用,如何识别和kill

    开始-执行-cmd,进netstat -ano你可以看到整个port入住. 增加要想知道谁占用了我们的port8080,输入下面命令 C:\Documents and Settings\Adminis ...

  10. 为RadComboBox添加SelectionChanging事件

    代码非标准,仅供参考. using System; using System.Collections.Generic; using System.Linq; using System.Windows. ...