informix clob转oracle 乱码_Oracle 视图-序列-权限-表-事务
一、視圖
視圖(view),稱為虛表,在數(shù)據(jù)庫中不存在實體。
視圖本質(zhì)上是對物理表(基表)的一種數(shù)據(jù)保護(hù)。讓開發(fā)者或者用戶只能看到基表中的部分?jǐn)?shù)據(jù)。
1.1 創(chuàng)建視圖
創(chuàng)建視圖的語法
1.2 使用視圖
可以像使用表一樣使用視圖
修改視圖中的數(shù)據(jù)
添加數(shù)據(jù)
通過視圖添加數(shù)據(jù),數(shù)據(jù)最終添加到基表中,因為視圖是虛表。
視圖一般只是基表的部分?jǐn)?shù)據(jù),通過視圖向基表添加數(shù)據(jù)時,基本的數(shù)據(jù)只能添加一部分,此時基表會對未提供的字段置 null。如果基表對未提供的字段要求不能為null,則此次添加會失敗。
刪除數(shù)據(jù)
更新數(shù)據(jù)
不能通過視圖更新視圖不存在的字段。
只讀視圖
1.3 視圖的應(yīng)用
二、權(quán)限管理
第一次使用Scott 賬戶需要解鎖
此時Scott 如果對數(shù)據(jù)庫進(jìn)行DDL操作是沒有權(quán)限的。把創(chuàng)建視圖、創(chuàng)建表的權(quán)限分配給Scott。
注意:權(quán)限性操作都要以sysdba連接來操作。
如何創(chuàng)建一個用戶并授予一定權(quán)限?
查看用戶權(quán)限
select * from user_sys_privs;
三、表
數(shù)據(jù)庫數(shù)據(jù)類型
其他類型:
CLOB:最大長度4G-->大對象很少使用:如果存在大對象,一般的解決方案是存入文件地址(地址為程序所在應(yīng)用服務(wù)器的相對路徑)
BLOB : 存二進(jìn)制文件。
注意:在數(shù)據(jù)庫設(shè)計時,如果要存大文件(視頻、音頻等),一定不要使用BLOB/CLOB,通用的解決方案都是存文件的地址。
3.1 表的創(chuàng)建
創(chuàng)建表的語法
創(chuàng)建一個學(xué)生表
T_STUINFO(sid,name,phone,gender,birthday,address)
開發(fā)工具生成
定義某些屬性不能為空
3.2 表的修改
當(dāng)然,也可以點擊表然后鼠標(biāo)右鍵直接修改。
3.3 insert/update/delete
insert
語法
update
update 語法
delete
delete 語法
四、序列
序列是Oracle 專有的對象,它用來產(chǎn)生一個自動遞增的數(shù)列。
在數(shù)據(jù)庫開發(fā)設(shè)計表時,如果需要一個字段的值是自增的話,優(yōu)先考慮使用序列。
五、事務(wù)
5.1 事務(wù)概念
事務(wù)(Transaction)是一個操作序列。這些操作要么都做,要么都不做,是一個不可分割的工作單位,是數(shù)據(jù)庫環(huán)境中的邏輯工作單位。原子性。
事務(wù)是為了保證數(shù)據(jù)庫的完整性。
事務(wù)不能嵌套。
在Oracle 中,沒有事務(wù)開始的語句。一個Transaction 起始于一條DML(Insert、Update和Delete)語句,結(jié)束于以下的幾種情況
1、用戶顯示執(zhí)行Commit 語句提交操作或Rollback 語句回退;
2、當(dāng)執(zhí)行DDL(Create、Alter、Drop)語句事務(wù)自動提交;
3、用戶正常斷開連接時,Transaction 自動提交;
4、系統(tǒng)崩潰或者斷電時事務(wù)自動回退。
事務(wù)結(jié)合java 代碼的格式
5.2 保存點(save point)
seve point 保存當(dāng)前數(shù)據(jù)庫的狀態(tài)點。以便后續(xù)通過rollback 回滾到指定狀態(tài)點。
5.3 事務(wù)的特性
事務(wù)四大特征:原子性,一致性,隔離性和持久性。
1. 原子性(Atomicity)
一個原子事務(wù)要么完整執(zhí)行,要么干脆不執(zhí)行。這意味著,工作單元中的每項任務(wù)都必須正確執(zhí)行。如果有任一任務(wù)執(zhí)行失敗,則整個工作單元或事務(wù)就會被終止。即此前對數(shù)據(jù)所作的任何修改都將被撤銷。如果所有任務(wù)都被成功執(zhí)行,事務(wù)就會被提交,即對數(shù)據(jù)所作的修改將會是永久性的。
2. 一致性(Consistency)
一致性代表了底層數(shù)據(jù)存儲的完整性。它必須由事務(wù)系統(tǒng)和應(yīng)用開發(fā)人員共同來保證。事務(wù)系統(tǒng)通過保證事務(wù)的原子性,隔離性和持久性來滿足這一要求; 應(yīng)用開發(fā)人員則需要保證數(shù)據(jù)庫有適當(dāng)?shù)募s束(主鍵,引用完整性等),并且工作單元中所實現(xiàn)的業(yè)務(wù)邏輯不會導(dǎo)致數(shù)據(jù)的不一致(即,數(shù)據(jù)預(yù)期所表達(dá)的現(xiàn)實業(yè)務(wù)情況不相一致)。例如,在一次轉(zhuǎn)賬過程中,從某一賬戶中扣除的金額必須與另一賬戶中存入的金額相等。支付寶賬號100 你讀到余額要取,有人向你轉(zhuǎn)100 但是事物沒提交(這時候你讀到的余額應(yīng)該是100,而不是200) 這種就是一致性
3. 隔離性(Isolation)
隔離性意味著事務(wù)必須在不干擾其他進(jìn)程或事務(wù)的前提下獨立執(zhí)行。換言之,在事務(wù)或工作單元執(zhí)行完畢之前,其所訪問的數(shù)據(jù)不能受系統(tǒng)其他部分的影響。
4. 持久性(Durability)
持久性表示在某個事務(wù)的執(zhí)行過程中,對數(shù)據(jù)所作的所有改動都必須在事務(wù)成功結(jié)束前保存至某種物理存儲設(shè)備。這樣可以保證,所作的修改在任何系統(tǒng)癱瘓時不至于丟失。
六、約束
當(dāng)我們創(chuàng)建表的時候,同時可以指定所插入數(shù)據(jù)的一些規(guī)則,比如說某個字段不能為空值,
某個字段的值(比如年齡)不能小于零等等,這些規(guī)則稱為約束。約束是在表上強(qiáng)制執(zhí)行的數(shù)據(jù)效驗規(guī)則。
常見約束:
1.NOT NULL 非空
2.UNIQUE Key 唯一鍵
3.PRIMARY KEY 主鍵
4.FOREIGN KEY 外鍵
5.CHECK 自定義檢查約束
6.1 主鍵約束(primary key)
主鍵用于唯一標(biāo)識一條記錄。主鍵值不可為空,也不允許出現(xiàn)重復(fù)。
表級約束:當(dāng)多個列(字段)參與約束,可以用表級約束。
6.2 非空約束(not null)
確保字段值不允許為空
只能在列級定義
6.3 唯一性約束(unique)
唯一性約束條件確保所在的字段或者字段組合不出現(xiàn)重復(fù)值
唯一性約束條件的字段允許出現(xiàn)空值
Oracle 將為唯一性約束條件創(chuàng)建對應(yīng)的唯一性索引
6.4 自定義約束
check 約束用于對一個屬性的值加以限制
6.5 外鍵約束
對于主表的刪除和修改主鍵值得操作,會對依賴關(guān)系產(chǎn)生影響,以刪除為例;當(dāng)要刪除主表的某個記錄(即刪除一個主鍵值)那么對依賴的影響可采取下列三種做法
1. RESTRICT方式:只有當(dāng)依賴表中沒有一個外鍵值與要刪除的主表中主鍵值相對應(yīng)時,才可執(zhí)行刪除操作。
2. CASCADE方式:將依賴表中所有外鍵值與主表中要刪除的主鍵值相對應(yīng)的記錄一起刪除
3. SET NULL方式:將依賴表中所有與主表中被刪除的主鍵值相對應(yīng)的外鍵值設(shè)為空值
FOREIGN KEY (DEPTNO) REFERENCES DEPT(DEPTNO)
[ON DELETE [CASCADE|SET NULL]] 如省略on短語,缺省為第一中處理方式。
總結(jié)
以上是生活随笔為你收集整理的informix clob转oracle 乱码_Oracle 视图-序列-权限-表-事务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: struct类型重定义 不同的基类型_汇
- 下一篇: c #include如何找到文件_如何用