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 サイトの他の関連記事を参照してください。

MySQLは、小規模およびオープンソースプロジェクトにGPLおよび商業ライセンスを使用しています。 Oracleは、高性能を必要とする企業に商用ライセンスを使用しています。 MySQLのGPLライセンスは無料で、商業ライセンスには支払いが必要です。 Oracleライセンス料は、プロセッサまたはユーザーに基づいて計算され、コストは比較的高くなります。

データベースからクラウドサービスへのOracleの進化は、その強力な技術的強さと市場の洞察を示しています。 1。Oracleは1970年代に発信され、リレーショナルデータベース管理システムで有名であり、PL/SQLなどの革新的な機能を立ち上げました。 2。Oracleデータベースのコアは、マルチテナントアーキテクチャをサポートするリレーショナルモデルとSQL最適化です。 3. Oracle Cloud Servicesは、OCIを介してIAAS、PAAS、SAASを提供し、AutonomousDatabaseはうまく機能します。 4. Oracleを使用する場合、クラウド移行の複雑なライセンスモデル、パフォーマンスの最適化、データセキュリティの問題に注意を払う必要があります。

Oracleは、高性能および複雑なクエリを必要とするエンタープライズレベルのアプリケーションに適しており、MySQLは迅速に開発および展開されるWebアプリケーションに適しています。 1. Oracleは、財務および大規模なERPシステムに適した複雑なトランザクション処理と高可用性をサポートしています。 2.MYSQLは、使いやすさとオープンソースのサポートを強調し、中小企業やインターネットプロジェクトで広く使用されています。

MySQLとOracleの間のユーザーエクスペリエンスの違いは、主に以下に反映されています。1。MySQLは簡単で使いやすく、迅速なアクセスと柔軟性の高いシナリオに適しています。 2。Oracleには、エンタープライズレベルのサポートが必要なシナリオに適した強力な機能があります。 MySQLのオープンソースと無料の機能は、スタートアップと個々の開発者を引き付け、Oracleの複雑な機能とツールは大企業のニーズを満たしています。

パフォーマンスとスケーラビリティにおけるMySQLとOracleの違いは次のとおりです。1。MySQLは、高速スケーリングと効率的な読み取りとライティングに適した、中小サイズのデータセットでパフォーマンスが向上します。 2。Oracleには、高可用性と複雑なビジネスロジックに適した、大規模なデータセットと複雑なクエリの処理においてより多くの利点があります。 MySQLはマスター奴隷の複製とシャーディングテクノロジーを通じて拡張され、OracleはRACを通じて高可用性とスケーラビリティを達成します。

Oracleソフトウェアの主な機能には、マルチテナントアーキテクチャ、高度な分析とデータマイニング、リアルタイムアプリケーションクラスタリング(RAC)、自動化された管理と監視が含まれます。 1)マルチテナントアーキテクチャにより、1つのデータベースインスタンスで複数の独立したデータベースの管理が可能になり、管理とコストの削減が簡素化されます。 2)Oracle Advanced AnalyticsやOracLedataminingなどの高度な分析とデータマイニングツールは、データから洞察を抽出するのに役立ちます。 3)リアルタイムアプリケーションクラスター(RAC)は、高可用性とスケーラビリティを提供し、システム障害の許容度とパフォーマンスを向上させます。 4)毎日のメンテナンスタスクを自動化し、リアルタイムで数値を監視するためのOracle EnterpriseManager(OEM)などの自動管理および監視ツール

Oracleは、データ管理およびエンタープライズアプリケーションの分野に大きな影響を与えます。そのデータベースは、その信頼性、スケーラビリティ、セキュリティで知られており、金融、医療、政府などの業界で広く使用されています。 Oracleの影響は、WeblogicserverやOraclecloudinfrastructure(OCI)などのミドルウェアやクラウドコンピューティングフィールドにも拡大し、革新的なソリューションを提供しています。オープンソースのデータベースとクラウドコンピューティング市場での競争にもかかわらず、Oracleは継続的なイノベーションを通じてその主要な地位を維持しています。

Oracleの使命は、「人々がデータの価値を見るのを助ける」ことであり、そのコアバリューには次のものが含まれます。1)顧客最初、2)誠実さ、3)イノベーション、4)チームワークこれらの価値は、Oracleの戦略的意思決定と市場におけるビジネスイノベーションを導きます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

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

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









