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

首頁 > 數據庫 > Oracle > 正文

Oracle數據操作和控制語言詳解(1)

2024-08-29 13:44:02
字體:
來源:轉載
供稿:網友
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在各種表上無論是大的還是小的都非??臁<偃缬蠷OLLBACK命令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使用事務控制誰可以操作數據。

事務

事務表示工作的一個基本單元,是一系列作為一個單元被成功或不成功操作的SQL語句。在SQL和PL/SQL中有很多語句讓程序員控制事務。程序員可以:

1、顯式開始一個事物,選擇語句級一致性或事務級一致性

2、設置撤銷回滾點,并回滾到回滾點

3、完成事務永遠改變數據或者放棄修改。

事務控制語句
語句用途Commit 完成事務,數據修改成功并對其他用戶開放Rollback 撤銷事務,撤銷所有操作rollback to savepoint 撤銷在設置的回滾點以后的操作set transaction響應事務或語句的一致性;非凡對于事務使用回滾段例:

BEGIN

UPDATE checking

SET balance=balance-5000

WHERE account='Kieesha';

INSERT INTO checking_log(action_date,action,amount)

VALUES (SYSDATE,'Transfer to brokerage',-5000);

UPDATE brokerage

SET cash_balance=cash_balance+5000

WHERE account='Kiesha';

INSERT INTO brokerage_log(action_date,action,amount)

VALUES (SYSDATE,'Tracfer from checking',5000)

COMMIT

EXCEPTION

WHEN OTHERS

ROLLBACK

END 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語句經常用于鎖定整個表。當表被鎖定后,大多數DML語言不能在該表上使用。LOCK語法如下:

LOCK schema table IN lock_mode

其中lock_mode有兩個選項:

share 共享方式

exclusive 唯一方式

例:LOCK TABLE intentory IN EXCLUSIVE MODE
死鎖

當兩個事務都被鎖定,并且互相都在等待另一個被解鎖,這種情況稱為死鎖。當出現死鎖時,ORACLE將檢測死鎖條件,并返回一個異常。事務控制

事務控制包括協調對相同數據的多個同步的訪問。當一個用戶改變了另一個用戶正在使用的數據時,oracle使用事務控制誰可以操作數據。

事務

事務表示工作的一個基本單元,是一系列作為一個單元被成功或不成功操作的SQL語句。在SQL和PL/SQL中有很多語句讓程序員控制事務。程序員可以:

1、顯式開始一個事物,選擇語句級一致性或事務級一致性

2、設置撤銷回滾點,并回滾到回滾點

3、完成事務永遠改變數據或者放棄修改。

事務控制語句語句用途Commit 完成事務,數據修改成功并對其他用戶開放Rollback 撤銷事務,撤銷所有操作rollback to savepoint 撤銷在設置的回滾點以后的操作set transaction響應事務或語句的一致性;非凡對于事務使用回滾段例:

BEGIN

UPDATE checking

SET balance=balance-5000

WHERE account='Kieesha';

INSERT INTO checking_log(action_date,action,amount)

VALUES (SYSDATE,'Transfer to brokerage',-5000);

UPDATE brokerage

SET cash_balance=cash_balance+5000

WHERE account='Kiesha';

INSERT INTO brokerage_log(action_date,action,amount)

VALUES (SYSDATE,'Tracfer from checking',5000)

COMMIT

EXCEPTION

WHEN OTHERS

ROLLBACK

END 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語句經常用于鎖定整個表。當表被鎖定后,大多數DML語言不能在該表上使用。LOCK語法如下:

LOCK schema table IN lock_mode

其中lock_mode有兩個選項:

share 共享方式

exclusive 唯一方式

例:LOCK TABLE intentory IN EXCLUSIVE MODE
死鎖

當兩個事務都被鎖定,并且互相都在等待另一個被解鎖,這種情況稱為死鎖。當出現死鎖時,ORACLE將檢測死鎖條件,并返回一個異常。事務控制

