欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle修改字段長度及屬性的方法

 更新時間:2024年05月10日 08:58:38   作者:藍澀街燈  
這篇文章主要介紹了Oracle修改字段長度及屬性,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧

Oracle數(shù)據(jù)庫使用ALTER TABLE MODIFY語法,修改列定義。
語法

alter table table_name modify(column_name 字段類型);

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

  • 修改數(shù)據(jù)列的可見性(可見或不可見)
  • 修改字段允許或不允許null
  • 修改字段長度
  • 修改列的默認值

修改多個列語法如下:

ALTER TABLE table_name
MODIFY (
    column_name_1 字段類型,
    column_name_2 字段類型,
    ...
);

舉例,仍然使用之前建立的數(shù)據(jù)庫表及數(shù)據(jù)進行測試:Oracle中新建數(shù)據(jù)表的兩種方法(點擊前邊文字跳轉(zhuǎn)),不了解的自行跳轉(zhuǎn)鏈接查看,這里就在列下建表及插入數(shù)據(jù)語句如下:

--實例建表stuinfo_01
create table JT_CS.stuinfo_01
(
  stuid      varchar2(11) not null,--學號:'S'+班號(7位數(shù))+學生序號(3位數(shù))(不能為空)SC200101001
  stuname    varchar2(50) not null,--學生姓名(不能為空)
  sex        char(1) not null,--性別(不能為空)1(男)、2(女)
  age        number(2) not null,--年齡(不能為空)
  classno    varchar2(7) not null,--班號:'C'+年級(4位數(shù))+班級序號(2位數(shù))(不能為空)C200101
  stuaddress varchar2(100) default '地址未錄入',--地址 (不填或為空時默認填入‘地址未錄入‘)
  grade      char(4) not null,--年級(不能為空)
  enroldate  date,--入學時間
  idnumber   varchar2(18) default '身份證未采集' not null--身份證(不能為空)
)
--插入測試數(shù)據(jù)
INSERT INTO JT_CS.STUINFO VALUES ('SC200101001','路飛','1','19','C200101','東海哥亞王國風車村','2001','2001/09/01','411428199602569201');
INSERT INTO JT_CS.STUINFO VALUES ('SC200101002','索隆','1','21','C200101','東海霜月村','2001','2001/09/01','411428199602569202');
INSERT INTO JT_CS.STUINFO VALUES ('SC200101003','娜美','2','20','C200101','可可西亞村','2001','2001/09/01','411428199602569203');
INSERT INTO JT_CS.STUINFO VALUES ('SC200101004','烏索普','1','19','C200101','東海西羅布村','2001','2001/09/01','411428199602569204');
INSERT INTO JT_CS.STUINFO VALUES ('SC200101005','山治','1','21','C200101','北海杰爾瑪王國','2001','2001/09/01','411428199602569205');
INSERT INTO JT_CS.STUINFO VALUES ('SC200101006','喬巴','1','15','C200101','磁鼓島','2001','2001/09/01','411428199602569206');
INSERT INTO JT_CS.STUINFO VALUES ('SC200101007','羅賓','2','30','C200101','奧哈拉','2001','2001/09/01','411428199602569207');
INSERT INTO JT_CS.STUINFO VALUES ('SC200101008','弗蘭奇','1','34','C200101','南海','2001','2001/09/01','411428199602569208');
INSERT INTO JT_CS.STUINFO VALUES ('SC200101009','布魯克','1','63','C200101','西海','2001','2001/09/01','411428199602569209');
INSERT INTO JT_CS.STUINFO VALUES ('SC200101010','甚平','1','46','C200101','魚人島','2001','2001/09/01','411428199602569210');

查詢結(jié)果數(shù)據(jù)如下:

  SELECT * FROM JT_CS.STUINFO_01;

1、修改數(shù)據(jù)列的可見性(可見或不可見)

通常默認情況下,新建表在未有任何定義的情況下表列都是可見的。我們可以在創(chuàng)建表或使用ALTER TABLE MODIFY語句定義某些列不可見。

--以下語句將SEX列修改為不可見(適用于Oracle 12c)
ALTER TABLE JT_CS.STUINFO_01 
MODIFY SEX INVISIBLE;
--將不可見字段修改為可見(適用于Oracle 12c)
ALTER TABLE JT_CS.STUINFO_01 
MODIFY SEX VISIBLE;

2. 修改字段允許或不允許null

準備測試數(shù)據(jù)(先制造出一個小問題)

--測試需要,先將原來的enroldate字段路飛的入學時間置空
UPDATE  JT_CS.STUINFO_01 SET enroldate='' WHERE STUID='SC200101001';

修改enroldate字段不予許為空 not null

--修改enroldate字段不予許為空 not null
ALTER TABLE JT_CS.STUINFO_01 
MODIFY enroldate  NOT NULL;

因為剛剛我們清空了“路飛”先生的入學時間,所以執(zhí)行NOTNULL時系統(tǒng)提示錯誤,有空值存在,也就是說必須確?,F(xiàn)有數(shù)據(jù)符合新約束(也就是說,如果原來數(shù)據(jù)中存在NULL是不行的)。

為了解決這個問題,首先我們需要將enroldate字段所有為空的列進行填充

--更新填充字段
UPDATE 
    JT_CS.STUINFO_01
SET 
    enroldate='2001-09-30' WHERE STUID='SC200101001' ;

然后改變enroldate列的約束:

