全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

postgreSQL is not null 和 !=NULL有什么区别吗?

发布时间:2023-10-13 09:09:16
发布人:xqq

一、postgreSQL is not null 和 !=NULL的区别

按照sql标准来说 = null这种语法本来就是错误的,在oracle postgresql mssql等企业级数据库中这种语法根本就不支持。

判断是否为null的标准sql规范是is null 和is not null。

sql是个“公共”的数据库查询语言有他自己的标准。mysql postgresql mssql oracle等都不同程度的遵循不同的sql标准并且各自都又在自家产品中加入了他自己的特色。

postgresql默认不支持 = null这种语法,但是在配置文件中可以设置开启支持,会自动的把=null转换成is null,!=null自动转换成is not null

null就是null,null不等于空字符串。

默认情况下做比较条件时使用关键字“is null”和“is not null”。

如果你一定要使用!= null来进行条件判断,需要加上这个命令语句:SET ANSI_NULLS OFF,这时数据库进入ANSI SQL非标准模式,你会发现IS NOT NULL 和 != null 是等效的了。

这里使用的是模式切换命令SET ANSI_NULLS[ON/OFF]。ON值采用ANSI SQL严格标准,OFF值采用非标准兼容模式。另外SET ANSI_DEFAULTS [ON/OFF]命令也可以实现标准的切换,只是这个命令控制的是一组符合SQL-92标准的设置,其中就包括Null值的标准。

延伸阅读:

二、mysql字符集和排序规则

所为字符集,就是用来定义字符在数据库中的编码的集合。常见的字符集有:utf8(支持中文)和AccIS(不支持中文)

数据库中的排序规则用来定义字符在进行排序和比较的时候的一种规则。常见的如下:
(1) utf8_general_ci 不区分大小写,utf8_general_cs 区分大小写
(2) utf8_bin 规定每个字符串用二进制编码存储,区分大小写,可以直接存储二进制的内容

说明:所为排序规则,就是指字符比较时是否区分大小写,以及是按照字符编码进行比较还是直接用二进制数据比较

utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。
utf8_general_ci校对速度快,但准确度稍差。
utf8_unicode_ci准确度高,但校对速度稍慢。

如果你的应用有德语、法语或者俄语,请一定使用utf8_unicode_ci。一般用utf8_general_ci就够了。

所以一般字符集用utf-8,排序规则用utf8_general_ci

#it技术干货

相关文章

为什么二级封锁协议不能保证可重复读,一级封锁协议不能保证可重复读和读脏数据?

为什么二级封锁协议不能保证可重复读,一级封锁协议不能保证可重复读和读脏数据?

2023-10-13
SQL Server 2014的集成内存OLTP(Hekaton)有什么战略意义?

SQL Server 2014的集成内存OLTP(Hekaton)有什么战略意义?

2023-10-13
用access做一个数据库,用户登录界面,不同用户权限不同,应该怎么设置?

用access做一个数据库,用户登录界面,不同用户权限不同,应该怎么设置?

2023-10-13
Android适配你需要学习哪些?

Android适配你需要学习哪些?

2023-10-13

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取