Oracle中null的使用详解

Jun 07, 2016 pm 05:11 PM

最好不查找NULL,或is not null ,is null,更不能比较null值问:什么是NULL?答:在我们不知道具体有什么数据的时候,也即未知,

最好不查找NULL,或is not null ,is null,更不能比较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;
         1
---------
         1
SQL> select 1 from dual where nvl(null,0)=nvl(null,0);
         1
---------
         1
对空值做加、减、乘、除等运算操作,结果仍为空。
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)  --月份
sellnumber(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的空值就是这么的用法,我们最好熟悉它的约定,以防查出的结果不正确。

其他意见:

在 MS SQL Server 中,是存在的。
即WHERE field_1 IS NULL 和 filed_1 = '' 返回 2 种结果
'' 和 NULL 是2个东西。

在 Oracle 8.1.6   和 9.2 中,你存入 '' 后,数据库会自动存储为 NULL
此时只能使用 WHERE field_1 IS NULL
感觉好像 ORACLE 中没有 '' 或者说 '' 和 NULL 是一个东西。

可以这么理解:

如果需要区分数据类型的话,
空字符串''一定是NULL
空数字也是NULL
其他空数据类型也是NULL

如果不区分数据类型的话,
空字符串''就是NULL,NULL就是空字符串''

linux

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

数値の最大の素因数を見つける C プログラム 数値の最大の素因数を見つける C プログラム Aug 27, 2023 am 10:09 AM

素因数分解 - 整数理論では、正の整数の素因数は、その整数を正確に割る素数です。これらの数を見つけるプロセスは、整数因数分解、または素因数分解と呼ばれます。例 - 288 の素因数は: 288=2x2x2x2x2

トップ10グローバルデジタル仮想通貨取引プラットフォームランキング(2025権限ランキング) トップ10グローバルデジタル仮想通貨取引プラットフォームランキング(2025権限ランキング) Mar 06, 2025 pm 04:36 PM

2025年、グローバルデジタル仮想通貨取引プラットフォームは、トランザクションのボリューム、セキュリティ、ユーザーエクスペリエンスなどの指標に基づいて、2025年に世界のトップ10のデジタル通貨取引プラットフォームを激しく競争しています。 OKXは、強力な技術的強さとグローバルな運用戦略で最初にランクされており、Binanceは高流動性と低料金に密接に続きます。 Gate.io、Coinbase、Krakenなどのプラットフォームは、それぞれの利点がある最前線にいます。このリストには、Huobi、Kucoin、Bitfinex、Crypto.com、Geminiなどの取引プラットフォームがそれぞれ独自の特徴がありますが、投資は注意する必要があります。プラットフォームを選択するには、セキュリティ、流動性、料金、ユーザーエクスペリエンス、通貨選択、規制コンプライアンスなどの要因を考慮し、合理的に投資する必要があります

2025年の通貨サークルのトップ10の交換 2025年の通貨サークルのトップ10の交換 Feb 27, 2025 pm 06:33 PM

トップ10の仮想通貨取引プラットフォームのランキング(2025年の最新): Binance:グローバルリーダー、高い流動性、規制が注目を集めています。 OKX:大規模なユーザーベース、複数の通貨をサポートし、レバレッジされた取引を提供します。 gate.io:さまざまなフィアット通貨支払い方法を備えた上級交換は、さまざまな取引ペアと投資商品を提供します。 Bitget:デリバティブ交換、高流動性、低料金。 Huobi:さまざまな通貨と取引ペアをサポートする古い交換。 コインベース:厳密に規制されている有名なアメリカの交換。 フェメックスなど。

トップ10のデジタル通貨取引プラットフォームトップ10のデジタル通貨取引プラットフォームの最新リスト トップ10のデジタル通貨取引プラットフォームトップ10のデジタル通貨取引プラットフォームの最新リスト Mar 17, 2025 pm 05:57 PM

トップ10のデジタル通貨取引プラットフォーム:1。OKX、2。BINANCE、3。GATE.IO、4。HuobiGlobal、5。Kraken、6。Coinbase、7。Kucoin、8。Bitfinex、9。Crypto.com、10。Gemini、これらの交換は、ユーザーがユーザーを選択できます。

デジタル通貨アプリ用のトップ10の取引プラットフォーム、通常の通貨投機プラットフォームアプリの推奨 デジタル通貨アプリ用のトップ10の取引プラットフォーム、通常の通貨投機プラットフォームアプリの推奨 Mar 07, 2025 pm 06:51 PM

この記事では、10個のデジタル通貨トレーディング。プラットフォームを選択する際には、セキュリティ、流動性、取引料、通貨選択、ユーザーインターフェイス、カスタマーサービスサポート、規制コンプライアンスなどの要因を考慮し、リスクを慎重に評価し、盲目的にトレンドに従うことはありません。

信頼できるデジタル通貨プラットフォームは何ですか? 信頼できるデジタル通貨プラットフォームは何ですか? Mar 17, 2025 pm 05:45 PM

信頼できるデジタル通貨プラットフォームには、1。OKX、2。GATE.IO、4。HuobiGlobal、6。Coinbase、7。Bitfinex、9。Crypto.com、10。Geminiが顧客を選択することができます。

トップ10デジタル通貨アプリトレーディングプラットフォームTop10仮想通貨アプリ2025ランキング トップ10デジタル通貨アプリトレーディングプラットフォームTop10仮想通貨アプリ2025ランキング Mar 13, 2025 pm 07:00 PM

トップの仮想通貨プラットフォームは次のとおりです。 ランキングは、プラットフォームの流動性、通貨の選択、セキュリティ、ユーザーエクスペリエンス、取り扱い料、コンプライアンスなどの包括的な考慮事項に基づいていますが、参照のみがお客様の責任である必要があります。

トップ10推奨されるトップ10デジタル通貨取引アプリのランキング トップ10推奨されるトップ10デジタル通貨取引アプリのランキング Feb 17, 2025 pm 03:18 PM

デジタル通貨市場が急増するため、この記事には、投資家が信頼できる使いやすいプラットフォームを選択できるように、上位10のデジタル通貨取引アプリをリストします。ランキングリストには、Binance、Coinbase、Gemini、Kraken、FTX、Huobi、Okx、Bitfinex、Crypto.com、およびgate.ioが含まれます。これらのアプリは、幅広い取引ペア、安全で信頼性の高いプラットフォーム、低い取引手数料、高流動性を提供します。投資家は、セキュリティ、ユーザーフレンドリー、取引手数料、流動性、サポート通貨、顧客サービスなどの要因に基づいて、ニーズを最大限に満たすアプリを選択する必要があります。

See all articles