SQL 小知识点

1、对于空值的判断

由于开发语言的习惯,很容易在写数据库的查询语言,判断空值时写成“列名=null”,而事实上,在数据库对空值进行判断用的是  “列名 is null”   或者    “列名 is not null”;

在SQL数据库中,NULL的含义是unknown,属于第三种逻辑值,它表示的意思是丢失或不想关的值。所以,它在与任何值进行逻辑运算时,最后的结果都是unknown,这样的话,它参与逻辑运算是没有意义的,所以,在数据库中不采用逻辑运算的方法对它进行判断,而是通过 “列名 is null”   或者    “列名 is not null”

2、在T-SQL语句中子查询返回的结果必须是集合,而不是经过排序后的数据

3、在执行T-SQL语句时,group by后的所有步骤所引用的列都必须是包含在其后子句中的列,或者以聚合函数的形式出现
4、Between…and…:在...到...之间
5、聚合函数一般会配合分组使用,但是不统计空值
6、in(A,B,C)表示A或B或C
7、EXISTS:其输入是一个子查询,通常会关联到外部查询;它根据子查询是否返回行,而决定返回的是TRUE或FALSE
 --exists 筛选出来自spain且发生过订单的消费者
 SELECT c.CustomerID,c.CompanyName
 FROM   Customers AS c
 WHERE  c.Country = N'Spain'
        AND EXISTS (
                SELECT *
                FROM   Orders AS o
                WHERE  o.CustomerID = c.CustomerID
            )
--当EXISTS返回的是true时,便将数据插入这一步所构成的虚拟表中;返回的是false时,就将此条数据过滤掉


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值