oracle 數(shù)據(jù)庫(kù)中的default的用法是:在創(chuàng)建數(shù)據(jù)庫(kù)表時(shí),可以指定一個(gè) DEFAULT 值(即默認(rèn)值)。對(duì)數(shù)據(jù)庫(kù)字段使用默認(rèn)值有助于將數(shù)據(jù)庫(kù)設(shè)計(jì)問題與應(yīng)用程序代碼隔離。
網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),成都做網(wǎng)站公司-成都創(chuàng)新互聯(lián)公司已向超過千家企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。
可以在以后某個(gè)時(shí)候通過一條 ALTER TABLE 命令改變一個(gè)字段的默認(rèn)值,改變之后應(yīng)用程序代碼會(huì)立即開始使用新值。即 DEFAULT 值只有當(dāng)一個(gè)字段沒有在 INSERT 或 MERGE 中指定值,或者使用了 DEFAULT 關(guān)鍵字時(shí)才會(huì)使用。如果你不顯式地聲明一個(gè) DEFULAT 值,Oracle?將隱式地將默認(rèn)值定義為 NULL,而且 DEFAULT 關(guān)鍵字也是這樣。從 Oracle 9i開始,可以在 DEFAULT 子句中使用諸如 SYSDATE 或 CURRENT_TIMESTAMPE 之類的偽字段。例如:
create?table?t1
(
id$?integer?not?null,
charcol?char?default?'Y',
datecol?date?default?sysdate,
strcol?varchar2(30)?default?user,
intcol?integer?default?12
);
如果表已經(jīng)存在,用如下方法設(shè)置默認(rèn)值:
alter?table?表名?modify?字段名?default?默認(rèn)值;
如test表中設(shè)置age字段為30,可用如下語(yǔ)句:
alter?table?test?modify?age?default?30;
擴(kuò)展資料:
Oracle關(guān)于默認(rèn)值的其他用法
添加、修改默認(rèn)值:alter table table_name?modify?column_name?default?具體內(nèi)容;
刪除默認(rèn)值:alter table table_name?modify?column_name?default?null;
增加列(約束、默認(rèn)值)
語(yǔ)法:alter table tb_name add column datatype [default val] constraint .....
如果添加not null(primary key約束要求值也不能為null)約束,需要保證當(dāng)前表中沒有數(shù)據(jù)存在。
新添加的列,相當(dāng)于表定義中最后一個(gè)定義的列。
事務(wù)隔離級(jí)別:一個(gè)事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改與并行的另一個(gè)事務(wù)的隔離程度。
兩個(gè)并發(fā)事務(wù)同時(shí)訪問數(shù)據(jù)庫(kù)表相同的行時(shí),可能存在以下三個(gè)問題:
1、幻想讀:事務(wù)T1讀取一條指定where條件的語(yǔ)句,返回結(jié)果集。此時(shí)事務(wù)T2插入一行新記錄,恰好滿足T1的where條件。然后T1使用相同的條件再次查詢,結(jié)果集中可以看到T2插入的記錄,這條新紀(jì)錄就是幻想。
2、不可重復(fù)讀?。菏聞?wù)T1讀取一行記錄,緊接著事務(wù)T2修改了T1剛剛讀取的記錄,然后T1再次查詢,發(fā)現(xiàn)與第一次讀取的記錄不同,這稱為不可重復(fù)讀。
3、臟讀:事務(wù)T1更新了一行記錄,還未提交所做的修改,這個(gè)T2讀取了更新后的數(shù)據(jù),然后T1執(zhí)行回滾操作,取消剛才的修改,所以T2所讀取的行就無效,也就是臟數(shù)據(jù)。
為了處理這些問題,SQL標(biāo)準(zhǔn)定義了以下幾種事務(wù)隔離級(jí)別
READ?UNCOMMITTED?幻想讀、不可重復(fù)讀和臟讀都允許。
READ?COMMITTED?允許幻想讀、不可重復(fù)讀,不允許臟讀
REPEATABLE?READ?允許幻想讀,不允許不可重復(fù)讀和臟讀
SERIALIZABLE?幻想讀、不可重復(fù)讀和臟讀都不允許
Oracle數(shù)據(jù)庫(kù)支持READ?COMMITTED?和?SERIALIZABLE這兩種事務(wù)隔離級(jí)別。所以O(shè)racle不支持臟讀
SQL標(biāo)準(zhǔn)所定義的默認(rèn)事務(wù)隔離級(jí)別是SERIALIZABLE,但是Oracle?默認(rèn)使用的是READ?COMMITTED
設(shè)置隔離級(jí)別使用?SET?TRANSACTION?ISOLATION?LEVEL?[READ?UNCOMMITTED|READ?COMMITTED|REPEATABLE?READ|SERIALIZABLE]
--?下面是oracle?設(shè)置SERIALIZABLE隔離級(jí)別一個(gè)示例:
左面是事務(wù)T1,右面是事務(wù)T2,因?yàn)門2級(jí)別為SERIALIZABLE,所以即使事務(wù)T1在提交了數(shù)據(jù)之后,事務(wù)T2還是看不到T1提交的數(shù)據(jù),幻想讀和不可重復(fù)讀都不允許了。
那如何能查看到T1新增的記錄呢? 上面T1和T2是并發(fā)執(zhí)行,在T1執(zhí)行insert的時(shí)候事務(wù)T2已經(jīng)開始了,因?yàn)門2級(jí)別是SERIALIZABLE,所以T2所查詢的數(shù)據(jù)集是T2事務(wù)開始前數(shù)據(jù)庫(kù)的數(shù)據(jù)。即事務(wù)T1在事務(wù)T2開始之后的insert和update操作的影響都不會(huì)影響事務(wù)T2?,F(xiàn)在重新開啟一個(gè)事務(wù)T3 就可以看到T1新增的記錄了。
當(dāng)下列事件發(fā)生時(shí),事務(wù)就開始了:
1、連接到數(shù)據(jù)庫(kù),并執(zhí)行第一條DML語(yǔ)句
2、前一個(gè)事務(wù)結(jié)束后,又輸入了另一條DML語(yǔ)句
創(chuàng)建oracle11g 數(shù)據(jù)庫(kù)方法:按住鍵盤上Windows鍵,打開開始菜單,找到Database Configuration Assitant并打開;
打開數(shù)據(jù)庫(kù)配置助手Database Configuration Assitant,單擊“下一步”;
選擇“創(chuàng)建數(shù)據(jù)庫(kù)”,單擊“下一步”
選擇“一般用途或事務(wù)處理”,單擊“下一步”;
設(shè)置數(shù)據(jù)庫(kù)的名稱和實(shí)例名,兩者可設(shè)置相同,也可以不同,單擊“下一步”
管理選項(xiàng)配置,不勾選配置Enterprise Manager,單擊“下一步”;
數(shù)據(jù)庫(kù)身份證明,可以為不同的賬戶分別設(shè)置不同的管理口令,也可以為所有賬戶設(shè)置同一口令,單擊“下一步”;
數(shù)據(jù)庫(kù)文件所在位置,默認(rèn)存儲(chǔ)類型:文件系統(tǒng),存儲(chǔ)位置:使用模版中的數(shù)據(jù)庫(kù)文件位置,也可以自己指定存儲(chǔ)路徑,單擊“下一步”;
恢復(fù)配置,指定快速恢復(fù)區(qū);
數(shù)據(jù)庫(kù)內(nèi)容,根據(jù)需要,選擇是否添加示例方案,單擊“下一步”;
初始化參數(shù),設(shè)置內(nèi)存、字符集等,單擊“下一步”;
數(shù)據(jù)庫(kù)存儲(chǔ),控制文件、數(shù)據(jù)文件、重做日志文件位置設(shè)置,單擊“下一步”;
創(chuàng)建選項(xiàng),創(chuàng)建數(shù)據(jù)庫(kù),生成腳本,單擊“完成”,開始創(chuàng)建數(shù)據(jù)庫(kù)。
用如下方法設(shè)置,以win7電腦為例。
1、右鍵“我的電腦”,選擇“管理”。
2、彈出窗口依次點(diǎn)擊“服務(wù)和應(yīng)用程序”——“服務(wù)”。
3、在列表中找到oracle服務(wù)的啟動(dòng)項(xiàng),一般名稱為“OracleService+實(shí)例名”。
4、右鍵此服務(wù),選擇“屬性”選項(xiàng)。
5、啟動(dòng)類型選擇“自動(dòng)”,點(diǎn)擊“確定”按鈕保存即可。
方法和詳細(xì)的操作步驟如下:
1、第一步,打開數(shù)據(jù)庫(kù)連接,并顯示創(chuàng)建的數(shù)據(jù)庫(kù),見下圖,轉(zhuǎn)到下面的步驟。
2、第二步,執(zhí)行完上面的操作之后,展開要操作的數(shù)據(jù)庫(kù)下的所有表,見下圖,轉(zhuǎn)到下面的步驟。
3、第三步,執(zhí)行完上面的操作之后,右鍵單擊要操作的表,然后選擇[改變表]選項(xiàng),見下圖,轉(zhuǎn)到下面的步驟。
4、第四步,執(zhí)行完上面的操作之后,在要修改的字段的[默認(rèn)]位置內(nèi)單擊,然后輸入默認(rèn)值,見下圖,轉(zhuǎn)到下面的步驟。
5、第五步,執(zhí)行完上面的操作之后,單擊[保存],設(shè)置字段默認(rèn)值完成,單擊“確定”按鈕即可,見下圖。這樣,就解決了這個(gè)問題了。