日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

oracle数据库第八章答案,Oracle培训(三十)——Oracle 11g 第八章知识点小结——处理数据...

發布時間:2025/3/20 数据库 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle数据库第八章答案,Oracle培训(三十)——Oracle 11g 第八章知识点小结——处理数据... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Oracle培訓(三十)——Oracle 11g 第八章知識點總結——處理數據

Oracle 11g 第八章知識點總結——處理數據

知識點預覽

復習

處理數據

復習

--建表t_user

create table t_user(

id number(4),

name varchar2(10),

password varchar2(20),

gender char(1),

birthday date

);

--插入數據

insert into t_user values(1,'小文','123','1');

insert into t_user values(2,'小文2','123','1',to_date('1990-09-09','YYYY-MM-DD'));

insert into t_user(id,name,gender) values(3,'曉曉','0');

--復制一張表

create table t_emp2

as

select* from emp where deptno=100;

--更新數據

update t_user

setgender='1',password='123456'

where name='曉曉';

--刪除數據

delete [from] t_user

where(sysdate-created_time)/365>99

--事務

一個事務當中的操作要么同時成功,要么同時失敗

commit

rollback

--刪除表

Drop table

Purge table “BIN$JFszxZKrTvqrZdo2+rW+2g==$0”

處理數據

1.??????數據控制語言

a)????????DML 可以在下列條件下執行:

向表中插入數據

修改現存數據

刪除現存數據

b)???????事務是由完成若干項工作的DML語句組成的。

2.??????插入數據——INSERT 語句語法

a)????????使用 INSERT 語句向表中插入數據。

INSERT INTO????? table[(column[,column...])]

VALUES??????? (value[, value...]);

b)???????使用這種語法一次只能向表中插入一條數據。

3.??????插入數據

a)????????為每一列添加一個新值。

b)???????按列的默認順序列出各個列的值。

c)????????在 INSERT 子句中隨意列出列名和他們的值。

d)???????字符和日期型數據應包含在單引號中。

INSERT INTOdepartments(department_id, department_name,

manager_id, location_id)

VALUES (70, 'Public Relations', 100, 1700);

1 row created.

4.??????向表中插入空值

a)????????隱式方式: 在列名表中省略該列的值。

INSERT INTO departments (department_id,

department_name )

VALUES (30, 'Purchasing');

1 row created.

b)???????顯示方式: 在VALUES 子句中指定空值。

INSERT INTO departments

VALUES (100, 'Finance', NULL, NULL);

1 row created.

5.??????插入指定的值

SYSDATE 記錄當前系統的日期和時間。

INSERT INTOemployees (employee_id,

first_name, last_name,

email, phone_number,

hire_date, job_id, salary,

commission_pct, manager_id,

department_id)

VALUES (113,

'Louis', 'Popp',

'LPOPP', '515.124.4567',

SYSDATE, 'AC_ACCOUNT', 6900,

NULL, 205, 100);

1 row created.

加入新員工

INSERT INTOemployees

VALUES (114,

'Den', 'Raphealy',

'DRAPHEAL', '515.127.4561',

TO_DATE('FEB 3, 1999', 'MON DD,YYYY'),

'AC_ACCOUNT', 11000, NULL, 100,30);

6.??????創建腳本

a)????????在SQL 語句中使用& 變量指定列值。

b)???????& 變量放在VALUES子句中。

INSERT INTOdepartments

(department_id, department_name,location_id)

VALUES (&department_id,'&department_name',&location);

7.??????從其它表中拷貝數據

a)????????在 INSERT 語句中加入子查詢。

INSERT INTOsales_reps(id, name, salary, commission_pct)

SELECT employee_id, last_name, salary,commission_pct

FROM employees

WHERE job_id LIKE '%REP%';

4 rows created.

b)???????不必書寫 VALUES 子句。

c)????????子查詢中的值列表應于 INSERT 子句中的列名對應。

8.??????更新數據——UPDATE 語句語法

a)????????使用 UPDATE 語句更新數據。

UPDATE????????????? table

SET??????? column= value [, column = value, ...]

[WHERE ??????????? condition];

b)???????可以一次更新多條數據。

9.??????更新數據

a)????????使用 WHERE 子句指定需要更新的數據

UPDATE employees

SET department_id= 70

WHEREemployee_id = 130;

1 rows updated.

b)???????如果省略WHERE子句,則表中的所有數據都將被更新

UPDATE copy_emp

SET department_id= 110;

22 rows updated.

10.??在UPDATE語句中使用子查詢

a)????????更新 114號員工的工作和工資使其與205號員工相同。

UPDATE employees

SET job_id = (SELECT job_id

FROM employees

WHERE employee_id = 205),

