データベース管理システムを理解して操作することで、データベースに関する変更に慣れることができました。これには通常、特定のテーブルに適用される関数の作成、挿入、更新、および削除が含まれます。今回の記事では、挿入方法によってデータがどのように管理されるかを見ていきます。挿入したいテーブルを作成する必要があります。 Insertステートメントは、テーブルの行に新しいデータを追加するために使用されます。 PostgreSQLのinsertsステートメントは、クエリを正常に実行するためのいくつかのルールをカバーしています。最初に、テーブル名に続いて、行を挿入する列名(属性)を指定する必要があります。次に、VALUE句の後にコンマで区切って値を入力する必要があります。最後に、すべての値は、特定のテーブルの作成時に属性リストのシーケンスが提供されるのと同じ順序である必要があります。
構文
>> 入れる の中へテーブル名((column1、桁)。 値 ((「value1」、「value2」)。;ここで、列はテーブルの属性です。キーワードVALUEは、値を入力するために使用されます。 「値」は、入力するテーブルのデータです。
PostgreSQLシェル(psql)への行関数の挿入
postgresqlのインストールが正常に完了したら、データベース名、ポート番号、およびパスワードを入力します。 Psqlが開始されます。次に、それぞれクエリを実行します。
例1:INSERTを使用して新しいレコードをテーブルに追加する
構文に従って、次のクエリを作成します。テーブルに行を挿入するために、customerという名前のテーブルを作成します。それぞれのテーブルには3つの列が含まれています。特定の列のデータ型は、その列にデータを入力し、冗長性を回避するために言及する必要があります。テーブルを作成するためのクエリは次のとおりです。
>> 作成 テーブルお客様((idint、名前 varchar ((40)。、 国varchar ((40)。)。;
テーブルを作成した後、個別のクエリに手動で行を挿入してデータを入力します。まず、属性に関する特定の列のデータの精度を維持するために、列名について説明します。次に、値が入力されます。値は変更なしで挿入されるため、単一のコマによってエンコードされます。
>> 入れる の中へお客様((id、名前、 国)。 値 ((「1」、「アリア」、「パキスタン」);
挿入が成功するたびに、出力は0 1になります。これは、一度に1行が挿入されることを意味します。前述のクエリでは、データを4回挿入しました。結果を表示するには、次のクエリを使用します。
>> 選択する*からお客様;
例2:単一のクエリで複数の行を追加する際にINSERTステートメントを使用する
同じアプローチがデータの挿入に使用されますが、挿入ステートメントを何度も導入することはありません。特定のクエリを使用して、一度にデータを入力します。 1つの行のすべての値は、次のクエリを使用して区切られます。必要な出力が得られます。
例3:別のテーブルの数値に基づいて1つのテーブルに複数の行を挿入する
この例は、あるテーブルから別のテーブルへのデータの挿入に関連しています。 aとbの2つのテーブルについて考えてみます。表aには、名前とクラスの2つの属性があります。 CREATEクエリを適用することにより、テーブルを導入します。テーブルの作成後、挿入クエリを使用してデータが入力されます。
>> 入れる の中へに値 ((「アムナ」、1)。、((「ビーシュマ」、」2')。、((「javed」、」3')。、(('下'、4')。;
超過理論を使用して、4つの値がテーブルに挿入されます。 selectステートメントを使用して確認できます。
同様に、すべての名前とサブジェクトの属性を持つテーブルbを作成します。同じ2つのクエリが、対応するテーブルのレコードの挿入とフェッチに適用されます。
>> 作成 テーブルNS((allnames varchar((30)。、件名varchar((70)。)。;
選択した理論によってレコードを取得します。
>> 選択する*からNS;
テーブルの値を挿入するには NS 表では、次のクエリを使用します。このクエリは、テーブル内のすべての名前が次のように機能するように機能します NS テーブルに挿入されます に 表のそれぞれの列に特定の数が出現した回数を示す数を数える NS 。 b.allnamesは、テーブルを指定するためのオブジェクト関数を表します。 Count(b.allnames)関数は、発生総数をカウントするために機能します。すべての名前が一度に出現するため、結果の列には1つの番号が付けられます。
>> 入れる の中へに((名前、クラス)。 選択するb.allnames、カウント((b.allnames)。 からNSグループ にb.allnames;
例4:存在しない場合は行にデータを挿入する
このクエリは、行が存在しない場合に行を入力するために使用されます。まず、提供されたクエリは、行がすでに存在するかどうかをチェックします。すでに存在する場合、データは追加されません。また、データが連続して存在しない場合は、新しい挿入が保持されます。ここで、tmpは、しばらくの間データを格納するために使用される一時変数です。
例5:INSERTステートメントを使用したPostgreSQLアップサート
この関数には2つの種類があります。
- 更新:競合が発生した場合、 レコードがテーブル内の既存のデータと一致する場合、新しいデータで更新されます。
- 競合が発生した場合は、何もしないでください :レコードがテーブル内の既存のデータと一致する場合、レコードをスキップするか、エラーが見つかった場合、そのレコードも無視されます。
最初に、いくつかのサンプルデータを含むテーブルを作成します。
>> 作成 テーブルtbl2((IDINT 主要な 鍵、名前 キャラクターの変化)。;テーブルを作成した後、クエリを使用してtbl2にデータを挿入します。
>> 入れる の中へtbl2値 ((1、「uzma」)。、((2、「アブドゥル」)。、((3、「ハムナ」)。、((4、「ファティマ」)。、((5、'shiza')。、((6、'ジャベリア');
競合が発生した場合は、以下を更新します。
>>入れる の中へtbl2値 ((8、'乗る')。 オン対立((ID)。 NS アップデート 設定 名前=除外。名前;
最初に、ID8の競合クエリと名前Ridaを使用してデータを入力します。同じIDの後に同じクエリが使用されます。名前が変更されます。これで、テーブル内の同じIDで名前がどのように変更されるかがわかります。
>> 入れる の中へtbl2値 ((8、'仕事')。 オン対立((ID)。 NS アップデート 設定 名前 =除外。名前;
ID 8で競合が発生したため、指定された行が更新されます。
競合が発生した場合は、何もしないでください
>> 入れる の中へtbl2値 ((9、'Hira')。 オン対立((ID)。 NS なし;このクエリを使用して、新しい行が挿入されます。その後、同じクエリを使用して、発生した競合を確認します。
>>入れる の中へtbl2値 ((9、'Hira')。 オン対立((ID)。 NS なし;
上の画像によると、クエリINSERT 0 0の実行後、データが入力されていないことがわかります。
結論
データベース関係の冗長性を減らすために、データが存在しないか、レコードが見つかった場合に挿入が完了しないテーブルに行を挿入するという概念を理解しました。