国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Oracle數(shù)據(jù)操作和控制語言詳解 (一)

2024-08-29 13:31:26
字體:
供稿:網(wǎng)友

sql語言共分為四大類:數(shù)據(jù)查詢語言dql,數(shù)據(jù)操縱語言dml, 數(shù)據(jù)定義語言ddl,數(shù)據(jù)控制語言dcl。其中用于定義數(shù)據(jù)的結(jié)構(gòu),比如 創(chuàng)建、修改或者刪除數(shù)據(jù)庫;dcl用于定義數(shù)據(jù)庫用戶的權(quán)限;在這篇文章中我將詳細(xì)講述這兩種語言在oracle中的使用方法。

dml語言  dml是sql的一個子集,主要用于修改數(shù)據(jù),下表列出了oracle支持的dml語句。 語句 用途 insert 向表中添加行 update 更新存儲在表中的數(shù)據(jù) delete 刪除行 select for update 禁蠱淥沒х夢蔇ml語句正在處理的行。 lock table 禁止其他用戶在表中使用dml語句

  插入數(shù)據(jù)  insert語句常常用于向表中插入行,行中可以有特殊數(shù)據(jù)字段,或者可以用子查詢從已存在的數(shù)據(jù)中建立新行。  列目錄是可選的,缺省的列的目錄是所有的列名,包括comlumn_id,comlumn_id可以在數(shù)據(jù)字典視圖all_tab_columns,user_tab_columns,或者dba_tab_columns中找到。  插入行的數(shù)據(jù)的數(shù)量和數(shù)據(jù)類型必須和列的數(shù)量和數(shù)據(jù)類型相匹配。不符合列定義的數(shù)據(jù)類型將對插入值實行隱式數(shù)據(jù)轉(zhuǎn)換。null字符串將一個null值插入適當(dāng)?shù)牧兄小jP(guān)鍵字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');  更新數(shù)據(jù)  update命令用于修改表中的數(shù)據(jù)。 update order_rollupset(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')  刪除數(shù)據(jù)  delete語句用來從表中刪除一行或多行數(shù)據(jù),該命令包含兩個語句:   1、關(guān)鍵字delete from后跟準(zhǔn)備從中刪除數(shù)據(jù)的表名。   2、where后跟刪除條件 delete from po_lineswhere ship_to_state in ('tx','ny','il')and order_date   清空表  如果你想刪除表中所有數(shù)據(jù),清空表,可以考慮使用ddl語言的truncate語句。truncate就像沒有where子句的delete命令一樣。truncate將刪除表中所有行。truncate不是dml語句是ddl語句,他和delete右不同的特點。 truncate table (schema)table drop(reuse) storage   storage子串是可選的,缺省是drop storage。當(dāng)使用drop storage時將縮短表和表索引,將表收縮到最小范圍,并重新設(shè)置next參數(shù)。reuse storage不會縮短表或者調(diào)整next參數(shù)。  truncate和delete有以下幾點區(qū)別  1、truncate在各種表上無論是大的還是小的都非常快。如果有rollback命令delete將被撤銷,而truncate則不會被撤銷。  2、truncate是一個ddl語言,向其他所有的ddl語言一樣,他將被隱式提交,不能對truncate使用rollback命令。  3、truncate將重新設(shè)置高水平線和所有的索引。在對整個表和索引進行完全瀏覽時,經(jīng)過truncate操作后的表比delete操作后的表要快得多。  4、truncate不能觸發(fā)任何delete觸發(fā)器。  5、不能授予任何人清空他人的表的權(quán)限。  6、當(dāng)表被清空后表和表的索引講重新設(shè)置成初始大小,而delete則不能。  7、不能清空父表。  select for update  select for update語句用于鎖定行,阻止其他用戶在該行上修改數(shù)據(jù)。當(dāng)該行被鎖定后其他用戶可以用select語句查詢該行的數(shù)據(jù),但不能修改或鎖定該行。  鎖定表  lock語句常常用于鎖定整個表。當(dāng)表被鎖定后,大多數(shù)dml語言不能在該表上使用。lock語法如下: lock schema table in lock_mode  其中l(wèi)ock_mode有兩個選項:   share 共享方式   exclusive 唯一方式  例: lock table intentory in exclusive mode  死鎖  當(dāng)兩個事務(wù)都被鎖定,并且互相都在等待另一個被解鎖,這種情況稱為死鎖。  當(dāng)出現(xiàn)死鎖時,oracle將檢測死鎖條件,并返回一個異常。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 温州市| 武夷山市| 绥棱县| 锡林郭勒盟| 宁夏| 特克斯县| 元阳县| 平和县| 桃江县| 阿图什市| 岱山县| 铜梁县| 易门县| 天镇县| 昆山市| 克东县| 新竹县| 墨脱县| 鹿邑县| 石楼县| 凌源市| 晋州市| 博客| 宁陵县| 兰西县| 余干县| 蓬安县| 清涧县| 平舆县| 白银市| 安化县| 洪泽县| 孟州市| 石阡县| 正安县| 上虞市| 绥宁县| 水富县| 大足县| 明溪县| 乐安县|