pgsql更新操作
PostgreSQL 8.1中国語ドキュメント
Prev
Fast Backward
Chapter 6. データ操作
Fast Forward
Next
6.2. データの更新
データベースに格納されているデータを変更する動作を更新と呼びます.独立したローを更新したり、テーブル内のすべてのローを更新したり、支店の一部を更新したりすることができます.各フィールドを独立して更新できますが、他のフィールドは影響を受けません.
更新を実行するには、次の3つの情報が必要です.テーブルの名前と更新するフィールド名、 フィールドの新しい数値、 更新するローはどれですか.
Chapter 5では、SQLは通常、データ行に一意の識別子を提供しないと述べています.そのため、どのローを更新する必要があるかを直接宣言することはできません.ただし、更新するローが満たさなければならない条件を宣言できます.テーブルにプライマリ・キーが存在する場合(名前にかかわらず)、プライマリ・キーに一致するローを選択する独立したローを確実に指定できます.グラフィックス化されたデータベース・アクセス・ツールは、これに依存して、独立してローを更新できます.
たとえば、このコマンドの更新価格が5のすべての製品の価格は10です.
これにより、ゼロ行、1行以上のデータ行が更新される可能性があります.データ行に一致しない更新をしようとすると、エラーではありません.
この命令をよく見てみましょう.まずはキーワードUPDATE、そしてテーブル名.通常と同じように、テーブル名もモードで修飾することができます.そうしないと、パスから見つけられます.次はキーワードSETで、フィールド名、等号、新しいフィールド数値が続きます.新しいフィールド値は、定数だけでなく任意のスカラー式であってもよい.たとえば、すべての製品の価格を10%引き上げたい場合は、次のように使用できます.
ご覧のように、新しい値に使用する式は、行の既存の数値を参照することもできます.WHERE句も無視しました.この句を無視すると、テーブル内のすべてのローが更新されることを意味します.WHERE句が出現した場合、それに続く条件に一致する行のみが更新される.SET句では等号が付与されており、WHERE句では等号が比較されていることに注意してください.ただし、これは曖昧さを招くことはありません.もちろん条件WHEREは必ずしも等しいテストでなければならないとは限らない.他の多くのオペレータも使用できます(Chapter 9を参照).ただし、式はブール結果を出す必要があります.
また、SET句により多くの付与値をリストするUPDATEコマンドでより多くのフィールドを更新することもできます.例:
Prev
Home
Next
データ操作
Up
データの削除
Prev
Fast Backward
Chapter 6. データ操作
Fast Forward
Next
6.2. データの更新
データベースに格納されているデータを変更する動作を更新と呼びます.独立したローを更新したり、テーブル内のすべてのローを更新したり、支店の一部を更新したりすることができます.各フィールドを独立して更新できますが、他のフィールドは影響を受けません.
更新を実行するには、次の3つの情報が必要です.
Chapter 5では、SQLは通常、データ行に一意の識別子を提供しないと述べています.そのため、どのローを更新する必要があるかを直接宣言することはできません.ただし、更新するローが満たさなければならない条件を宣言できます.テーブルにプライマリ・キーが存在する場合(名前にかかわらず)、プライマリ・キーに一致するローを選択する独立したローを確実に指定できます.グラフィックス化されたデータベース・アクセス・ツールは、これに依存して、独立してローを更新できます.
たとえば、このコマンドの更新価格が5のすべての製品の価格は10です.
UPDATE products SET price = 10 WHERE price = 5;
これにより、ゼロ行、1行以上のデータ行が更新される可能性があります.データ行に一致しない更新をしようとすると、エラーではありません.
この命令をよく見てみましょう.まずはキーワードUPDATE、そしてテーブル名.通常と同じように、テーブル名もモードで修飾することができます.そうしないと、パスから見つけられます.次はキーワードSETで、フィールド名、等号、新しいフィールド数値が続きます.新しいフィールド値は、定数だけでなく任意のスカラー式であってもよい.たとえば、すべての製品の価格を10%引き上げたい場合は、次のように使用できます.
UPDATE products SET price = price * 1.10;
ご覧のように、新しい値に使用する式は、行の既存の数値を参照することもできます.WHERE句も無視しました.この句を無視すると、テーブル内のすべてのローが更新されることを意味します.WHERE句が出現した場合、それに続く条件に一致する行のみが更新される.SET句では等号が付与されており、WHERE句では等号が比較されていることに注意してください.ただし、これは曖昧さを招くことはありません.もちろん条件WHEREは必ずしも等しいテストでなければならないとは限らない.他の多くのオペレータも使用できます(Chapter 9を参照).ただし、式はブール結果を出す必要があります.
また、SET句により多くの付与値をリストするUPDATEコマンドでより多くのフィールドを更新することもできます.例:
UPDATE mytable SET a = 5, b = 3, c = 1 WHERE a > 0;
Prev
Home
Next
データ操作
Up
データの削除