事務控制包括協調對相同數據的多個同步的訪問。當一個用戶改變了另一個用戶正在使用的數據時,oracle使用事務控制誰可以操作數據。

事務

事務表示工作的一個基本單元,是一系列作為一個單元被成功或不成功操作的SQL語句。在SQL和PL/SQL中有很多語句讓程序員控制事務。程序員可以:

1、顯式開始一個事物,選擇語句級一致性或事務級一致性

2、設置撤銷回滾點,并回滾到回滾點

3、完成事務永遠改變數據或者放棄修改。

事務控制語句語句用途Commit 完成事務,數據修改成功并對其他用戶開放Rollback 撤銷事務,撤銷所有操作rollback to savepoint 撤銷在設置的回滾點以后的操作set transaction響應事務或語句的一致性;非凡對于事務使用回滾段例:

BEGIN

UPDATE checking

SET balance=balance-5000

WHERE account='Kieesha';

INSERT INTO checking_log(action_date,action,amount)

VALUES (SYSDATE,'Transfer to brokerage',-5000);

UPDATE brokerage

SET cash_balance=cash_balance+5000

WHERE account='Kiesha';

INSERT INTO brokerage_log(action_date,action,amount)

VALUES (SYSDATE,'Tracfer from checking',5000)

COMMIT

EXCEPTION

WHEN OTHERS

ROLLBACK

END 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語句經常用于鎖定整個表。當表被鎖定后,大多數DML語言不能在該表上使用。LOCK語法如下:

LOCK schema table IN lock_mode

其中lock_mode有兩個選項:

share 共享方式

exclusive 唯一方式

例:LOCK TABLE intentory IN EXCLUSIVE MODE
死鎖

當兩個事務都被鎖定,并且互相都在等待另一個被解鎖,這種情況稱為死鎖。當出現死鎖時,ORACLE將檢測死鎖條件,并返回一個異常。事務控制

事務控制包括協調對相同數據的多個同步的訪問。當一個用戶改變了另一個用戶正在使用的數據時,oracle使用事務控制誰可以操作數據。

事務

事務表示工作的一個基本單元,是一系列作為一個單元被成功或不成功操作的SQL語句。在SQL和PL/SQL中有很多語句讓程序員控制事務。程序員可以:

1、顯式開始一個事物,選擇語句級一致性或事務級一致性

2、設置撤銷回滾點,并回滾到回滾點

3、完成事務永遠改變數據或者放棄修改。

事務控制語句語句用途Commit 完成事務,數據修改成功并對其他用戶開放Rollback 撤銷事務,撤銷所有操作rollback to savepoint 撤銷在設置的回滾點以后的操作set transaction響應事務或語句的一致性;非凡對于事務使用回滾段例:

BEGIN

UPDATE checking

SET balance=balance-5000

WHERE account='Kieesha';

INSERT INTO checking_log(action_date,action,amount)

VALUES (SYSDATE,'Transfer to brokerage',-5000);

UPDATE brokerage

SET cash_balance=cash_balance+5000

WHERE account='Kiesha';

INSERT INTO brokerage_log(action_date,action,amount)

VALUES (SYSDATE,'Tracfer from checking',5000)

COMMIT

EXCEPTION

WHEN OTHERS

ROLLBACK

END

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 盘山县| 隆德县| 大石桥市| 原平市| 荣成市| 金山区| 鹿泉市| 迁安市| 龙口市| 大竹县| 黄山市| 济南市| 平果县| 泰来县| 西充县| 习水县| 武义县| 正阳县| 武乡县| 仁布县| 玛纳斯县| 革吉县| 泾川县| 资兴市| 高台县| 台江县| 安平县| 江山市| 仁化县| 新兴县| 巴中市| 大英县| 广安市| 桐庐县| 日照市| 万山特区| 奈曼旗| 光山县| 甘肃省| 临湘市| 东丽区|