Oracle資料操作和控制語言詳解 一

2021-09-30 02:34:13 字數 2525 閱讀 6658

sql語言共分為四大類:資料查詢語言dql,資料操縱語言dml, 資料定義語言ddl,資料控制語言dcl。其中用於定義資料的結構,比如 建立、修改或者刪除資料庫;dcl用於定義資料庫使用者的許可權;在這篇文章中我將詳細講述這兩種語言在oracle中的使用方法。

dml語言

dml是sql的乙個子集,主要用於修改資料,下表列出了oracle支援的dml語句。

語句 用途insert

向表中新增行

update

更新儲存在表中的資料

delete

刪除行select for update

禁蠱淥沒х夢蔇ml語句正在處理的行。

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

< td>

清空表

如果你想刪除表中所有資料,清空表,可以考慮使用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語句常常用於鎖定整個表。當表被鎖定後,大多數dml語言不能在該錶上使用。lock語法如下:

lock schema table in lock_mode

其中lock_mode有兩個選項:

share 共享方式

exclusive 唯一方式

例:lock table intentory in exclusive mode

死鎖

當兩個事務都被鎖定,並且互相都在等待另乙個被解鎖,這種情況稱為死鎖。

當出現死鎖時,oracle將檢測死鎖條件,並返回乙個異常。

Oracle資料操作和控制語言詳解 一

oracle資料操作和控制語言詳解 一 office office sql語言共分為四大類 資料查詢語言dql,資料操縱語言dml,資料定義語言ddl,資料控制語言dcl。其中用於定義資料的結構,比如 建立 修改或者刪除資料庫 dcl用於定義資料庫使用者的許可權 在這篇文章中我將詳細講述這兩種語言在...

Oracle資料操作和控制語言詳解 之三

角色和角色許可權 角色許可權就是將屬於使用者的許可權授予乙個角色。任何許可權都可以授予給乙個角色。授予系統許可權給被授予者必須使用with admin option子句,在會話期間通過set role語句授予或撤銷角色許可權。然而,角色許可權不能依靠儲存在sql中的許可權。如果函式 程式 包 觸發器...

python的IO操作和控制語句

一 io操作和佔位符 input output 佔位符 當我們需要輸入一串字元和某個變數的組合時,可以使用佔位符,以下是佔位符舉例 二 條件判斷語句 條件語句是指根據條件表示式的不同計算結果,使程式流轉至不同的 塊。三 迴圈語句 1 while迴圈 格式 while 表示式 else 舉例 coun...