--修改約束不允許為空(not null)    
ALTER TABLE JT_CS.STUINFO_01 
MODIFY enroldate  NOT NULL;

3. 修改字段長度

--將身份證號字段長度大小擴充到20
ALTER TABLE JT_CS.STUINFO_01 MODIFY IDNUMBER VARCHAR2(20);

注意:要縮短或擴充列的大小,請確保列中的所有數(shù)據(jù)都符合新的大小,否則語句將無法進行執(zhí)行。

4. 修改列的默認值

添加一個名為status的新列,默認值為1到JT_CS.STUINFO_01表中

--添加一個新列,然后默認值設(shè)置成 1
ALTER TABLE JT_CS.STUINFO_01 ADD status NUMBER( 1, 0 ) DEFAULT 1 NOT NULL ;

將添加的新列status的默認值修改為0

--設(shè)置成默認值0
ALTER TABLE JT_CS.STUINFO_01 MODIFY status DEFAULT 0;

插入一條新數(shù)據(jù)進行測試

--按指定的字段插入數(shù)據(jù)
INSERT INTO JT_CS.STUINFO_01 ( STUID, STUNAME, SEX, AGE, CLASSNO, STUADDRESS, GRADE, ENROLDATE, IDNUMBER) VALUES ('SC200101011','薩博','1','46','C200101','魚人島','2000','2001/09/01','411428199602569211');

結(jié)果查詢

到此這篇關(guān)于Oracle修改字段長度及屬性的文章就介紹到這了,更多相關(guān)Oracle修改字段長度及屬性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Oracle 遍歷游標的四種方式匯總(for、fetch、while、BULK COLLECT)

    Oracle 遍歷游標的四種方式匯總(for、fetch、while、BULK COLLECT)

    這篇文章主要介紹了Oracle 遍歷游標的四種方式匯總(for、fetch、while、BULK COLLECT),幫助大家更好的理解和使用Oracle數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-10-10
  • Oracle如何獲取當前庫中所有表空間創(chuàng)建的語句

    Oracle如何獲取當前庫中所有表空間創(chuàng)建的語句

    在Oracle數(shù)據(jù)庫管理中,通過使用dbms_metadata.get_ddl函數(shù),可以方便地獲取表空間的DDL創(chuàng)建語句,首先利用select查詢構(gòu)造需要的DDL語句,然后執(zhí)行得到的查詢語句即可獲取對應(yīng)表空間的創(chuàng)建語句,這種方法適用于數(shù)據(jù)庫遷移或備份時重建表空間的需求
    2024-10-10
  • Oracle Index索引無效的原因與解決方法

    Oracle Index索引無效的原因與解決方法

    這篇文章主要給大家介紹了關(guān)于Oracle Index索引無效的原因與解決方法,文中通過示例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • EXISTS關(guān)鍵字在Oracle中的簡單使用例子

    EXISTS關(guān)鍵字在Oracle中的簡單使用例子

    在Oracle中IN和EXISTS都是用于子查詢的比較運算符,但它們的使用方式和操作結(jié)果有所不同,這篇文章主要給大家介紹了關(guān)于EXISTS關(guān)鍵字在Oracle中的簡單使用,需要的朋友可以參考下
    2024-04-04
  • Oracle執(zhí)行計劃及性能調(diào)優(yōu)詳解使用方法

    Oracle執(zhí)行計劃及性能調(diào)優(yōu)詳解使用方法

    在Oracle數(shù)據(jù)庫中,通過使用EXPLAIN PLAN、AWR、SQL Trace等工具可以對SQL性能進行詳細分析,EXPLAIN PLAN可以展示SQL執(zhí)行計劃和關(guān)鍵性能指標如操作類型、成本、行數(shù)等,本文給大家介紹Oracle執(zhí)行計劃及性能調(diào)優(yōu)詳解使用方法,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Oracle的CLOB大數(shù)據(jù)字段類型操作方法

    Oracle的CLOB大數(shù)據(jù)字段類型操作方法

    VARCHAR2既分PL/SQL Data Types中的變量類型,也分Oracle Database中的字段類型,不同場景的最大長度不同。接下來通過本文給大家分享Oracle的CLOB大數(shù)據(jù)字段類型操作方法,感興趣的朋友一起看看吧
    2017-08-08
  • oracle數(shù)據(jù)庫中如何處理clob字段方法介紹

    oracle數(shù)據(jù)庫中如何處理clob字段方法介紹

    在知識庫的建立的時候,用普通VARCHAR2存放文章是顯然不夠的,本文將詳細將介紹oracle數(shù)據(jù)庫中如何處理clob字段方法,需要的朋友可以參考下
    2012-11-11
  • Oracle表空間管理和用戶管理介紹

    Oracle表空間管理和用戶管理介紹

    大家好,本篇文章主要講的是Oracle表空間管理和用戶管理介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • EF 配置Oracle數(shù)據(jù)庫數(shù)據(jù)庫連接字符串的實例

    EF 配置Oracle數(shù)據(jù)庫數(shù)據(jù)庫連接字符串的實例

    下面小編就為大家?guī)硪黄狤F 配置Oracle數(shù)據(jù)庫數(shù)據(jù)庫連接字符串的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Oracle數(shù)據(jù)庫游標連接超出解決方案

    Oracle數(shù)據(jù)庫游標連接超出解決方案

    這篇文章主要介紹了Oracle數(shù)據(jù)庫游標連接超出解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07

最新評論