Oracle では、「ALTER TABLE MODIFY」ステートメントを使用してフィールドを変更できます。構文は「ALTER TABLE テーブル名 MODIFY フィールド名 実行する必要がある操作」です。一般的な操作には次のものが含まれます: 列の可視性の変更、列のデフォルト値の変更、仮想列を変更する式など。
このチュートリアルの動作環境: Windows 7 システム、Oracle 11g バージョン、Dell G3 コンピューター。
Oracle データベースのフィールドを変更する方法
Oracle では、「ALTER TABLE MODIFY
」ステートメントを使用してフィールドを変更し、既存のフィールドの値。定義。
テーブル内の列の定義を変更するには、次のように ALTER TABLE MODIFY
column 構文を使用します。
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>
、次の SELECT ステートメントを使用して挿入操作を確認します: <pre class="brush:php;toolbar:false">SELECT
*
FROM
accounts;</pre>
上記のクエリ ステートメントを実行すると、次の結果が得られます -
#1. 列の表示/非表示を変更しますOracle 12c では、テーブル列を非表示または表示として定義できます。非表示の列は、
SELECT * FROM table_name;
や
DESCRIBE table_name;
などのクエリには使用できません。非表示の列は見つかりません。
ただし、非表示の列をクエリで明示的に指定することで、非表示の列をクエリすることは可能です。
SELECT invisible_column_1, invisible_column_2 FROM table_name;
デフォルトでは、テーブルの列は表示されます。非表示の列は、テーブルの作成時、または
ALTER TABLE MODIFY 列ステートメントを使用するときに定義できます。 たとえば、次のステートメントは
列を非表示にします: <pre class="brush:php;toolbar:false">ALTER TABLE accounts
MODIFY full_name INVISIBLE;</pre>
テーブル内のクエリ データを再度実行すると、次の結果が得られます-
次のステートメントは、
列を除く 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>
次のステートメント検証更新:
上記のクエリ ステートメントの実行結果では、元の電話番号の国際市外局番の前に
86が付いていることが確認できるはずです。 。
たとえば、
列のサイズを
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>
この問題を解決するには、まず電話番号から国際コードを削除する必要があります (例:
):
UPDATE accounts SET phone = REPLACE( phone, '+86 ', '' );
REPLACE() 関数は部分文字列を次のように置き換えます。新しい文字列。この場合、 86
は空の文字列に置き換えられます。
次に、phone
列のサイズを短くします:
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>执行上面查询语句,可以看到以下结果
5. 修改列的默认值
添加一个名为status
的新列,默认值为1
到accounts
表中。参考以下语句 -
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;
执行上面查询语句,应该看类似下面的结果
正如所看到的那样,ID
为4
的账户的status
列的值是0
。
推荐教程:《Oracle教程》
以上がOracleデータベースのフィールドを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

WebStorm Mac版
便利なJavaScript開発ツール

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

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

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター
