Oracleデータベースのフィールドを変更する方法
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 テーブルにいくつかの行を挿入します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">INSERT INTO accounts(first_name,last_name,phone)
VALUES(&#39;Trinity&#39;,
&#39;Knox&#39;,
&#39;410-555-0197&#39;);
INSERT INTO accounts(first_name,last_name,phone)
VALUES(&#39;Mellissa&#39;,
&#39;Porter&#39;,
&#39;410-555-0198&#39;);
INSERT INTO accounts(first_name,last_name,phone)
VALUES(&#39;Leeanna&#39;,
&#39;Bowman&#39;,
&#39;410-555-0199&#39;);</pre><div class="contentsignin">ログイン後にコピー</div></div>
、次の SELECT ステートメントを使用して挿入操作を確認します: <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SELECT
*
FROM
accounts;</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>
上記のクエリ ステートメントを実行すると、次の結果が得られます -
#1. 列の表示/非表示を変更しますOracle 12c では、テーブル列を非表示または表示として定義できます。非表示の列は、
SELECT * FROM table_name;
や
DESCRIBE table_name;
などのクエリには使用できません。非表示の列は見つかりません。
ただし、非表示の列をクエリで明示的に指定することで、非表示の列をクエリすることは可能です。
SELECT invisible_column_1, invisible_column_2 FROM table_name;
デフォルトでは、テーブルの列は表示されます。非表示の列は、テーブルの作成時、または
ALTER TABLE MODIFY 列ステートメントを使用するときに定義できます。 たとえば、次のステートメントは
列を非表示にします: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">ALTER TABLE accounts
MODIFY full_name INVISIBLE;</pre><div class="contentsignin">ログイン後にコピー</div></div>
テーブル内のクエリ データを再度実行すると、次の結果が得られます-
次のステートメントは、
列を除く accounts
テーブルのすべての列のデータを返します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SELECT
*
FROM
accounts;</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>
これは ## のためです。 #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
列のサイズを拡張する必要があります: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">ALTER TABLE accounts
MODIFY phone VARCHAR2( 24 );</pre><div class="contentsignin">ログイン後にコピー</div></div>
これで、電話番号データを更新できます: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">UPDATE
accounts
SET
phone = &#39;+86 &#39; || phone;</pre><div class="contentsignin">ログイン後にコピー</div></div>
次のステートメント検証更新:
上記のクエリ ステートメントの実行結果では、元の電話番号の国際市外局番の前に
86が付いていることが確認できるはずです。 。
たとえば、
列のサイズを
12 文字に削減しようとすると、<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">ALTER TABLE accounts
MODIFY phone VARCHAR2( 12 );</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>
Oracle Database は次のエラーを発行します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SQL Error: ORA-01441: cannot decrease column length because some value is too big</pre><div class="contentsignin">ログイン後にコピー</div></div>
この問題を解決するには、まず電話番号から国際コードを削除する必要があります (例:
):
UPDATE accounts SET phone = REPLACE( phone, '+86 ', '' );
REPLACE() 関数は部分文字列を次のように置き換えます。新しい文字列。この場合、 86
は空の文字列に置き換えられます。
次に、phone
列のサイズを短くします:
4. 仮想列
# を変更します。 ##前提条件 次の 2 列形式でフルネームを入力します: last_name, first_name
ALTER TABLE accounts MODIFY full_name VARCHAR2(52) GENERATED ALWAYS AS (last_name || ', ' || first_name);
以下语句验证修改:
<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">SELECT * FROM accounts;</pre><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div><div class="contentsignin">ログイン後にコピー</div></div>执行上面查询语句,可以看到以下结果
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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

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

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

Oracleのソリューションを開くことはできません。1。データベースサービスを開始します。 2。リスナーを開始します。 3.ポートの競合を確認します。 4.環境変数を正しく設定します。 5.ファイアウォールまたはウイルス対策ソフトウェアが接続をブロックしないことを確認してください。 6.サーバーが閉じているかどうかを確認します。 7. RMANを使用して破損したファイルを回復します。 8。TNSサービス名が正しいかどうかを確認します。 9.ネットワーク接続を確認します。 10。Oracleソフトウェアを再インストールします。

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

Oracle Cursorの閉鎖問題を解決する方法には、次のものが含まれます。 Scopeが終了した後に自動的に閉じるように、for update句のカーソルを宣言します。使用句のカーソルを宣言して、関連するPL/SQL変数が閉じられたときに自動的に閉じるようにします。例外処理を使用して、例外の状況でカーソルが閉じていることを確認します。接続プールを使用して、カーソルを自動的に閉じます。自動送信を無効にし、カーソルの閉鎖を遅延させます。

Oracleでは、forループループは動的にカーソルを作成できます。手順は次のとおりです。1。カーソルタイプを定義します。 2。ループを作成します。 3.カーソルを動的に作成します。 4。カーソルを実行します。 5。カーソルを閉じます。例:カーソルをサイクルごとに作成して、上位10人の従業員の名前と給与を表示できます。

Oracleデータベースを停止するには、次の手順を実行します。1。データベースに接続します。 2。すぐにシャットダウンします。 3.シャットダウンは完全に中止します。

CENTOSシステムにHadoop分散ファイルシステム(HDFS)を構築するには、複数のステップが必要です。この記事では、簡単な構成ガイドを提供します。 1.初期段階でJDKをインストールする準備:すべてのノードにJavadevelopmentKit(JDK)をインストールすると、バージョンはHadoopと互換性がある必要があります。インストールパッケージは、Oracleの公式Webサイトからダウンロードできます。環境変数構成: /etc /プロファイルファイルを編集し、JavaおよびHadoop環境変数を設定して、システムがJDKとHadoopのインストールパスを見つけることができるようにします。 2。セキュリティ構成:SSHパスワードなしログインSSHキーを生成する:各ノードでSSH-KeyGenコマンドを使用する

Oracleはデータベース会社だけでなく、クラウドコンピューティングとERPシステムのリーダーでもあります。 1。Oracleは、データベースからクラウドサービスおよびERPシステムへの包括的なソリューションを提供します。 2。Oraclecloudは、AWSとAzureに挑戦し、IAAS、PAAS、SAASサービスを提供します。 3. e-businesssuiteやfusionApplicationsなどのOracleのERPシステムは、企業がオペレーションを最適化するのに役立ちます。
