もっと詳しく

制約は、テーブルの特定の列に適用される制限または制限と呼ばれます。 特定の列に割り当てられている追加の特権を指す場合もあります。 その制約の1つは、SQLデータベースのNOTNULL制約です。 NOT NULL制約で指定された列に関係なく、その列を値なしで残すことはできません。 したがって、Ubuntu 20.04でこの記事を実装する際に、SQLiteデータベース内でのNOTNULL制約の使用について説明することにしました。 SQLiteデータベースでNOTNULL制約を使用する図に進む前に、Ctrl + Alt + T命令を使用してUbuntuターミナルを開き、以下に示す命令を使用してシステムを更新およびアップグレードする必要があります。

LinuxシステムにSQLのSQLiteCライブラリがすでにインストールされていることを確認してください。 その後、キーワード「sqlite3」を使用してシェルターミナル内で起動する必要があります。 静的シェルは、SQLiteデータベース用のUbuntu20.04のシェル内で開かれます。

SQLiteデータベースにあるすべてのテーブルを一覧表示しましょう。 したがって、「。tables」命令を試してみます。 Sqlite3データベースにはまだデータベースが含まれていません(つまり、「。tables」命令による)。

制約は、テーブルの列にのみ適用できます。 テーブルがない場合、列はありません。 したがって、制約はありません。 したがって、NOTNULL制約を適用できるテーブルをデータベースに作成する必要があります。 したがって、データベースでは、CREATE TABLE命令を使用して、「Test」という名前のテーブルを1つ作成できます。 このテーブルには、「ID」と「Name」の合計2つの列が含まれます。 列IDは整数型であり、テーブルの主キーとして使用されます。 「名前」列はテキストタイプであり、テーブルの作成時に指定されたNOT NULL制約の使用により、Nullであってはなりません。 これで、「。tables」命令に従って、データベースに新しいテーブル「Test」が作成されました。

SELECT命令を使用してテストテーブルのレコードをフェッチすると、テーブルが現在空になっていることがわかります。 したがって、最初にいくつかのレコードを追加する必要があります。

SQLのINSERTINTO命令に続いて、テーブルの名前とその列を使用して、その列内にデータレコードを挿入します。 「VALUES」キーワードの後に​​レコードを追加し、その後に合計10個のレコードを保持する単純な括弧を追加する必要があります。 以下に示す限り、「名前」列にNULLが指定されているレコードはありません。

入れる の中へ テスト((ID 名前)。 ((1 「ジョージ」)。 ((2 「ベラ」)。 ((3 「ポール」)。 ((4 「ジョニー」)。

((5 「ケティ」)。 ((6 「アンジェリーナ」)。 ((7 「ニーナ」)。 ((8 「ディリラバ」)。 ((9 「トム」)。 ((10 「タイラー」)。;

入れる の中へ テスト((ID 名前)。 ((11 “”)。 ((12 “”)。;

入れる の中へ テスト((ID 名前)。 ((11)。 ((12)。;

入れる INTO テスト((ID 名前)。 ((13 ヌル)。 ((14 ヌル)。;

レコードをテストテーブルに挿入した後、SELECT命令を試して、SQLiteシェルにすべてのデータを表示しました。 IDと名前の列に10個のレコードが表示されました。

テストテーブルの「名前」列にデータを挿入するときに、NOTNULL制約がスペースとNULLキーワードにどのように反応するかを見てみましょう。 そのため、INSERTINTO命令のVALUES部分内の「Name」列の場所に空の値「」を使用しました。 レコードはテーブルTestに正常に追加されました。 シェルでSELECT命令を使用した後、レコード11と12の列「Name」に何も表示されておらず、スペースをNOTNULL値として取っていることがわかりました。

制約NOTNullを含み、特定の列の値を追加しない列名を使用してINSERT INTO命令を試行すると、エラーがスローされます:以下に示すように「2列に1つの値」。 このエラーを削除するには、「名前」列に値を入力し、空のままにしないでください。

INSERT INTO命令のVALUES部分にNULLキーワードを入れて、NOTNULL制約を含む列「Name」のnullレコードを追加しましょう。 NULLキーワードを使用してこの命令を実行すると、「NOT NULL制約に失敗しました:test.Name」というエラーがスローされます。 これは、NOT NULL制約の制限により、列「Name」に値としてNULLを入れることができないことを意味します。

別の例を見てみましょう。 そのため、CREATE TABLE命令を使用して、ID、Name、Ageの3つの列を持つ新しいテーブルActorを作成しました。 どの列にもNOTNULL制約が含まれていません。

>> 作成 テーブル 俳優((ID INT 主要な 名前テキストINT)。;

現在、以下のSELECT“ *”命令に従って、テーブルActorは空です。

INSERT INTO命令を使用して、最初にテーブル「Actor」にいくつかのレコードを配置する必要があります。 そのため、ID、Name、Ageの3つの列すべてに5つのレコードを追加しました。

>> 入れる の中へ 俳優((ID 名前)。 ((1 “ジュリア” 49)。 ((2 「アンジェリーナ」 49)。

((3 「レオナルド」 50)。 ((4 「トム」 55)。;

SELECT命令を試して、「Actor」テーブルの新しく追加されたすべてのレコードをフェッチしました。 合計5つのレコードが、NULL値なしで画面に表示されています。

INSERT INTO命令を使用して、NULL値を含むActorテーブル内に新しいレコードを追加してみましょう。 そこで、3つの列すべてに対して命令を試し、「Age」列にNULL値を追加しました。 テーブル「Actor」のどの列にもNOTNULL制約を設定していないため、レコードはテーブルに正常に挿入され、エラーはスローされませんでした。 テーブルActorのSELECT命令の使用により、最初の5つの追加レコードすべてと、その列「Age」にNULL値を持つ6番目のレコードが表示されています。

>> 入れる の中へ 俳優((ID 名前)。 ((1 「エマ・ワトソン」 ヌル)。
<ブロッククォート>> 選択する * から 俳優;

つまり、これはSQLiteテーブルの特定の列にNOTNULL制約を使用することに関するものでした。 NOT NULL制約を使用して列内に値を配置しない場合にデータベースがどのように反応するか、および列値でNULL値を使用する方法を示しました。

The post SQLiteNOTNULL制約 appeared first on Gamingsym Japan.