検索
ホームページデータベースOracleOracleデータベースのフィールドを変更する方法

Oracle では、「ALTER TABLE MODIFY」ステートメントを使用してフィールドを変更できます。構文は「ALTER TABLE テーブル名 MODIFY フィールド名 実行する必要がある操作」です。一般的な操作には次のものが含まれます: 列の可視性の変更、列のデフォルト値の変更、仮想列を変更する式など。

Oracleデータベースのフィールドを変更する方法

このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle データベースのフィールドを変更する方法

Oracle では、「ALTER TABLE MODIFY」ステートメントを使用してフィールドを変更し、既存のフィールドの値。定義。

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

ALTER TABLE 表名 
MODIFY 字段名 需要执行的操作;

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

Oracle ではさまざまな操作を実行できますが、一般的に使用される主な操作は次のとおりです。

  • 列の表示/非表示を変更する

  • NULL 値を許可または禁止する

  • 列のサイズを短縮または拡大する

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

  • 仮想列を変更する式

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

ALTER TABLE 表名
MODIFY (
    字段名1 action,
    字段名2 action,
    ...
);

Oracle ALTER TABLE MODIFY列の例

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

-- 12c语法
CREATE TABLE accounts (
    account_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    first_name VARCHAR2(25) NOT NULL,
    last_name VARCHAR2(25) NOT NULL,
    email VARCHAR2(100),
    phone VARCHAR2(12) ,
    full_name VARCHAR2(51) GENERATED ALWAYS AS( 
            first_name || ' ' || last_name
    ),
    PRIMARY KEY(account_id)
);

2 番目に、新しいテーブルを作成します。テーブルを accounts テーブルにいくつかの行を挿入します: <pre class="brush:php;toolbar:false">INSERT INTO accounts(first_name,last_name,phone) VALUES('Trinity',        'Knox',        '410-555-0197'); INSERT INTO accounts(first_name,last_name,phone) VALUES('Mellissa',        'Porter',        '410-555-0198'); INSERT INTO accounts(first_name,last_name,phone) VALUES('Leeanna',        'Bowman',        '410-555-0199');</pre>

Third

、次の SELECT ステートメントを使用して挿入操作を確認します: <pre class="brush:php;toolbar:false">SELECT     * FROM     accounts;</pre>上記のクエリ ステートメントを実行すると、次の結果が得られます -

Oracleデータベースのフィールドを変更する方法

#1. 列の表示/非表示を変更しますOracle 12c では、テーブル列を非表示または表示として定義できます。非表示の列は、

SELECT
    *
FROM
    table_name;

DESCRIBE table_name;

などのクエリには使用できません。非表示の列は見つかりません。

ただし、非表示の列をクエリで明示的に指定することで、非表示の列をクエリすることは可能です。

SELECT
    invisible_column_1,
    invisible_column_2
FROM
    table_name;

デフォルトでは、テーブルの列は表示されます。非表示の列は、テーブルの作成時、または

ALTER TABLE MODIFY

列ステートメントを使用するときに定義できます。 たとえば、次のステートメントは

full_name

列を非表示にします: <pre class="brush:php;toolbar:false">ALTER TABLE accounts  MODIFY full_name INVISIBLE;</pre> テーブル内のクエリ データを再度実行すると、次の結果が得られます-

Oracleデータベースのフィールドを変更する方法次のステートメントは、

full_name

列を除く accounts テーブルのすべての列のデータを返します。 <pre class="brush:php;toolbar:false">SELECT     * FROM     accounts;</pre>これは ## のためです。 #full_name

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

ALTER TABLE accounts 
MODIFY full_name VISIBLE;
2. null を許可または禁止する例

次のステートメント 変更email

列は空ではない (

not null) 値を受け入れます:

ALTER TABLE accounts 
MODIFY email VARCHAR2( 100 ) NOT NULL;
ただし、Oracle は次のエラーを発行します:
SQL Error: ORA-02296: cannot enable (OT.) - null values found
列を

null

から

not null に変更する場合は、既存のデータが新しい制約に準拠していることを確認する必要があります (つまり、NULL が許可されていない場合)元のデータ)。 この問題を解決するには、まず email

列の値を更新します:

UPDATE 
    accounts
SET 
    email = LOWER(first_name || '.' || last_name || '@oraok.com') ;
LOWER() 関数は文字列を変換することに注意してください。小文字にします。

次に、email

