处理数据课件_第1页
处理数据课件_第2页
处理数据课件_第3页
处理数据课件_第4页
处理数据课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7-处理数据处理数据7-处理数据课程目标学完本课后,应能完成以下工作:描述各个数据操纵语言(DML)语句在表中插入行更新表中的行从表中删除行控制事务处理7-处理数据数据操纵语言在进行以下操作时,会执行DML语句:在表中添加新行修改表中现有的行从表中删除现有的行事务处理由DML语句的集合组成,这些语句构成一个逻辑工作单元。7-处理数据在表中添加新行DEPARTMENTS在

DEPARTMENTS

表中插入新行新行7-处理数据INSERT

语句语法使用INSERT

语句在表中添加新行:

使用此语法一次只能插入一行。INSERTINTO table[(column[,column...])]VALUES (value[,value...]);7-处理数据插入新行插入一个新行,此行的每一列都含有值按照表中列的默认顺序列出这些值(可选)在INSERT

子句中列出列

将字符和日期值包含在单引号中INSERTINTOdepartments(department_id,department_name,manager_id,location_id)VALUES(70,'PublicRelations',100,1700);1rowcreated.7-处理数据插入带有空值的行隐式方法:在列的列表中省略该列显式方法:在

VALUES

子句中指定

NULL

关键字INSERTINTO departments(department_id,department_name)VALUES (30,'Purchasing');1rowcreated.INSERTINTO departmentsVALUES (100,'Finance',NULL,NULL);1rowcreated.7-处理数据插入特殊值SYSDATE

函数记录当前日期和时间INSERTINTOemployees(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);1rowcreated.7-处理数据插入特定日期值添加新雇员

确认添加的内容INSERTINTOemployeesVALUES(114,'Den','Raphealy','DRAPHEAL','515.127.4561',TO_DATE('FEB3,1999','MONDD,YYYY'),'AC_ACCOUNT',11000,NULL,100,30);1rowcreated.7-处理数据INSERTINTOdepartments

(department_id,department_name,location_id)

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

创建脚本在SQL语句中使用&替代来提示用户输入值&是变量值的占位符1rowcreated.7-处理数据从其它表中复制行编写带有子查询的INSERT

语句:

不要使用VALUES

子句。使INSERT

子句中的列数与子查询中的列数匹配。INSERTINTOsales_reps(id,name,salary,commission_pct)SELECTemployee_id,last_name,salary,commission_pctFROMemployeesWHEREjob_idLIKE'%REP%';4rowscreated.7-处理数据更改表中的数据EMPLOYEES

更新

EMPLOYEES

表中的行:7-处理数据UPDATE

语句语法

使用

UPDATE

语句修改现有的行:

如果需要,可以一次更新多行。

UPDATE tableSET column=value[,column=value,...][WHERE condition];7-处理数据更新表中的行如果指定了WHERE

子句,则可以修改特定的一行或

多行:

如果省略WHERE

子句,则会修改表中的所有行:UPDATEemployeesSETdepartment_id=70WHEREemployee_id=113;1rowupdated.UPDATE copy_empSET department_id=110;22rowsupdated.7-处理数据使用子查询更新两个列更新雇员114的职务和薪金,使其与雇员205的职务和薪金相匹配。UPDATEemployeesSETjob_id=(SELECTjob_idFROMemployeesWHEREemployee_id=205),salary=(SELECTsalaryFROMemployeesWHEREemployee_id=205)WHEREemployee_id=114;1rowupdated.7-处理数据根据另一个表更新行根据另一个表中的值,在UPDATE

语句中使用子查询来更新表中的行:UPDATEcopy_empSETdepartment_id=(SELECTdepartment_idFROMemployeesWHEREemployee_id=100)WHEREjob_id=(SELECTjob_idFROMemployeesWHEREemployee_id=200);1rowupdated.7-处理数据从

DEPARTMENTS

表中删除一行:

从表中删除行DEPARTMENTS

7-处理数据DELETE

语句使用DELETE

语句,可以从表中删除现有的行:DELETE[FROM] table

[WHERE condition];7-处理数据从表中删除行如果指定WHERE

子句,则可以删除特定的行:

如果省略WHERE

