广告
返回顶部
首页 > 资讯 > 数据库 >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://www.lsjlt.com/news/57026.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle中Null与空字符串的区别是什么
    本篇文章为大家展示了Oracle中Null与空字符串的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。含义解释: 问:什么是NULL? ...
    99+
    2022-10-18
  • NULL与MySQL空字符串有什么区别
    本篇内容主要讲解“NULL与MySQL空字符串有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“NULL与MySQL空字符串有什么区别”吧!  下述语句是...
    99+
    2022-10-18
  • 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 区别
  • SQL中IS NOT NULL与!=NULL的区别是什么
    今天就跟大家聊聊有关SQL中IS NOT NULL与!=NULL的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。查询一: SELEC...
    99+
    2022-10-18
  • Python中怎么判断字符串是否为空和null
    本篇文章给大家分享的是有关Python中怎么判断字符串是否为空和null,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、使用字符串长度判断len(s) ==0 则字符串为空#...
    99+
    2023-06-01
  • Python字符串中的r和u的区别是什么
    这篇文章主要介绍“Python字符串中的r和u的区别是什么”,在日常操作中,相信很多人在Python字符串中的r和u的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python字符串中的r和u的区别...
    99+
    2023-06-25
  • MySQL的空值和NULL的区别是什么
    这篇文章给大家分享的是有关MySQL的空值和NULL的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。从本质上区别:1、空值不占空间2、null值占空间通俗的讲:空值就像...
    99+
    2022-10-18
  • Oracle与PostgreSQL的NULL和索引使用区别是什么
    这篇文章主要讲解了“Oracle与PostgreSQL的NULL和索引使用区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle与Postgr...
    99+
    2022-10-18
  • 详解java中String值为空字符串与null的判断方法
    Java空字符串与null的区别 1、类型 null表示的是一个对象的值,而不是一个字符串。例如声明一个对象的引用,String a=null。 “”表示的是一个空字符串,也就是...
    99+
    2022-11-12
  • java字符流与字节流的区别是什么
    java中字符流与字节流的区别:(推荐:java视频教程)字节流操作的基本单元为字节;字符流操作的基本单元为Unicode码元。字节流默认不使用缓冲区;字符流使用缓冲区。字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支...
    99+
    2022-03-22
    java 字符流 字节流
  • C语言 分析逆序字符串与字符串的逆序输出有什么区别
    目录前言一、字符串的逆序二、实例讲解1.字符串的逆序输出2.逆序字符串3.综合实例总结今天我们讲解字符串的逆序和逆序输出,并且通过一个综合题型来加深印象和练手! 前言 逆序字符串和字...
    99+
    2022-11-13
  • JS基础中undefined与null的区别是什么
    这期内容当中小编将会给大家带来有关JS基础中undefined与null的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在JavaScript开发中,被人问到:...
    99+
    2022-10-19
  • 为什么每当我将空字符串插入声明为 NOT NULL 的 MySQL 列时,它显示 0 而不是空字符串?
    这是因为插入空字符串意味着我们正在插入一些值而不是 NULL。空字符串显然映射到零作为整数。换句话说,我们可以说,通过插入空字符串,我们向 MySQL 提供了一个整数表示为 INT 0 的值。考虑以下示例,其中我们插入了一个空字符串,并被 ...
    99+
    2023-10-22
  • Java中list集合为空或为null的区别是什么
    本篇内容介绍了“Java中list集合为空或为null的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!list集合为空或为null...
    99+
    2023-06-25
  • java字符和字节的区别是什么
    byte即字节的意思,是java中的基本数据类型,用来申明字节型的变量,一个字节包含8个位,所以,byte类型的取值范围是-128到127。通常在读取非文本文件时(如图片,声音,可执行文件)需要用字节数组来保存文件的内容,在下载文件时,也是...
    99+
    2016-10-13
    java入门 java 字符 字节 区别
  • Oracle与MySQL的区别是什么
    这篇文章主要讲解了“Oracle与MySQL的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle与MySQL的区别是什么”吧!什么是MySQLMySQL是一个关系型数据库管...
    99+
    2023-07-06
  • oracle中ADG与DG的区别是什么
    oracle中ADG与DG的区别是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  DG与ADG的对比:DG只能用Real...
    99+
    2022-10-18
  • php中null和empty的区别是什么
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中null和empty的区别是什么null 表示表示一个变量没有值。一个变量为null有三种情况:被赋值为 NULL 。 尚未被赋值。 被 unset() 。e...
    99+
    2021-01-09
    PHP
  • vbs中Empty和Null的区别是什么
    这篇文章主要讲解了“vbs中Empty和Null的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vbs中Empty和Null的区别是什么”吧!empty关键字指用于指明未初始化的变...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作