null
「null」とは、無価値・空っぽ・ゼロのことを意味する英語表現である。
「null」とは・「null」の意味
nullは主に形容詞として機能して「無価値な」「ゼロの」といった意味を成す。文脈によっては「法的効力が欠如している様子」を示す場合もある。また、名詞的用法としては「ゼロ」「無」、他動詞的用法としては「~をゼロにする」という意味を表す。「null」の発音・読み方
nullの発音記号は「nˈʌl」となり、カタカタ表記では「ヌル」もしくは「ナル」である。一般的には「ヌル」と読むことが多く、アクセントは「ヌ」に置く。「null」の語源・由来
nullは印欧語根で「それ」を意味するeyと、動詞的形容詞の接尾語である-nosが結び付いたoynos(「単一のもの、1つ」の意)に由来するとされている。イタリック祖語になる段階でoinosの形になり「いくつかの」を意味するようになった。否定後の接頭語であるneと繋がって「1つもない」を意味するne oinolosとなり、その後同じ意味のままラテン語としてnullusに変化する。中期フランス語になる過程で「ゼロ」を表すnulの形になり、現代英語でnullとなった。「null」を含む英熟語・英語表現
「null and void」とは
nullは単体でも法的効力の無効性を表すことがあるが、null and voidという言い回しを用いると分かりやすい。例えばクレジットカードが利用不可になっている状態を表す際などに用いられる。voidも「空の状態、空虚」を表す単語であり、同じ意味の語をandによって繋ぐことで意味を強めた熟語である。
「null gravity」
宇宙空間や訓練施設における無重力状態のことをnull gravityと表現すること出来るが、一般的にはZero gravityと呼ぶことが多い。
「null」に関連する用語の解説
「null(プログラミング用語)」とは
プログラミングにおけるnullは「何も存在しない状態」を示す用語である。「ゼロ」ではなく、変数が何も存在していないということを示す。プログラミングにおいてゼロは入力値として有効であり、何も入力されていないこととは意味が異なるので注意が必要である。
「null (除毛クリーム)」とは
株式会社G.Oホールディングスは2013年にメンズコスメブランドNULLを立ち上げており、同名の除毛クリームを中心に商品を展開している。元よりクオリティに定評がある商品であったが、日本では著名Youtuberが動画紹介したことをきっかけにさらに知名度が向上した。各ECモールの売上ランキング1位を獲得するなど、ユーザーからの支持も高い。なお、男性用と銘打たれているが肌へのダメージとなる成分を極力使用せず、女性や子どもなどデリケート肌のユーザーへも配慮されている。60日間返金保証やコスメコンシェルジュによるサポートなど、サフターケアが手厚い。
「null. (アパレルブランド)」とは
null.とはWebショップを中心に商品を販売している女性向けのアパレルブランドである。下着やキャミソールといったインナーからアウターまで広く手がけ、女性のデイリーユースとしての洋服を突き詰めるスタンスが特徴となっている。リユースやリデュースなど、SDGsへの関心が高いブランドでもある。
「null値」とは
null値はデータベースにおいて「データが欠落している、あるいは不足している」ということを意味する。
「nullポインタ」とは
nullポインタとは、プログラミング言語においてポインタが有効なオブジェクトと指定していない、あるいはメモリを参照していないことを意味する言葉である。主にC言語やC++などで用いられる。
「NULL」の略とは
NULLはしばしば省略形としてnulの形になることがある。
「Null」の正式名称とは
ASCIIやそれと互換性のある文字コードにおいて、値ゼロを示す制御文字のことを「ヌル文字」と呼ぶ。ヌル文字は英語でnull Characterと表記され、略してnullとなるのが一般的である。
「null」の使い方・例文
・Your card is null and void, please choose other payment method.(あなたのクレジットカードは無効となっているので、他のお支払い方法をお選びください)・Null is not the same meaning as zero.「ヌルはゼロと同意義ではない」
NULL
「NULL」とは、何もない・空っぽを意味する英語表現である。
「NULL」とは・「NULL」の意味
「NULL」とは、何もない・何も示さない・無の状態を意味する英語表現である。主に、データベースにおけるデータ表現、またはプログラミング言語、ネット用語として使われる言葉だ。具体的には、データが全く含まれない状態のことであり、同様の言語として「Nil」を使うこともある。C言語においては、ポインタがNULLを指すことにより、ポインタ自身が何も指していないことを表現できる。C言語とは、人が使う言語に最も近いプログラミング用語で、汎用性の高さが特徴だ。
「NULL」は、文字列、および数列ではないので、何もないという意味の数字「0」、空文字である「””」とは同じ意味で使うことができない。
「NULL」と「0」の具体的な違いは、言語自体に意味を持っているか否かである。具体的には、「0」は数値として「0」という意味を持っているが、「NULL」の場合は何の意味も持っていない。そのため、コンピューターに「0」を入力したら、「0」という数値として演算できるが、「NULL」を入力したときは何の意味もない言語であるため演算することができないのだ。
「NULL」と「””」の具体的な違いは、やはり単語・記号自体が意味を持っているか否かである。「””」は空文字と言い、空文字とは長さが「0」の文字列のことをいう。つまり、「””」は長さが「0」という意味を持った一意の文字列であるが、一方「NULL」は先述したように何も意味を持っていないため、テキストや文字列に「NULL」が含まれている場合は何も設定されていないということになる。
ちなみに、「NULL」に対し、「””」、「>
「NULL」は、英語圏の国ではコンピューター言語以外にも、数学の用語としても使われている。例えば、零行列という意味の「NULL MATRIX」、空集合という意味がある「NULL SET」などがある。同義語には、空っぽという意味の「EMPTY」、整数の「0」と同義である「ZERO」などが挙げられる。
「NULL」の語源は、「0」という数値を表すドイツ語である。その他には、無という意味があるラテン語「nullus」が語源という説もある。
インスタグラムやツイッターなどのユーザー名で「NULL」と表示された場合は、無効という意味で使われている。つまり、実在しない架空のユーザーという意味だ。
「NULL」の読み方
「NULL」の読み方は、「ヌル」、または「ナル」である。基本的に「ヌル」と読むが、インターネット用語として使うときには「ナル」と発音する。「NULL」の熟語・言い回し
「NULL」の熟語・言い回しには、NULL and void、NULLに接続しています、NULL値などがある。NULL and voidとは
NULL and voidとは、無効の・無価値のという意味がある熟語だ。基本的に、法的な価値がないという意味で使われる。
NULLに接続していますとは
NULLに接続していますとは、ネットワークなどが接続できていない状態のことである。「NULL」は何もないという意味なので、ネットの接続先がない時や、デバイス名の取得に失敗した場合などに表示される。
NULLになるとは
NULLになるとは、演算の結果がない、無の状態という意味である。イベントインターフェイスの読み取りプロパティ・currentTargetのプログラミングで、プロパティcurrentTargetの値がNULLになること。
NULL値とは
NULL値とは、データ不足であること、もしくはデータが存在しないことを意味する言葉である。読み方は、「ナルチ」もしくは「ヌルチ」であるが、日本では一般的に「ヌルチ」と呼んでいる。
not NULLとは
not NULLとは、データベースのデータを更新、または追加する際に列に対して制約を与えることである。一般的には、not NULL制約という使い方をする言葉だ。
「NULL」の使い方・例文
「NULL」の使い方・例文は、「NULLをテーブルに格納する」、「長さがゼロの文字列のことをNULL文字列という」、「フィールドの初期値はNULLである」、「カラムにはNULLと表示されている」、「NULLの扱いはプログラミング言語によっても異なる」、「文字コード0番の文字のことをNULL文字という」などがある。その他には、「プログラムから受け取った出力を消滅させるものをNULLデバイスという」、「データベースにおけるNULLは、数値と区別して使わなくてはいけない」、「NULLはデータベース上で初期値として扱われている」、「NULLは使い方を工夫すると大変便利な言語だ」なども挙げられる。
#NULL!
Null
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/03 05:46 UTC 版)
Null(ヌル、ナル)は、何もない、という意味で、プログラミング言語などコンピュータ関係では、「何も示さないもの」を表すのに使われる[注釈 1][1]。同様のものとして、PascalにおけるNil(ニル)、PythonにおけるNone(ナン)、VB.NETにおけるNothing(ナッシング)のように、他のキーワード(予約語)や識別子が使われることもある。
ドイツ語において Null は数値の0(ゼロ)を意味し、発音は /nʊl/ である。一方、英語において null は /nʌl/ と発音される[2]。ドイツ語においても、数値の0と区別するために、本記事の意味の Null は英語風に /nʌl/ と発音される場合がある[3][4]。
日本においては「ヌル」という発音が定着しているが、英語読みに近い「ナル」という発音で呼ばれる場合もある。例えば、JISのJIS X 3005-1:2014「データベース言語SQL 第1部:枠組(SQL/Framework)」(日本産業標準調査会、経済産業省)のP4には「ナル値 (Null Value)」、JIS X 3010:2003「プログラム言語C」(日本産業標準調査会、経済産業省)のP4には「ナル文字 (Null Character)」という記述がある。この他にも専門書[5]や国家試験[6]でも見られる。
プログラミング言語などにおいて、null
やnil
といったキーワード(予約語)あるいは識別子(定数名)などの意味がどういったものかは言語による。場合によっては同じ言語であっても処理系の実装[要出典]や言語バージョンごとに違うことさえある。ポインタや参照のある言語では、ヌルポインタまたはヌル参照などと呼ばれる何も指さない特別なポインタや参照であることもあるし、Pythonのようにオブジェクトのひとつであることもある[注釈 2]。古典的なLISPのように真理値の偽(の代表)や空リスト「()
」を兼ねたもの(それらと同じもの)だったりすることもある。
語源
![]() | この節の出典は、Wikipedia:信頼できる情報源に合致していないおそれがあります。 |
ラテン語で「無」を意味する nullus[2]に由来する[7]。nil もラテン語の nihil の短縮形に由来する[8]。
英語では null はコンピュータに限らず使われ、しばしば zero または empty と交換可能である。例えば、null matrix は zero matrix(零行列)、null set は empty set(空集合)と同義である。ただし、empty matrix すなわち空行列は行数または列数の少なくとも一方が0であるような行列を指し、零行列とは別の概念である。また、null string は empty string(空文字列)と同一視されることもあれば[9]、ヌル参照を意味することもある[10]。一般的なプログラミング言語において、ポインタ変数や参照変数が無効値nullを指している状態と、長さ0の有効な空文字列や空リストなどを指している状態は明確に区別される。
ヌルポインタ
ポインタの値が無効であることを示す。C言語では無効ポインタを表現するための特別な定数値(ヌルポインタ定数)として、実装定義(処理系定義)のNULL
マクロが用意されている[11]。Cの規格ではNULLポインタの内部数値は0とは規定されていないが、0をポインタ型にキャストするとヌルポインタになることは規定されているので、(C17規格までの)代表的な実装では以下のようになっている。
#define NULL ((void*)0)
またC言語から派生したC++では、C言語から引き継いだNULL
マクロが標準化されており、こちらも実装定義となっている[12]。ただし、Cとは違って汎用ポインタ型void*
から他の型へのポインタに暗黙変換することを禁止したため、C++03規格までは以下のように整定数0に展開される実装が一般的であった。
#define NULL 0
しかし、これは基本整数型int
の0と型システムの上では同じになるため、しばしばオーバーロードの呼び間違いが生じることとなった。これを解消するためC++11規格では専用のstd::nullptr_t
型を持つリテラルを表すnullptr
キーワードが導入された[13]。C++11以降は、NULL
マクロはnullptr
に展開される実装もありえる。のちにCにおいても、C23規格にて同様のnullptr
が導入された[14]。
なお、JIS X 3010:2003やJIS X 3014:2003の文面では、翻訳元であるISO/IEC 9899:1999やISO/IEC 14882:2003の文面で使われているnull pointerの対訳として「空ポインタ」と表記されているが、一般的にはヌルポインタと呼ばれることのほうが多い。
ヌル参照
JavaやC#に代表されるように、C++よりも後発の言語ではnullを最初から専用構文として導入した事例が多い。
Javaには構文上ポインタは存在せず、代わりにガベージコレクションによる自動メモリ管理の対象となる「参照型」のインスタンスを指すための「参照」が用いられる。無効な参照を表す定数にはnull
キーワードが使用される。
C#では、ガベージコレクションによる管理対象となる参照型、ポインタ[15]、および値型をラップするジェネリック型として定義されているNullable型(System.Nullable<T>
構造体[16])の無効値を表す定数として、一律null
キーワードが使用される。
その他のヌル
PythonではNone
という名前で、その値は組み込みオブジェクトである。バージョン2.4からNone
には代入できなくなった。
Rubyではnil
という予約語[17]で、意味は組み込みオブジェクト(NilClass
の唯一のインスタンス[18])である。
VB.NETではNothing
というキーワードで、任意のデータ型の既定値を表す[19]。
LISPではNIL
で、どれでも同じようなものだが実体の詳細は様々で、carやcdrをとるとそれぞれでまたnilが返ってくる実装もあればエラーになる実装もある(普通はnilかどうかをまずテストして、carやcdrしないようにする)。
Windows APIのGraphics Device Interface (GDI) では、何も描画しない空のペンやブラシとして、予約済みのオブジェクトを取得するための定数値NULL_PEN
およびNULL_BRUSH
が用意されている[20]。これらを指定したときにGetStockObject()
関数から返却される値はHGDIOBJ
型の有効なオブジェクトハンドルであり、ヌルポインタとは異なる。
null型
構文上、nullは多くの言語で特別なnullリテラルという扱いだが、リテラルのための型「null型」(またはNull型、NULL型とも)が規定される言語が存在する。null型の値はnullのみが許される。
プログラミング言語の文法上null型が存在するケースでは、一般的な型同様にnull型を用いることが出来るが、null型を扱えない言語も存在する。
例えばJavaでは「null型」はあるが、ユーザーコードで利用することはできない。言語仕様では、nullリテラルはnull型であり、null型には名前がなく、null型の変数宣言やnull型へのキャストをすることは不可能である、という扱いとなっている。以上より、null型は内部的に存在するが、構文などの上でそれを扱うことができず、その値を表すリテラルのみが存在する[21]。
ヌル文字
ヌル文字列
nullデバイス
nullデバイスは、存在しない架空のデバイスを表す。nullデバイスに出力すると、実際はどこにも出力されず廃棄される。
UNIXやLinuxでは/dev/null、MS-DOSやMS WindowsではNULで表される。
データベースのNULL
![]() | この節には独自研究が含まれているおそれがあります。 |
データベースのNULLは、欄が空欄であることを示す。これは人が読む用の表(ひょう)のNAにあたり、C言語のNULLよりは浮動小数点演算のNaN(非数)に近い。
具体的にはNULLには、未知・不明 (Unknown) の場合と適用不能・非存在 (Not Applicable, Inapplicable) の場合がある。例えば、名前がNULLの場合、未知のNULLは「名前はあるが分からない」ということを、適用不能のNULLは「名前が存在しない」(例えば、独身者の配偶者の名前)ことを示す。これはエドガー・F・コッドによる分類だが、彼はさらに詳細な分類をしている。
なおそれらに対し、名前欄が空文字列の場合は、(事前の取り決めがなければ)名前はあり、知っていて、欄に書かれている通り「」であることを示す。未知や適用不能のために、空文字列、文字列 'UNKNOWN'、0、-1、9999年12月31日、未使用のコードなど特定のありえない値を例外値として使うことがしばしばあるが、それらは実際の値であるとして処理されてしまう危険がある。
NULLはNULL値(あるいは空値)と呼ばれることもあるが、コッドによると値ではない(特殊な値や例外的な値ではない)。値ではないので型もない。整数型の列にあるNULLも文字列型の列にあるNULLも同じNULLであり、NULL整数・NULL文字列などの区別はない。内部的にはNULLは、(NaNやヌルポインタのような)特定のビット列ではなく、値とは別個の「NULLかどうか」を表すメモリ領域で管理されていることが多い。
SQLのNULL
NULL を含む演算の結果
NULLを含む演算の多くは結果がNULLとなる。例えば
NULL + 1
NULL / 0
NOT NULL
NULL AND TRUE
LENGTH(NULL)
はいずれもNULLである(0で割っても0除算は発生しない)。これは浮動小数点演算でNaNを含む式の結果がNaNになるのと似た規定である。この規定によりNULLを許容する演算は煩雑になりやすくなることから、データーベース・ベンダーによる拡張が行われている場合がある。この問題は、WHERE句でNULLでありうる列を診断しようとしたとき、特にDELETEやUPDATEで悲惨な結果を呼ぶことがある。回避方法は、NULLが混入する可能性を充分に検討し、IS NULL 演算子を駆使して式を慎重に組み立てる以外にない。
ただし少なからず場合に、NULLを含む演算で結果がNULL以外になる。このためNULLは無制限には伝播しない。ただししばしば、NULLの絡んだ演算の実装は不完全で、処理系依存が多い。
比較・IN述語など論理値を返すべき場面では、NULLを含む結果は UNKNOWN となる。UNKNOWN は、値ではないNULL(あるいは「不明 Unknown のNULL」)とは異なり TRUE(真)・FALSE(偽)に並ぶ第3の論理値である。例えば
NULL = NULL
NULL <> NULL
NULL = 1
NULL <> 1
NULL < 1
NULL IN (1, 2, 3)
NULL IN (1, 2, NULL)
などはいずれもUNKNOWNになる。ただし、UNKNOWNの扱いにもNULLに似た難しさがある。
論理式でNULLとならない場合がある。
NULL AND FALSE
NULL OR TRUE
はそれぞれFALSE、TRUEである(NULL AND TRUE、NULL OR FALSE がNULLになるのとの違いに注意)。
Oracleは空文字列とNULLを区別しないため、NULL あるいは空文字列を含む演算で非標準な結果となることがある。例えば、文字列と NULL を連結すると本来は NULL になるが、Oracleでは文字列の値を変えない(ただし NULL 同士の連結は NULL になる)。
'A' || NULL -- IS NULL, ただし Oracle では = 'A'
NULL || NULL -- IS NULL
NULLを扱うための工夫
テーブルの各列には、NULLを保持できないと指定することができる。例えば、全ての行で必ず異なる値が含まれなければならないと指定されている列であっても、複数の行がNULLを保持できてしまう。そこで、この列にNULLを保持できないと指定すればこの問題が回避できる。
ソートでは、NULLはいかなる値よりも小さいとして扱われる(ただしOracleは逆にいかなる値よりも大きいとして扱われるが、オプションで変更できる)。しかし論理値でのソートが実装されていれば、以下のように IS (NOT) NULL を第1のソートキーに使ってNULLを先または後に変更できる。
ORDER BY col IS NOT NULL, col -- NULLは最初
ORDER BY col IS NULL, col -- NULLは最後
また、CASE式やCOALESCE関数(あるいはOracleならNVL関数も可)を使って、NULLに任意の値を割り当ててソートすることができる。以下の句はいずれも、colがNULLならば0を割り当ててソートする。
ORDER BY CASE WHEN col IS NULL THEN 0 ELSE col END
ORDER BY COALESCE(col, 0)
ORDER BY NVL(col, 0) -- Oracleのみ
脚注
注釈
出典
- ^ “「ヌル氏」名前のせいでビザが発行されずホテルの予約もできずインターネット契約すら解約できず他人宛の郵便物が届きまくる - GIGAINE”. 2025年3月3日閲覧。
- ^ a b 実際の発音はHow To Pronounce nullを参照のこと。
- ^ “Wikipedia Deutsch - Nullwert”. 2019年9月15日閲覧。
- ^ “StackExchange - German Language - “null” (zero) vs. “NULL””. 2019年9月15日閲覧。
- ^ Cクイックリファレンス第二版 P57ほか Peter Prinz,Tony Crawford著 黒川利明訳 島敏博技術監修 オライリー・ジャパン発行
- ^ 例えば、平成28年度技術士第1次試験 専門科目 情報工学部門[1]の問III-22
- ^ “null adjective - Definition, pictures, pronunciation and usage notes”. Oxford University Press. 2016年6月2日閲覧。
- ^ “nil noun - Definition, pictures, pronunciation and usage notes”. Oxford University Press. 2016年6月2日閲覧。
- ^ 空文字列(ヌル文字列)とは - 意味をわかりやすく - IT用語辞典 e-Words
- ^ 21.2 Validating Null and Empty Strings - Java Platform, Enterprise Edition: The Java EE Tutorial (Release 7)
- ^ NULL - cppreference.com (C)
- ^ NULL - cppreference.com (C++)
- ^ nullptr - cpprefjp C++日本語リファレンス
- ^ Predefined null pointer constant (since C23) - cppreference.com
- ^ アンセーフ コード、データへのポインター、および関数ポインター - C# reference | Microsoft Learn
- ^ Nullable<T> Struct (System) | Microsoft Learn
- ^ 字句構造 (Ruby 3.3 リファレンスマニュアル)
- ^ class NilClass (Ruby 3.3 リファレンスマニュアル)
- ^ Nothing キーワード - Visual Basic | Microsoft Learn
- ^ GetStockObject function (wingdi.h) - Win32 apps | Microsoft Learn
- ^ The Java® Language Specification Java SE 8 Edition
関連項目
NULL
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/06/06 15:54 UTC 版)
NULLという特別な印(マーク)は、ある行のある列の値など、原則としてどこであれSQLの値を設定できるところであれば値の代わりにつけることができる。この関係モデルからの逸脱は、SQLにおいてこの場当たり的な概念の実装が三値論理の採用と関連しているという事実から、生じる。三値論理においては、NULLをNULL自身と比較すると真(true)とは評価されず、unknown という第三の値に評価される。またNULLをNULL以外の何かと比較すると偽(false)とは評価されず、unknown と評価される。比較におけるこのような振る舞いのために、NULLは値ではなく印(マーク)であると説明されるのである。関係モデルは排中律に依拠している。排中律のもとでは、真と評価されないものは何であれ偽と評価され、偽と評価されないものは何であれ真と評価される。関係モデルでは、関係の本体の全ての組の全ての属性には必ず値が割り当てられている。この逸脱は一部の人々の間で論争の対象となった。なぜなら、エドガー・F・コッド自身が最終的に特殊な印と四値論理の採用を提唱したからである。ただしこの四値論理の提唱はコッドの見解に基づいていた。コッドの見解とは値の代わりに特殊な印をつけたいと思う背景には2つの異なる理由があるということである。こうした経緯はさらに多くの異なる理由の発見するであろうような四値論理の採用に対する反対者を招き、19もの異なる理由が言及された。その場合は二十一値論理が必要となるであろう。SQL自体は、NULLを「未知の値」の表現以外にもいくつかの用途に使っている。例えば、空集合にSUM関数(合計値計算)を適用するとNULLとなる。これは0を意味する。空集合の平均値はNULLである。これは未定義を意味する。NULLは左外部結合の結果でも現れる。これは「右側には対応する行が存在しないため値は無い」を意味する。
※この「NULL」の解説は、「関係モデル」の解説の一部です。
「NULL」を含む「関係モデル」の記事については、「関係モデル」の概要を参照ください。
「Null」に関係したコラム
-
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)のEA(Expert Advisor)の作り方を紹介します。MT4のメニューから「ツール」、「MetaQuotes L...
FXのチャート分析ソフトMT4でサポートラインとレジスタンスラインを自動で表示するには
サポートラインとレジスタンスラインは、為替レートがレンジで推移している時にレンジの下限と上限に水平線を引いたもので、ブレイクアウトを見つけるために用いられます。FX(外国為替証拠金取引)のチャート分析...
FXのチャート分析ソフトMT4のWilliams' Percent Rangeの見方
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)のWilliams' Percent Rangeの見方を解説します。Williams' Percent Rangeは、...
-
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)のインディケーターの作り方について解説します。インディケーターの作り方の大まかな流れは次の通りです。MetaEdito...
-
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)のマルチタイムフレーム(Multi time frame、MTF)とは、1つのチャート画面に他の時間足のチャートを表示...
FXのチャート分析ソフトMT4で1つのチャート画面に2つの通貨ペアを表示するには
FX(外国為替証拠金取引)のチャート分析ソフトMT4(Meta Trader 4)では、1つのチャート画面に1つの通貨ペアのチャートが表示できます。2つの通貨ペアのチャートを見比べたい時には、2つのチ...
- Nullのページへのリンク