子句,则会删除表中的所有行:DELETEFROMdepartmentsWHEREdepartment_name='Finance';1rowdeleted.DELETEFROMcopy_emp;22rowsdeleted.7-处理数据根据另一个表删除行根据另一个表中的值在DELETE

语句中使用子查询来删除表中的行:DELETEFROMemployeesWHEREdepartment_id=(SELECTdepartment_idFROMdepartmentsWHEREdepartment_nameLIKE'%Public%');1rowdeleted.7-处理数据TRUNCATE

语句从表中删除所有行,使表为空并保留表结构不变是数据定义语言(DDL)语句而不是DML语句,无法轻易地将其还原。语法:

示例:TRUNCATETABLEtable_name;TRUNCATETABLEcopy_emp;7-处理数据在INSERT

语句中使用子查询INSERTINTO(SELECTemployee_id,last_name,email,hire_date,job_id,salary,department_idFROMemployeesWHEREdepartment_id=50)VALUES(99999,'Taylor','DTAYLOR',TO_DATE('07-JUN-99','DD-MON-RR'),'ST_CLERK',5000,50);1rowcreated.7-处理数据在INSERT

语句中使用子查询验证结果:SELECTemployee_id,last_name,email,hire_date,job_id,salary,department_idFROMemployeesWHEREdepartment_id=50;7-处理数据数据库事务处理数据库事务处理由以下语句之一组成:对数据进行一次一致更改的DML语句一条DDL语句一条数据控制语言(DCL)语句7-处理数据数据库事务处理在执行第一条DMLSQL语句时开始在发生下列事件之一时结束:发出COMMIT

或ROLLBACK

语句执行DDL或DCL语句(自动提交)用户退出iSQL*Plus系统崩溃7-处理数据COMMIT

和ROLLBACK

语句的优点使用COMMIT

和ROLLBACK

语句,您可以:确保数据的一致性在使更改变成永久性更改之前预览数据更改按逻辑关系对相关操作进行分组7-处理数据控制事务处理SAVEPOINT

B

SAVEPOINT

A

DELETE

INSERT

UPDATE

INSERT

COMMIT

时间

事务处理

ROLLBACK

toSAVEPOINTB

ROLLBACK

toSAVEPOINTA

ROLLBACK

7-处理数据将更改回退到某个标记使用SAVEPOINT

语句在当前事务处理中创建一个标记使用ROLLBACKTOSAVEPOINT

语句回退到该标记UPDATE...SAVEPOINTupdate_done;Savepointcreated.INSERT...ROLLBACKTOupdate_done;Rollbackcomplete.7-处理数据隐式事务处理在下列情况下将发生自动提交:发出DDL语句发出DCL语句从iSQL*Plus中正常退出,而没有显式发出COMMIT

或ROLLBACK

语句在iSQL*Plus异常终止或出现系统故障的情况下会发生自动回退。7-处理数据7-处理数据执行COMMIT

或ROLLBACK

操作之前的数据状态可以将数据还原到以前的状态。当前用户可以使用SELECT

语句查看DML操作的结果。其他用户不能查看当前用户的DML语句的结果。受影响的行将被锁定,其他用户不能更改受影响的行中的数据。7-处理数据执行COMMIT

操作之后的数据状态数据库中的数据更改将变成永久性的更改。以前的数据状态将永久丢失。所有用户都可以查看结果。受影响的行上的锁将被释放,其他用户可以对这些行进行处理。所有保存点都将被清除。7-处理数据提交数据进行更改:

提交更改:DELETEFROMemployees

WHEREemployee_id=99999;

1rowdeleted.

INSERTINTOdepartments

VALUES(290,'CorporateTax',NULL,1700);

1rowcreated.

COMMIT;Commitcomplete.

7-处理数据执行ROLLBACK

操作之后的数据状态使用ROLLBACK

语句放弃所有待定更改之后,会有如下结果:数据更改将被还原数据将还原到以前的状态受影响的行上的锁将被释放DELETEFROMcopy_emp;20rowsdeleted.ROLLBACK;Rollbackcomplete.7-处理数据执行ROLLBACK

操作之后的数据状态DELETEFROMtest;

25,000rowsdeleted.

ROLLBACK;

Rollbackcomplete.

DELETEFROMtestWHEREid=100;

1rowdeleted.

SELECT*FROMtestWHEREid=100;

Norowsselected.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论