Oracle ALTER TABLEMODIFY列

概要:このチュートリアルでは、Oracle ALTER TABLE MODIFYの使用方法を学習します。既存の列の定義を変更するためのcolumnステートメント。

テーブル内の列の定義を変更するには、次のようにALTER TABLE MODIFY列構文を使用します。

ステートメントは単純です。テーブルの列を変更するには、実行する列名、テーブル名、およびアクションを指定する必要があります。

Oracleでは多くのアクションを実行できますが、主なアクションは次のとおりです。

  • 列の表示を変更する
  • null値を許可するかどうか
  • 列のサイズを短くするか大きくする
  • を変更する列のデフォルト値
  • 仮想列の式を変更する

複数の列を変更するには、次の構文を使用します。

Oracle ALTER TABLEMODIFY列の例

まず、デモ用にaccountsという名前の新しいテーブルを作成します。

次に、いくつかの行をaccountsテーブルに挿入します。

3番目に、次のSELECTステートメント:

A)列の表示を変更しますity

Oracle Database 12cでは、テーブルの列を非表示または表示として定義できます。非表示の列は、次のようなクエリでは使用できません:

または次のようなステートメント:

SQL * Plusで。

ただし、クエリで明示的に指定することにより、非表示の列をクエリできます。

Byデフォルトでは、テーブルの列が表示されます。テーブルを作成するとき、またはALTER TABLE MODIFY列ステートメントを使用するときに非表示の列を定義できます。

たとえば、次のステートメントはfull_name列が非表示:

次のステートメントは、full_name列を除くaccountsテーブルのすべての列からデータを返します。 :

これは、full_name列が表示されないためです。

変更するには列を非表示から表示に変更するには、次のステートメントを使用します。

B)nullの例を許可するかどうか

次のステートメントの変更null以外の値を受け入れるemail列:

ただし、Oracleは次のエラーを発行しました:

列をnull可能からnに変更したときon-nullableの場合、既存のデータが新しい制約を満たしていることを確認する必要があります。

これを修正するには、最初にemail列の値を更新します。

LOWER()関数は文字列を小文字に変換することに注意してください。

次に、列の制約:

これで、期待どおりに機能します。

C)列の例のサイズを拡大または縮小します

電話番号に国際コードを追加するとします。その前に、次のステートメントを使用して電話列のサイズを広げる必要があります。

これで、電話番号を更新できます:

次のステートメントは、更新を確認します:

列のサイズを短くするには、列のすべてのデータが新しいサイズに収まるようにします。

たとえば、phone列のサイズを12文字に短縮しようとしています。

OracleDatabaseは次のエラーを発行しました。

これを修正するには、まず、電話番号から国際コードを削除する必要があります。

REPLACE()関数は、サブストリングを新しいサブストリングに置き換えます。この場合、「+ 1-」は空の文字列に置き換えられます。

次に、phone列のサイズを短くします:

D)変更仮想列

次の形式のフルネームを想定します:

これを行うには、の式を変更します。仮想列full_nameは次のとおりです。

次のステートメントは、変更を確認します。

E)列のデフォルト値を変更する

statusという名前の新しい列をデフォルト値でaccountsテーブルに追加しましょう1.

ステートメントを実行すると、accountsテーブルの既存のすべての行のステータス列の値が1に設定されます。

デフォルト値を変更するにはoステータス列が0の場合、次のステートメントを使用します。

accountsstatus列のデフォルト値が0か1かを確認するdiv>テーブル

クエリデータaccountsテーブルから:

ご覧のとおり、ID4のアカウントのステータス列の値は予想どおり0です。

このチュートリアルでは、Oracle ALTER TABLE MODIFY列ステートメントを使用してテーブル内の既存の列の定義を変更する方法を学習しました。

  • このチュートリアルは役に立ちましたか?
  • はいいいえ

Write a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です