制約は、テーブルの特定の列に適用される制限または制限と呼ばれます。 特定の列に割り当てられている追加の特権を指す場合もあります。 その制約の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が指定されているレコードはありません。
((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つのレコードを追加しました。
((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.