列の制約を変更します:

ALTER TABLE accounts 
MODIFY email VARCHAR2( 100 ) NOT NULL;
これで、期待どおりに動作するはずです。

3. 列のサイズを拡大または縮小する例

国際コードを phone## に追加するとします。 # 列 (例:

86

をプレフィックスとして付けます)。列の値を変更する前に、次のステートメントを使用して phone 列のサイズを拡張する必要があります: <pre class="brush:php;toolbar:false">ALTER TABLE accounts  MODIFY phone VARCHAR2( 24 );</pre> これで、電話番号データを更新できます: <pre class="brush:php;toolbar:false">UPDATE     accounts SET     phone = '+86 ' || phone;</pre>次のステートメント検証更新:

<pre class="brush:php;toolbar:false">SELECT     * FROM     accounts;</pre>

上記のクエリ ステートメントの実行結果では、元の電話番号の国際市外局番の前に

86

が付いていることが確認できるはずです。 。

#列のサイズを短くするには、列内のすべてのデータが新しいサイズに適合することを確認してください。

Oracleデータベースのフィールドを変更する方法たとえば、

phone

列のサイズを

12

文字に削減しようとすると、<pre class="brush:php;toolbar:false">ALTER TABLE accounts  MODIFY phone VARCHAR2( 12 );</pre>Oracle Database は次のエラーを発行します: <pre class="brush:php;toolbar:false">SQL Error: ORA-01441: cannot decrease column length because some  value is too big</pre>この問題を解決するには、まず電話番号から国際コードを削除する必要があります (例:

86

):

UPDATE
    accounts
SET
    phone = REPLACE(
        phone,
        '+86 ',
        ''
    );

REPLACE() 関数は部分文字列を次のように置き換えます。新しい文字列。この場合、 86 は空の文字列に置き換えられます。

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

<pre class="brush:php;toolbar:false">ALTER TABLE accounts  MODIFY phone VARCHAR2( 12 );</pre>

4. 仮想列

# を変更します。 ##前提条件 次の 2 列形式でフルネームを入力します:

last_name, first_name
これを行うには、仮想列 full_name

の式を次のように変更します。
ALTER TABLE accounts 
MODIFY full_name VARCHAR2(52) 
GENERATED ALWAYS AS (last_name || ', ' || first_name);

以下语句验证修改:

<pre class="brush:php;toolbar:false">SELECT     * FROM     accounts;</pre>

执行上面查询语句,可以看到以下结果 

Oracleデータベースのフィールドを変更する方法

5. 修改列的默认值

添加一个名为status的新列,默认值为1accounts表中。参考以下语句 -

ALTER TABLE accounts
ADD status NUMBER( 1, 0 ) DEFAULT 1 NOT NULL ;

当执行了该语句,就会将accounts表中的所有现有行的status列中的值设置为1

要将status列的默认值更改为0,请使用以下语句:

ALTER TABLE accounts 
MODIFY status DEFAULT 0;

可以在accounts表中添加一个新行来检查status列的默认值是0还是1

INSERT INTO accounts ( first_name, last_name, email, phone )
VALUES ( 'Julia',
         'Madden',
         'julia.madden@oraok.com',
         '410-555-0200' );

现在,查询accounts表中的数据:

SELECT
  *
FROM
  accounts;

执行上面查询语句,应该看类似下面的结果 

Oracleデータベースのフィールドを変更する方法

正如所看到的那样,ID4的账户的status列的值是0

推荐教程:《Oracle教程

以上がOracleデータベースのフィールドを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Oracle Backup&Recovery:データの整合性と可用性の確保Oracle Backup&Recovery:データの整合性と可用性の確保Apr 10, 2025 am 09:40 AM

Oracleのバックアップと回復の中心的な目的は、データが失われたり破損したりしたときに、データベースを一貫した状態に迅速に復元することです。 1。バックアップフェーズ:RMANまたはその他のツールを介してデータベースファイルをバックアップメディアにコピーします。 2。回復フェーズ:データベースが失敗したら、最初にバックアップデータを復元し、次にREDOログファイルを適用して事前に故障した状態に復元します。

Oracle Real Application Clusters(RAC):スケーラビリティと高可用性Oracle Real Application Clusters(RAC):スケーラビリティと高可用性Apr 09, 2025 am 12:16 AM

