返回顶部
首页 > 资讯 > 数据库 >Oracle中Null与空字符串的区别是什么
  • 948
分享到

Oracle中Null与空字符串的区别是什么

2024-04-02 19:04:59 948人浏览 八月长安
摘要

本篇文章为大家展示了oracle中Null与空字符串的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。含义解释: 问:什么是NULL? 

本篇文章为大家展示了oracle中Null与空字符串的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

含义解释: 
问:什么是NULL? 
答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零。 
ORACLE允许任何一种数据类型的字段为空,除了以下两种情况: 
1、主键字段(primary key), 
2、定义时已经加了NOT NULL限制条件的字段 

说明: 
1、等价于没有任何值、是未知数。 
2、NULL与0、空字符串、空格都不同。 
3、对空值做加、减、乘、除等运算操作,结果仍为空。 
4、NULL的处理使用NVL函数。 
5、比较时使用关键字用“is null”和“is not null”。 
6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来,count(*)中,用nvl(列名,0)处理后再查。 
7、排序时比其他数据都大(索引默认是降序排列,小→大),所以NULL值总是排在最后。 

使用方法: 
sql> select 1 from dual where null=null; 

没有查到记录 

SQL> select 1 from dual where null=''''; 

没有查到记录 

SQL> select 1 from dual where ''''=''''; 

没有查到记录 

SQL> select 1 from dual where null is null; 


--------- 

SQL> select 1 from dual where nvl(null,0)=nvl(null,0); 


--------- 

对空值做加、减、乘、除等运算操作,结果仍为空。 
SQL> select 1+null from dual; 
SQL> select 1-null from dual; 
SQL> select 1*null from dual; 
SQL> select 1/null from dual; 

查询到一个记录. 

注:这个记录就是SQL语句中的那个null 

设置某些列为空值 
update table1 set 列1=NULL where 列1 is not null; 

现有一个商品销售表sale,表结构为: 
month    char(6)      --月份 
sell    number(10,2)   --月销售金额 

create table sale (month char(6),sell number); 
insert into sale values(''200001'',1000); 
insert into sale values(''200002'',1100); 
insert into sale values(''200003'',1200); 
insert into sale values(''200004'',1300); 
insert into sale values(''200005'',1400); 
insert into sale values(''200006'',1500); 
insert into sale values(''200007'',1600); 
insert into sale values(''200101'',1100); 
insert into sale values(''200202'',1200); 
insert into sale values(''200301'',1300); 
insert into sale values(''200008'',1000); 
insert into sale(month) values(''200009'');(注意:这条记录的sell值为空) 
commit; 
共输入12条记录 

SQL> select * from sale where sell like ''%''; 

MONTH SELL 
------ --------- 
200001 1000 
200002 1100 
200003 1200 
200004 1300 
200005 1400 
200006 1500 
200007 1600 
200101 1100 
200202 1200 
200301 1300 
200008 1000 

查询到11记录. 

结果说明: 
查询结果说明此SQL语句查询不出列值为NULL的字段 
此时需对字段为NULL的情况另外处理。 
SQL> select * from sale where sell like ''%'' or sell is null; 
SQL> select * from sale where nvl(sell,0) like ''%''; 

MONTH SELL 
------ --------- 
200001 1000 
200002 1100 
200003 1200 
200004 1300 
200005 1400 
200006 1500 
200007 1600 
200101 1100 
200202 1200 
200301 1300 
200008 1000 
200009 

查询到12记录. 

Oracle的空值就是这么的用法,我们最好熟悉它的约定,以防查出的结果不正确。 

但对于char 和varchar2类型的数据库字段中的null和空字符串是否有区别呢?

作一个测试

create table test (a char(5),b char(5));

SQL> insert into test(a,b) values(''1'',''1'');

SQL> insert into test(a,b) values(''2'',''2'');

SQL> insert into test(a,b) values(''3'','''');--按照上面的解释,b字段有值的

SQL> insert into test(a) values(''4'');

SQL> select * from test;

A B
---------- ----------
1 1
2 2
3
4

