1. 程式人生 > >Oracle中-事務-序列-視圖-數據類型筆記

Oracle中-事務-序列-視圖-數據類型筆記

日期和時間 產生 time 數據 單位 記錄 alt 進行 ack

事務(Transaction)

  • 事務(Transaction)是一個操作序列。這些操作要麽都做,要麽都不做,是一個不可分割的工作單位,是數據庫環境中的邏輯工作單位。
  • 事務是為了保證數據庫的完整性
  • 在oracle中,沒有事務開始的語句。一個Transaction起始於一條DML(Insert、Update和Delete )語句,結束於以下的幾種情況:
    •   用戶顯式執行Commit語句提交操作或Rollback語句回退。
    •   當執行DDL(Create、Alter、Drop)語句事務自動提交。
    •   用戶正常斷開連接時,Transaction自動提交。
    •   系統崩潰或斷電時事務自動回退。
  • Commit表示事務成功地結束,此時告訴系統,數據庫要進入一個新的正確狀態,該事務對數據庫的所有更新都以交付實施。每個Commit語句都可以看成是一個事務成功的結束,同時也是另一個事務的開始。
  • Rollback表示事務不成功的結束,此時告訴系統,已發生錯誤,數據庫可能處在不正確的狀態,該事務對數據庫的更新必須被撤銷,數據庫應恢復該事務到初始狀態。每個Rollback語句同時也是另一個事務的開始。
  • 一旦執行了commit語句,將目前對數據庫的操作提交給數據庫(實際寫入DB),以後就不能用rollback進行撤銷。
  • 執行一個 DDL ,DCL語句或從 SQL*Plus正常退出,都會自動執行commit命令。


  • 提交或回滾前數據的狀態
    以前的數據可恢復
    當前的用戶可以看到DML操作的結果
    其他用戶不能看到DML操作的結果
    被操作的數據被鎖住,其他用戶不能修改這些數據
  • 提交後數據的狀態
     數據的修改被永久寫在數據庫中.
     數據以前的狀態永久性丟失.
     所有的用戶都能看到操作後的結果.
     記錄鎖被釋放,其他用戶可操作這些記錄.
  • 回滾後數據的狀態語句將放棄所有的數據修改
    修改的數據被回退.
    恢復數據以前的狀態.
    行級鎖被釋放.

序列

一、概念:
序列(sequence):oracle專有的專有對象
二、作用:
產生一個自動遞增的數列

三、創建一個序列:
create sequence seq_name

increment by 1
start with 1

四、使用序列:
序列名.nextval
序列名.currval

視圖view

一、定義:
視圖(view):一種不占用物理空間的虛表。

二、作用:
將一些查詢復雜的SQL語句變為視圖,便於查詢

三、語法:
create [or replace] view v$_name
as sub-query
[with read only]

四、需要註意的點:
1.視圖也可以從視圖中產生
2.我們把用於產生視圖的表稱之為基表
3.我們對視圖進行數據修改就是對基表進行數據修改,反之亦然
4.不能對多張表的數據,通過視圖進行修改。

五、使用視圖需要註意
1.一般來講,只有重復出現非常多次的SQL語句,才會創建視圖
2.數據庫遷移,視圖也得隨之遷移,否則在新數據中是不能用的
3.創建視圖時,盡量不要帶or replace

數據類型

數據庫表字段的數據類型
字符數據類型
CHAR:存儲固定長度的字符串
VARCHAR2 :存儲可變長度的字符串
數值數據類型
NUMBER:存儲整數和浮點數,格式為NUMBER(p, s)
column_name NUMBER { p = 38, s = 0}
column_name NUMBER (p) {整數} column_name NUMBER (p,s) {浮點數}
日期時間數據類型
DATE:存儲日期和時間數據
TIMESTAMP:比DATE更精確
LOB數據類型
BLOB:存儲二進制對象,如圖像、音頻和視頻文件
CLOB:存儲字符格式的大型對象

Oracle中-事務-序列-視圖-數據類型筆記