久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      oracle數(shù)據(jù)庫(kù)怎么修改字段

      在oracle中,可以利用“ALTER TABLE MODIFY”語(yǔ)句來(lái)修改字段,語(yǔ)法為“ALTER TABLE 表名 MODIFY 字段名 需要執(zhí)行的操作;”;常用操作有:修改列的可見(jiàn)性、更改列的默認(rèn)值、修改虛擬列的表達(dá)式等。

      oracle數(shù)據(jù)庫(kù)怎么修改字段

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

      oracle數(shù)據(jù)庫(kù)怎么修改字段

      在oracle中,可以利用“ALTER TABLE MODIFY”語(yǔ)句來(lái)修改字段,更改現(xiàn)有字段的定義。

      要更改表中列的定義,請(qǐng)按如下所示使用ALTER TABLE MODIFY列語(yǔ)法:

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

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

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

      • 修改列的可見(jiàn)性

      • 允許或不允許NULL值

      • 縮短或擴(kuò)大列的大小

      • 更改列的默認(rèn)值

      • 修改虛擬列的表達(dá)式

      要修改多個(gè)列,請(qǐng)使用以下語(yǔ)法:

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

      Oracle ALTER TABLE MODIFY列示例

      首先,為演示創(chuàng)建一個(gè)名為accounts的新表:

      -- 12c語(yǔ)法 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');

      第三,通過(guò)使用下面的SELECT語(yǔ)句驗(yàn)證插入操作:

      SELECT     * FROM     accounts;

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

      oracle數(shù)據(jù)庫(kù)怎么修改字段

      1. 修改列的可見(jiàn)性

      在Oracle 12c中,可以將表列定義為不可見(jiàn)或可見(jiàn)。不可見(jiàn)列不可用于查詢,如:

      SELECT     * FROM     table_name;

      或者,

      DESCRIBE table_name;

      都是查到不到不可見(jiàn)列的。

      但是,可以通過(guò)在查詢中顯式指定不可見(jiàn)列來(lái)查詢:

      SELECT     invisible_column_1,     invisible_column_2 FROM     table_name;

      默認(rèn)情況下,表列是可見(jiàn)的。可以在創(chuàng)建表或使用ALTER TABLE MODIFY列語(yǔ)句時(shí)定義不可見(jiàn)列。

      例如,以下語(yǔ)句使full_name列不可見(jiàn):

      ALTER TABLE accounts  MODIFY full_name INVISIBLE;

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

      oracle數(shù)據(jù)庫(kù)怎么修改字段

      以下語(yǔ)句返回accounts表除了full_name列以外的所有列中返回?cái)?shù)據(jù):

      SELECT     * FROM     accounts;

      這是因?yàn)?code>full_name列是不可見(jiàn)的。要將列從不可見(jiàn)變?yōu)榭梢?jiàn),請(qǐng)使用以下語(yǔ)句:

      ALTER TABLE accounts  MODIFY full_name VISIBLE;

      2. 允許或不允許null示例

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

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

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

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

      因?yàn)楫?dāng)將列從可為null改為not null時(shí),必須確保現(xiàn)有數(shù)據(jù)符合新約束(也就是說(shuō),如果原來(lái)數(shù)據(jù)中NULL是不行的)。

      為了解決這個(gè)問(wèn)題,首先更新email列的值:

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

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

      然后改變email列的約束:

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

      現(xiàn)在,它應(yīng)該就會(huì)按預(yù)期那樣工作了。

      3. 擴(kuò)大或縮短列示例的大小

      假設(shè)要添加國(guó)際代碼到phone列上,比如:前綴加上+86。 在修改列的值之前,必須使用以下語(yǔ)句擴(kuò)大phone列的大?。?/p>

      ALTER TABLE accounts  MODIFY phone VARCHAR2( 24 );

      現(xiàn)在,我們可以更新電話號(hào)碼的數(shù)據(jù)了:

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

      以下語(yǔ)句驗(yàn)證更新:

      SELECT     * FROM     accounts;

      執(zhí)行上面查詢語(yǔ)句結(jié)果中,應(yīng)該可以看到原電話號(hào)碼前綴有加上+86的國(guó)際區(qū)號(hào)了。

      oracle數(shù)據(jù)庫(kù)怎么修改字段

      要縮短列的大小,請(qǐng)確保列中的所有數(shù)據(jù)都符合新的大小。

      例如,嘗試將phone列的大小縮減到12個(gè)字符:

      ALTER TABLE accounts  MODIFY phone VARCHAR2( 12 );

      Oracle數(shù)據(jù)庫(kù)發(fā)出以下錯(cuò)誤:

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

      要解決這個(gè)問(wèn)題,首先,應(yīng)該從電話號(hào)碼中刪除國(guó)際代碼(即:+86):

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

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

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

      ALTER TABLE accounts  MODIFY phone VARCHAR2( 12 );

      4. 修改虛擬列

      假設(shè)按以下兩列的格式填寫(xiě)全名:

      last_name, first_name

      為此,可以更改虛擬列full_name的表達(dá)式,如下所示:

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

      以下語(yǔ)句驗(yàn)證修改:

      SELECT     * FROM     accounts;

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

      oracle數(shù)據(jù)庫(kù)怎么修改字段

      5. 修改列的默認(rèn)值

      添加一個(gè)名為status的新列,默認(rèn)值為1accounts表中。參考以下語(yǔ)句 –

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

      當(dāng)執(zhí)行了該語(yǔ)句,就會(huì)將accounts表中的所有現(xiàn)有行的status列中的值設(shè)置為1。

      要將status列的默認(rèn)值更改為0,請(qǐng)使用以下語(yǔ)句:

      ALTER TABLE accounts  MODIFY status DEFAULT 0;

      可以在accounts表中添加一個(gè)新行來(lái)檢查status列的默認(rèn)值是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í)行上面查詢語(yǔ)句,應(yīng)該看類似下面的結(jié)果

      oracle數(shù)據(jù)庫(kù)怎么修改字段

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

      推薦教程:《Oracle教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)