SQL> select * from test where b='''';----按照上面的解释,应该有一条记录,但实际上没有记录

未选定行

SQL> select * from test where b is null;----按照上面的解释,应该有一跳记录,但实际上有两条记录。

A B
---------- ----------
3
4

SQL>update table test set b='''' where a=''2'';
SQL> select * from test where b='''';

未选定行

SQL> select * from test where b is null;

A B
---------- ----------
2
3
4

上述内容就是Oracle中Null与空字符串的区别是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: Oracle中Null与空字符串的区别是什么

本文链接: https://lsjlt.com/news/57026.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Oracle中Null与空字符串的区别是什么
    本篇文章为大家展示了Oracle中Null与空字符串的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。含义解释: 问:什么是NULL? ...
    99+
    2024-04-02
  • oracle中空字符串跟null区别
    在 oracle 中,空字符串是一个长度为 0 的字符串,表示没有字符;而 null 是一个特殊值,表示缺少或未知的值。空字符串与 null 具有不同的比较行为、函数和操作符表现,以及存...
    99+
    2024-05-07
    oracle
  • NULL与MySQL空字符串有什么区别
    本篇内容主要讲解“NULL与MySQL空字符串有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NULL与MySQL空字符串有什么区别”吧!  下述语句是...
    99+
    2024-04-02
  • php中null和空字符串有什么区别
    php中null和空字符串有什么区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。空字符串''和NULL的区别PHP中空字符串和NULL都是以值...
    99+
    2023-06-15
  • java中的空串与null的区别
    区别:空串是一个已经实例化之后的对象,是有内存空间的,只不过内存空间中存储的值为空;而null表示的是没有实例化的对象,不占内存空间。String aaa = "";//空串 String bbb=null; //null值在线视频教程推荐...
    99+
    2020-04-26
    java入门 java 空串 null 区别
  • oracle中null和空字符串是等价的嘛
    oracle 中,null 和空字符串不相等。null 代表未知值,与任何值都不相等;空字符串是一个长度为 0 的字符串,可以与其他空字符串相等。null 与空字符串的差异在于:null...
    99+
    2024-05-03
    oracle
  • sql中null与空的区别
    sql 中 null 表示未知或不存在的值,拥有自己的数据类型,不能被索引,通常占用更少的存储空间,在布尔表达式中为 false;空表示空字符串,拥有字符串数据类型,可以被索引,被视为 ...
    99+
    2024-05-02
    mysql
  • MySQL中的NULL和空串的区别
    本篇内容主要讲解“MySQL中的NULL和空串的区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL中的NULL和空串的区别”吧! ...
    99+
    2024-04-02
  • SQL中IS NOT NULL与!=NULL的区别是什么
    今天就跟大家聊聊有关SQL中IS NOT NULL与!=NULL的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。查询一: SELEC...
    99+
    2024-04-02
  • oracle中的null和空的区别
    null 表示缺失或未知,而空表示空字符串或零值。在查询中,null 与任何值都不相等,空值与相同类型的空值相等;字段必须显式定义为允许 null,而空值可以存在于任何字段中。理解 nu...
    99+
    2024-05-03
    oracle
  • Python字符串中的r和u的区别是什么
    这篇文章主要介绍“Python字符串中的r和u的区别是什么”,在日常操作中,相信很多人在Python字符串中的r和u的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python字符串中的r和u的区别...
    99+
    2023-06-25
  • MySQL的空值和NULL的区别是什么
    这篇文章给大家分享的是有关MySQL的空值和NULL的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。从本质上区别:1、空值不占空间2、null值占空间通俗的讲:空值就像...
    99+
    2024-04-02
  • Python中怎么判断字符串是否为空和null
    本篇文章给大家分享的是有关Python中怎么判断字符串是否为空和null,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、使用字符串长度判断len(s) ==0 则字符串为空#...
    99+
    2023-06-01
  • oracle中怎么把null换成字符串
    在Oracle中,可以使用NVL函数将NULL替换为字符串。NVL函数接受两个参数,第一个参数是要检查的表达式,第二个参数是要替换的...
    99+
    2023-09-26
    oracle
  • JS基础中undefined与null的区别是什么
    这期内容当中小编将会给大家带来有关JS基础中undefined与null的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在JavaScript开发中,被人问到:...
    99+
    2024-04-02
  • Oracle与PostgreSQL的NULL和索引使用区别是什么
    这篇文章主要讲解了“Oracle与PostgreSQL的NULL和索引使用区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle与Postgr...
    99+
    2024-04-02
  • 区分MySQL中的空值(null)和空字符('')
    日常开发中,一般都会涉及到数据库增删改查,那么不可避免会遇到Mysql中的NULL和空字符。 空字符('')和空值(null)表面上看都是空,其实存在一些差异: 定义: 空值(NULL)的长度是NULL,不确...
    99+
    2022-05-23
    MySQL 空值 MySQL 空字符 MySQL null
  • java字符流与字节流的区别是什么
    java中字符流与字节流的区别:(推荐:java视频教程)字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。字节流默认不使用缓冲区;字符流使用缓冲区。字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支...
    99+
    2022-03-22
    java 字符流 字节流
  • Redis 字符串实现:简单动态字符串-SDS与C字符串的区别
    2.1 SDS的定义 struct { //buf中已使用的字节数,等于SDS所保存字符串的长度 int len; //buf中未使用的字节长度 int free; //字节数组,用于保存...
    99+
    2020-09-07
    Redis 字符串实现:简单动态字符串-SDS与C字符串的区别
  • mysql中空值与null的区别有哪些
    小编给大家分享一下mysql中空值与null的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql中在进行count()统计某列的记录数的时候,如果...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作