oracle資料操作和控制語言詳解(一)
office:office" />
sql語言共分為四大類:資料查詢語言dql,資料操縱語言dml, 資料定義語言ddl,資料控制語言dcl。其中用於定義資料的結構,比如 建立、修改或者刪除資料庫;dcl用於定義資料庫使用者的許可權;在這篇文章中我將詳細講述這兩種語言在oracle中的使用方法。
dml語言
dml是sql的乙個子集,主要用於修改資料,下表列出了oracle支援的dml語句。
語句 用途
insert
向表中新增行
update
更新儲存在表中的資料
delete
刪除行select for update
禁止其他使用者訪問dml語句正在處理的行
lock table
禁止其他使用者在表中使用
dml語句
插入資料
insert
語句常常用於向表中插入行,行中可以有特殊資料字段,或者可以用子查詢從已存在的資料中建立新行。
列目錄是可選的,預設的列的目錄是所有的列名,包括comlumn_id,comlumn_id可以在資料字典檢視all_tab_columns,user_tab_columns,或者dba_tab_columns中找到。
插入行的資料的數量和資料型別必須和列的數量和資料型別相匹配。不符合列定義的資料型別將對插入值實行隱式資料轉換。null字串將乙個null值插入適當的列中。關鍵字null常常用於表示將某列定義為null值。
下面的兩個例子是等價的。
insert into customers(cust_id,state,post_code)
value('ariel',null,'94501'); 或
insert into customers(cust_id,state,post_code)
value('ariel',,'94501');
更新資料
update
命令用於修改表中的資料。
update order_rollup
set(qty,price)=(select sum(qty),sum(price) from order_lines where customer_id='kohl'
where cust_id='kohl'
and order_period=to_date('01-oct-2000')
刪除資料
delete
語句用來從表中刪除一行或多行資料,該命令包含兩個語句:
1、關鍵字delete from後跟準備從中刪除資料的表名。
2、where後跟刪除條件
delete from po_lines
where ship_to_state in ('tx','ny','il')
and order_date
清空表
如果你想刪除表中所有資料,清空表,可以考慮使用ddl語言的truncate語句。truncate就像沒有where子句的delete命令一樣。truncate將刪除表中所有行。truncate不是dml語句是ddl語句,他和delete右不同的特點。
truncate table (schema)table drop(reuse) storage
storage
子串是可選的,預設是drop storage。當使用drop storage時將縮短表和表索引,將表收縮到最小範圍,並重新設定next引數。reuse storage不會縮短表或者調整next引數。
truncate
和delete有以下幾點區別
1、truncate在各種表上無論是大的還是小的都非常快。如果有rollback命令delete將被撤銷,而truncate則不會被撤銷。
2、truncate是乙個ddl語言,向其他所有的ddl語言一樣,他將被隱式提交,不能對truncate使用rollback命令。
3、truncate將重新設定高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經過truncate操作後的錶比delete操作後的表要快得多。
4、truncate不能觸發任何delete觸發器。
5、不能授予任何人清空他人的表的許可權。
6、當表被清空後表和表的索引講重新設定成初始大小,而delete則不能。
7、不能清空父表。
select for update
select for update
語句用於鎖定行,阻止其他使用者在該行上修改資料。當該行被鎖定後其他使用者可以用select語句查詢該行的資料,但不能修改或鎖定該行。
鎖定表 lock schema table in lock_mode
其中lock_mode有兩個選項:
share
共享方式
exclusive
唯一方式
例:lock table intentory in exclusive mode
死鎖
當兩個事務都被鎖定,並且互相都在等待另乙個被解鎖,這種情況稱為死鎖。
當出現死鎖時,oracle將檢測死鎖條件,並返回乙個異常。
lock
語句常常用於鎖定整個表。當表被鎖定後,大多數dml語言不能在該錶上使用。lock語法如下:
Oracle資料操作和控制語言詳解 一
sql語言共分為四大類 資料查詢語言dql,資料操縱語言dml,資料定義語言ddl,資料控制語言dcl。其中用於定義資料的結構,比如 建立 修改或者刪除資料庫 dcl用於定義資料庫使用者的許可權 在這篇文章中我將詳細講述這兩種語言在oracle中的使用方法。dml語言 dml是sql的乙個子集,主要...
Oracle資料操作和控制語言詳解 之三
角色和角色許可權 角色許可權就是將屬於使用者的許可權授予乙個角色。任何許可權都可以授予給乙個角色。授予系統許可權給被授予者必須使用with admin option子句,在會話期間通過set role語句授予或撤銷角色許可權。然而,角色許可權不能依靠儲存在sql中的許可權。如果函式 程式 包 觸發器...
python的IO操作和控制語句
一 io操作和佔位符 input output 佔位符 當我們需要輸入一串字元和某個變數的組合時,可以使用佔位符,以下是佔位符舉例 二 條件判斷語句 條件語句是指根據條件表示式的不同計算結果,使程式流轉至不同的 塊。三 迴圈語句 1 while迴圈 格式 while 表示式 else 舉例 coun...