salary = (SELECT salary

FROM employees

WHERE employee_id = 205)

WHERE employee_id = 114;

1 row updated.

b)???????在 UPDATE 中使用子查詢,使更新基于另一個表中的數據。

UPDATE copy_emp

SET department_id = (SELECT department_id

FROM employees

WHERE employee_id =100)

WHERE job_id = (SELECT job_id

FROM employees

WHERE employee_id =200);

1 row updated.

11.??更新中的數據完整性錯誤。

UPDATE employees

SET department_id = 55

WHERE department_id = 110;

UPDATEemployees

*

ERROR at line1:

ORA-02291:integrity constraint (HR.EMP_DEPT_FK) violated - parent key not found

不存在55號部門

12.??刪除數據——DELETE 語句

使用 DELETE 語句從表中刪除數據。

DELETE [FROM] ? table

[WHERE ? condition];

13.??刪除數據

a)????????使用WHERE 子句指定刪除的記錄。

DELETE FROM departments

WHERE department_name = 'Finance';

1 row deleted.

b)???????如果省略WHERE子句,則表中的全部數據將被刪除。

DELETE FROM copy_emp;

22 rows deleted.

14.??在 DELETE 中使用子查詢

在 DELETE 中使用子查詢,使刪除基于另一個表中的數據。

DELETE FROMemployees

WHERE department_id =

(SELECT department_id

FROM departments

WHERE department_name LIKE '%Public%');

1 row deleted.

15.??刪除中的數據完整性錯誤

DELETE FROMdepartments

WHERE department_id = 60;

DELETE FROMdepartments

*

ERROR at line1:

ORA-02292:integrity constraint (HR.EMP_DEPT_FK) violated - child record found

You cannot delete a row that contains a primary key that isused as a foreign key in another table.

16.??在INSERT語句中使用子查詢

INSERT INTO

(SELECT employee_id, last_name,

email, hire_date, job_id, salary,

department_id

FROM employees

WHERE department_id = 50)

VALUES (99999,'Taylor', 'DTAYLOR',

TO_DATE('07-JUN-99', 'DD-MON-RR'),

'ST_CLERK', 5000, 50);

1 row created.

SELECTemployee_id, last_name, email, hire_date,

job_id, salary, department_id

FROM employees

WHERE department_id = 50;

17.??在DML語句中使用 WITHCHECK OPTION 關鍵字

a)????????使用子查詢表示 DML 語句中使用的表

b)???????WITH CHECK OPTION 關鍵字避免修改子查詢范圍外的數據

INSERT INTO (SELECT employee_id, last_name, email,

hire_date, job_id, salary

FROM employees

WHERE department_id = 50 WITH CHECK OPTION)

VALUES (99998, 'Smith', 'JSMITH',

TO_DATE('07-JUN-99', 'DD-MON-RR'),

'ST_CLERK', 5000);

INSERT INTO

*

ERROR at line1:

ORA-01402:view WITH CHECK OPTION where-clause violation

18.??顯式默認值

a)????????使用 DEFAULT 關鍵字表示默認值

b)???????可以使用顯示默認值控制默認值的使用

c)????????顯示默認值可以在 INSERT 和 UPDATE 語句中使用

19.??顯示使用默認值

a)????????在插入操作中使用默認值:

INSERT INTOdepartments

(department_id, department_name, manager_id)

VALUES (300,'Engineering', DEFAULT);

b)???????在更新操作中使用默認值:

UPDATEdepartments

SET manager_id =DEFAULT WHERE department_id = 10;

20.??合并語句

a)????????按照指定的條件執行插入或更新操作

b)???????如果滿足條件的行存在,執行更新操作;否則執行插入操作:

i.?????????????避免多次重復執行插入和刪除操作

ii.?????????????提高效率而且使用方便

iii.?????????????在數據倉庫應用中經常使用

21.??合并語句的語法

可以使用merge語句,根據指定的條件進行插入或更新操作

MERGE INTO table_nametable_alias

USING (table|view|sub_query) alias

ON (join condition)

WHEN MATCHED THEN

UPDATE SET

col1 = col_val1,

col2 = col2_val

WHEN NOT MATCHED THEN

INSERT (column_list)

VALUES (column_values);

22.??合并語句舉例

在對表COPY_EMP使用merge語句,根據指定的條件從表EMPLOYEES中插入或更新數據。

MERGE INTOcopy_emp c

USING employees e

ON (c.employee_id = e.employee_id)

WHEN MATCHEDTHEN

UPDATE SET

c.first_name = e.first_name,

c.last_name = e.last_name,

...

c.department_id = e.department_id

WHEN NOT MATCHEDTHEN