Oracleracは、マルチノード共有データベースストレージを通じて、高可用性とスケーラビリティを実現します。その作業原則には、システムの効率的な動作とデータの一貫性を確保するために、ロードバランス、フェイルオーバー、動的ノード拡張が含まれます。

Oracle Cloud Infrastructure(OCI):クラウド内のOracleデータベースの展開と管理Oracle Cloud Infrastructure(OCI):クラウド内のOracleデータベースの展開と管理Apr 08, 2025 am 12:09 AM

OCIのOracleデータベースの展開と管理は、次の手順を通じて実現できます。1。ocipythonsdkを使用してデータベースインスタンスを作成し、設定パラメーターを設定します。 2。ネットワークとストレージのリソースを構成します。 3.データベースに接続し、SQLクエリを実行します。 4.データベースのバックアップおよび回復操作を実行します。 5.リソースの構成、ネットワークの最適化、バックアップポリシーを調整して、データベースのパフォーマンスを最適化します。これは、ユーザーが必要な構成パラメーターを提供するだけで、OCIが残りの作業を処理する非常に自動化されたプロセスです。

Oracleインタビューの質問:データベース管理者のインタビューをクラックしますOracleインタビューの質問:データベース管理者のインタビューをクラックしますApr 07, 2025 am 12:17 AM

Oracledbaのインタビューの準備では、データベースアーキテクチャ、パフォーマンスの調整、バックアップやリカバリなどのコア知識を習得する必要があります。 1.インスタンスとデータベースの関係を含むOracleデータベーススキーマを理解します。 2。SQLチューニングやインデックスの最適化などのマスターパフォーマンスチューニング方法。 3.バックアップと回復戦略に精通し、RMANおよびデータポンプツールを使用します。これらの準備を通じて、インタビューで専門的なスキルを実証し、インタビューに成功することができます。

高度なOracle SQLチューニング:専門家のクエリパフォーマンスの最適化高度なOracle SQLチューニング:専門家のクエリパフォーマンスの最適化Apr 06, 2025 am 12:06 AM

OraclesQlチューニングは、次の手順でクエリパフォーマンスを改善できます。1。部門列のインデックスの作成など、適切なインデックスを作成します。 2。実行計画を分析し、説明と最適化を行い、最適化します。 3.サブクエリを使用して不必要な接続操作を避けるなど、SQL書き換えを実行します。これらの方法により、Oracleデータベースのクエリ効率を大幅に改善できます。

Oracleデータベースセキュリティ:データの強化と保護Oracleデータベースセキュリティ:データの強化と保護Apr 05, 2025 am 12:17 AM

Oracleデータベースのセキュリティは、認証、承認、暗号化、監査など、さまざまな手段を通じて達成できます。 1)ユーザー認証と承認のためにパスワードファイルを使用します。 2)透明なデータ暗号化(TDE)を介して機密データを保護します。 3)仮想プライベートデータベース(VPD)を使用して、細粒のアクセス制御を実現します。これらの方法により、データの機密性、完全性、および可用性が保証されます。

Oracle Goldengate:リアルタイムのデータレプリケーションと統合Oracle Goldengate:リアルタイムのデータレプリケーションと統合Apr 04, 2025 am 12:12 AM

OracleGoldEngateを有効にして、ソースデータベースのトランザクションログをキャプチャし、ターゲットデータベースに変更を適用することにより、リアルタイムのデータレプリケーションと統合を可能にします。 1)変更のキャプチャ:ソースデータベースのトランザクションログを読み取り、トレイルファイルに変換します。 2)送信の変更:ネットワーク上のターゲットシステムへの送信、および送信はデータポンププロセスを使用して管理されます。 3)アプリケーションの変更:ターゲットシステムでは、コピープロセスがトレイルファイルを読み取り、変更を適用してデータの一貫性を確保します。

Oracle PL/SQL Deep Dive:マスタリング手順、機能、パッケージOracle PL/SQL Deep Dive:マスタリング手順、機能、パッケージApr 03, 2025 am 12:03 AM

OraclePl/SQLの手順、機能、パッケージは、それぞれ操作、返品値、および整理コードを実行するために使用されます。 1.プロセスは、挨拶の出力などの操作を実行するために使用されます。 2。関数は、2つの数値の合計を計算するなど、値を計算して返すために使用されます。 3.パッケージは、関連する要素を整理し、在庫を管理するパッケージなど、コードのモジュール性と保守性を向上させるために使用されます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター