亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
oracle資料庫怎麼修改字段
Oracle ALTER TABLE MODIFY列範例
首頁 資料庫 Oracle oracle資料庫怎麼修改字段

oracle資料庫怎麼修改字段

Mar 02, 2022 pm 06:13 PM
oracle 資料庫

在oracle中,可以利用「ALTER TABLE MODIFY」語句來修改字段,語法為「ALTER TABLE 表名MODIFY 字段名需要執(zhí)行的操作;」;常用操作有:修改列的可見性、更改列的預設值、修改虛擬列的表達式等。

oracle資料庫怎麼修改字段

本教學操作環(huán)境:Windows7系統(tǒng)、Oracle 11g版、Dell G3電腦。

oracle資料庫怎麼修改字段

在oracle中,可以利用「ALTER TABLE MODIFY」語句來修改字段,更改現(xiàn)有字段的定義。

要變更表格中列的定義,請如下所示使用ALTER TABLE MODIFY列語法:

ALTER TABLE 表名 
MODIFY 字段名 需要執(zhí)行的操作;

語句很直接。要修改表格的列,需要指定要執(zhí)行的列名,表名和操作。

Oracle允許執(zhí)行多種操作,但以下是主要常用的操作:

  • #修改列的可見性

  • 允許或不允許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)
);

其次,向accounts表中插入一些行:

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');

第三,透過使用下面的SELECT語句驗證插入操作:

SELECT
    *
FROM
    accounts;

執(zhí)行上面查詢語句,得到以下結(jié)果-

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列不可見:

ALTER TABLE accounts 
MODIFY full_name INVISIBLE;

執(zhí)行再次查詢表中數(shù)據(jù),得到以下結(jié)果-

oracle資料庫怎麼修改字段

以下語句傳回accounts表除了full_name列以外的所有欄位中傳回資料:

SELECT
    *
FROM
    accounts;

這是因為full_name列是不可見的。若要將列從不可見變?yōu)榭梢?,請使用下列語句:

ALTER TABLE accounts 
MODIFY full_name VISIBLE;

2. 允許或不允許null範例

下列語句將email列更改為接受非空(not null)值:

ALTER TABLE accounts 
MODIFY email VARCHAR2( 100 ) NOT NULL;

但是,Oracle發(fā)出以下錯誤:

SQL Error: ORA-02296: cannot enable (OT.) - null values found

因為當將列從可為null改為not null時,必須確?,F(xiàn)有資料符合新限制條件(也就是說,如果原來資料中NULL是不行的)。

為了解決這個問題,首先更新email列的值:

UPDATE 
    accounts
SET 
    email = LOWER(first_name || '.' || last_name || '@oraok.com') ;

請注意,LOWER()函數(shù)將字串轉(zhuǎn)換為小寫字母。

然後改變email列的限制:

ALTER TABLE accounts 
MODIFY email VARCHAR2( 100 ) NOT NULL;

現(xiàn)在,它應該就會如預期般運作了。

3. 擴大或縮短列範例的大小

#假設要將國際程式碼新增到phone列上,例如:前綴加上 86。在修改列的值之前,必須使用以下語句擴大phone列的大小:

ALTER TABLE accounts 
MODIFY phone VARCHAR2( 24 );

現(xiàn)在,我們可以更新電話號碼的資料了:

UPDATE
    accounts
SET
    phone = '+86 ' || phone;

以下語句驗證更新:

SELECT
    *
FROM
    accounts;

執(zhí)行上面查詢語句結(jié)果中,應該可以看到原始電話號碼前綴有加上 86的國際區(qū)號了。

oracle資料庫怎麼修改字段

要縮短列的大小,請確保列中的所有資料都符合新的大小。

例如,嘗試將phone列的大小縮減到12個字元:

ALTER TABLE accounts 
MODIFY phone VARCHAR2( 12 );

Oracle資料庫發(fā)出以下錯誤:

SQL Error: ORA-01441: cannot decrease column length because some  value is too big

要解決這個問題,首先,應該從電話號碼中刪除國際代碼(即: 86):

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

REPLACE()函數(shù)用一個新的子字串替換一個子字串。在這種情況下,它將用空字串替換 86。

然後縮短phone列的大?。?/p>

ALTER TABLE accounts 
MODIFY phone VARCHAR2( 12 );

#4. 修改虛擬列

##假設以以下兩列的格式填入全名:

last_name, first_name

為此,可以變更虛擬列

full_name的表達式,如下所示:

ALTER TABLE accounts 
MODIFY full_name VARCHAR2(52) 
GENERATED ALWAYS AS (last_name || ', ' || first_name);

以下語句驗證修改:

SELECT
    *
FROM
    accounts;

執(zhí)行上面查詢語句,可以看到以下結(jié)果

oracle資料庫怎麼修改字段

5. 修改列的默認值

添加一個名為status的新列,默認值為1accounts表中。參考以下語句 -

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

當執(zhí)行了該語句,就會將accounts表中的所有現(xiàn)有行的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' );

現(xiàn)在,查詢accounts表中的數(shù)據(jù):

SELECT
  *
FROM
  accounts;

執(zhí)行上面查詢語句,應該看類似下面的結(jié)果?

oracle資料庫怎麼修改字段

正如所看到的那樣,ID4的賬戶的status列的值是0

推薦教程:《Oracle教程

以上是oracle資料庫怎麼修改字段的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
怎麼學java不走彎路 高效學習Java的方法和技巧分享 怎麼學java不走彎路 高效學習Java的方法和技巧分享 May 20, 2025 pm 08:24 PM

學習Java不走彎路的關(guān)鍵是:1.理解核心概念和語法;2.多實踐;3.理解內(nèi)存管理和垃圾回收;4.加入在線社區(qū);5.閱讀別人的代碼;6.了解常見庫和框架;7.學習處理常見錯誤;8.制定學習計劃並循序漸進。這些方法能幫助你高效掌握Java編程。

學java要學哪些東西 Java學習路線和必備知識點匯總 學java要學哪些東西 Java學習路線和必備知識點匯總 May 20, 2025 pm 08:15 PM

學Java需要學習基礎(chǔ)語法、面向?qū)ο缶幊?、集合框架、異常處理、多線程、I/O流、JDBC、網(wǎng)絡編程以及高級特性如反射和註解。 1.基礎(chǔ)語法包括變量、數(shù)據(jù)類型、運算符和控制流語句。 2.面向?qū)ο缶幊毯w類、對象、繼承、多態(tài)、封裝和抽象。 3.集合框架涉及ArrayList、LinkedList、HashSet和HashMap等。 4.異常處理通過try-catch塊確保程序健壯性。 5.多線程編程需要理解線程生命週期和同步。 6.I/O流用於數(shù)據(jù)讀寫和文件操作。 7.JDBC用於與數(shù)據(jù)庫交互。 8.網(wǎng)絡編程通過S

如何在Windows/Linux上安裝MySQL 8.0? 如何在Windows/Linux上安裝MySQL 8.0? Jun 11, 2025 pm 03:25 PM

安裝MySQL8.0的關(guān)鍵在於按步驟操作並註意常見問題。 Windows上推薦使用MSI安裝包,步驟包括下載安裝包、運行安裝程序、選擇安裝類型、設置root密碼、啟用服務啟動,並註意端口衝突或手動配置ZIP版;Linux(如Ubuntu)則通過apt安裝,步驟為更新源、安裝服務器、運行安全腳本、檢查服務狀態(tài)及修改root認證方式;無論哪個平臺,都應修改默認密碼、創(chuàng)建普通用戶、設置防火牆、調(diào)整配置文件以優(yōu)化字符集等參數(shù),確保安全性與正常使用。

怎麼用jdbc連接oracle數(shù)據(jù)庫連接池 怎麼用jdbc連接oracle數(shù)據(jù)庫連接池 Jun 04, 2025 pm 10:15 PM

使用JDBC連接Oracle數(shù)據(jù)庫連接池的步驟包括:1)配置連接池,2)從連接池獲取連接,3)執(zhí)行SQL操作,4)關(guān)閉資源。使用OracleUCP可以有效管理連接,提高性能。

查看MongoDB中所有數(shù)據(jù)庫的方法 查看MongoDB中所有數(shù)據(jù)庫的方法 Jun 04, 2025 pm 10:42 PM

在MongoDB中查看所有數(shù)據(jù)庫的方法是輸入命令“showdbs”。 1.該命令只顯示非空數(shù)據(jù)庫。 2.可以通過“use”命令切換數(shù)據(jù)庫並插入數(shù)據(jù)使其顯示。 3.注意內(nèi)部數(shù)據(jù)庫如“l(fā)ocal”和“config”。 4.使用驅(qū)動程序時需用“l(fā)istDatabases()”方法獲取詳細信息。 5.“db.stats()”命令可查看數(shù)據(jù)庫詳細統(tǒng)計信息。

在大數(shù)據(jù)環(huán)境中使用Oracle數(shù)據(jù)庫與Hadoop的集成 在大數(shù)據(jù)環(huán)境中使用Oracle數(shù)據(jù)庫與Hadoop的集成 Jun 04, 2025 pm 10:24 PM

集成Oracle數(shù)據(jù)庫與Hadoop的主要原因是利用Oracle的強大數(shù)據(jù)管理和事務處理能力,以及Hadoop的大規(guī)模數(shù)據(jù)存儲和分析能力。集成方法包括:1.使用OracleBigDataConnector將數(shù)據(jù)從Oracle導出到Hadoop;2.使用ApacheSqoop進行數(shù)據(jù)傳輸;3.通過Oracle的外部表功能直接讀取Hadoop數(shù)據(jù);4.使用OracleGoldenGate實現(xiàn)數(shù)據(jù)同步。

sql數(shù)據(jù)庫語句大全 sql數(shù)據(jù)庫常用語句匯總 sql數(shù)據(jù)庫語句大全 sql數(shù)據(jù)庫常用語句匯總 May 28, 2025 pm 08:12 PM

SQL常用語句包括:1.CREATETABLE創(chuàng)建表,如CREATETABLEemployees(idINTPRIMARYKEY,nameVARCHAR(100),salaryDECIMAL(10,2));2.CREATEINDEX創(chuàng)建索引,如CREATEINDEXidx_nameONemployees(name);3.INSERTINTO插入數(shù)據(jù),如INSERTINTOemployees(id,name,salary)VALUES(1,'JohnDoe',75000.00);4.SELECT查

oracle數(shù)據(jù)庫怎麼查詢自己管理員密碼 oracle數(shù)據(jù)庫怎麼查詢自己管理員密碼 Jun 04, 2025 pm 10:06 PM

直接查詢管理員密碼在安全性上是不推薦的做法。 Oracle數(shù)據(jù)庫的安全設計原則是避免明文存儲密碼。替代方法包括:1.使用SQL*Plus重置SYS或SYSTEM用戶密碼;2.通過DBMS_CRYPTO包驗證加密後的密碼。

See all articles