INSERT VALUES(e.employee_id, e.first_name,e.last_name,

e.email, e.phone_number, e.hire_date,e.job_id,

e.salary, e.commission_pct,e.manager_id,

e.department_id);

SELECT *

FROM COPY_EMP;

no rows selected

MERGE INTOcopy_emp c

USING employees e

ON (c.employee_id = e.employee_id)

WHEN MATCHEDTHEN

UPDATE SET

...

WHEN NOT MATCHEDTHEN

INSERT VALUES...;

SELECT *

FROM COPY_EMP;

20 rows selected.

23.??數據庫事務

a)????????數據庫事務由以下的部分組成:

i.?????????????一個或多個DML 語句

ii.?????????????一個 DDL 語句

iii.?????????????一個 DCL 語句

b)???????以第一個 DML 語句的執行作為開始

c)????????以下面的其中之一作為結束:

i.?????????????COMMIT 或 ROLLBACK 語句

ii.?????????????DDL 或 DCL 語句(自動提交)

iii.?????????????用戶會話正常結束

iv.?????????????系統異常終了

24.??COMMIT和ROLLBACK語句的優點

使用COMMIT 和 ROLLBACK語句,我們可以:

確保數據完整性。

數據改變被提交之前預覽。

將邏輯上相關的操作分組。

25.??控制事務

26.??回滾到保留點

a)????????使用 SAVEPOINT 語句在當前事務中創建保存點。

b)???????使用 ROLLBACK TO SAVEPOINT 語句回滾到創建的保存點。

UPDATE...

SAVEPOINT update_done;

Savepoint created.

INSERT...

ROLLBACK TO update_done;

Rollback complete.

27.??事務進程

a)????????自動提交在以下情況中執行:

i.?????????????DDL 語句。

ii.?????????????DCL 語句。

iii.?????????????不使用 COMMIT 或 ROLLBACK 語句提交或回滾,正常結束會話。

b)???????會話異常結束或系統異常會導致自動回滾。

28.??提交或回滾前的數據狀態

a)????????改變前的數據狀態是可以恢復的

b)???????執行 DML 操作的用戶可以通過SELECT 語句查詢之前的修正

c)????????其他用戶不能看到當前用戶所做的改變,直到當前用戶結束事務。

d)???????DML語句所涉及到的行被鎖定, 其他用戶不能操作。

29.??提交后的數據狀態

a)????????數據的改變已經被保存到數據庫中。

b)???????改變前的數據已經丟失。

c)????????所有用戶可以看到結果。

d)???????鎖被釋放, 其他用戶可以操作涉及到的數據。

e)????????所有保存點被釋放。

30.??提交數據

a)????????改變數據

DELETE FROMemployees

WHERE employee_id = 99999;

1 row deleted.

INSERT INTOdepartments

VALUES (290,'Corporate Tax', NULL, 1700);

1 row inserted.

b)???????提交改變

COMMIT;

Commit complete.

31.??數據回滾后的狀態

使用 ROLLBACK 語句可使數據變化失效:

數據改變被取消。

修改前的數據狀態可以被恢復。

鎖被釋放。

DELETE FROM copy_emp;

22 rows deleted.

ROLLBACK;

Rollback complete.

32.??語句級回滾

a)????????單獨 DML 語句執行失敗時,只有該語句被回滾。

b)???????Oracle 服務器自動創建一個隱式的保留點。

c)????????其他數據改變仍被保留。

d)???????用戶應執行 COMMIT 或 ROLLBACK 語句結束事務。

33.??讀一致性

a)????????讀一致性為數據提供一個一致的視圖。

b)???????一個用戶的對數據的改變不會影響其他用戶的改變。

c)????????對于相同的數據讀一致性保證:

i.?????????????查詢不等待修改。

ii.?????????????修改不等待查詢。

34.??鎖

a)????????Oracle 數據庫中,鎖是 :

i.?????????????并行事務中避免資源競爭。

ii.?????????????避免用戶動作。

iii.?????????????自動使用最低級別的限制。

iv.?????????????在事務結束結束前存在。

v.?????????????兩種類型: 顯示和隱式。

b)???????兩種模式:

i.?????????????獨占鎖:屏蔽其他用戶。

ii.?????????????共享鎖:允許其他用戶操作。

c)????????高級別的數據并發性:

i.?????????????DML:表共享,行獨占

ii.?????????????Queries:不需要加鎖

iii.?????????????DDL:保護對象定義

d)???????提交或回滾后鎖被釋放。

35.??總結

總結

以上是生活随笔為你收集整理的oracle数据库第八章答案,Oracle培训(三十)——Oracle 11g 第八章知识点小结——处理数据...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。