




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
处理数据 讲师 佟刚新浪微博 尚硅谷 佟刚 目标 通过本章学习 您将可以 使用DML语句向表中插入数据更新表中数据从表中删除数据控制事务 数据控制语言 DML DataManipulationLanguage 数据操作语言 可以在下列条件下执行 向表中插入数据修改现存数据删除现存数据事务是由完成若干项工作的DML语句组成的 插入数据 DEPARTMENTS 新行 INSERT语句语法 使用INSERT语句向表中插入数据 使用这种语法一次只能向表中插入一条数据 INSERTINTOtable column column VALUES value value 插入数据 为每一列添加一个新值 按列的默认顺序列出各个列的值 在INSERT子句中随意列出列名和他们的值 字符和日期型数据应包含在单引号中 INSERTINTOdepartments department id department name manager id location id VALUES 70 PublicRelations 100 1700 1rowcreated INSERTINTOdepartmentsVALUES 100 Finance NULL NULL 1rowcreated INSERTINTOdepartments department id department name VALUES 30 Purchasing 1rowcreated 向表中插入空值 隐式方式 在列名表中省略该列的值 显示方式 在VALUES子句中指定空值 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 插入指定的值 SYSDATE记录当前系统的日期和时间 INSERTINTOemployeesVALUES 114 Den Raphealy DRAPHEAL 515 127 4561 TO DATE FEB3 1999 MONDD YYYY AC ACCOUNT 11000 NULL 100 30 1rowcreated 插入指定的值 加入新员工检查插入的数据 INSERTINTOdepartments department id department name location id VALUES 创建脚本 在SQL语句中使用 变量指定列值 变量放在VALUES子句中 在INSERT语句中加入子查询 不必书写VALUES子句 子查询中的值列表应与INSERT子句中的列名对应 INSERTINTOsales reps id name salary commission pct SELECTemployee id last name salary commission pctFROMemployeesWHEREjob idLIKE REP 4rowscreated 从其它表中拷贝数据 更新数据 EMPLOYEES 更新EMPLOYEES表 UPDATE语句语法 使用UPDATE语句更新数据 可以一次更新多条数据 UPDATEtableSETcolumn value column value WHEREcondition UPDATEemployeesSETdepartment id 70WHEREemployee id 113 1rowupdated 使用WHERE子句指定需要更新的数据 如果省略WHERE子句 则表中的所有数据都将被更新 更新数据 UPDATEcopy empSETdepartment id 110 22rowsupdated UPDATEemployeesSETjob id SELECTjob idFROMemployeesWHEREemployee id 205 salary SELECTsalaryFROMemployeesWHEREemployee id 205 WHEREemployee id 114 1rowupdated 在UPDATE语句中使用子查询 更新114号员工的工作和工资使其与205号员工相同 UPDATEcopy empSETdepartment id SELECTdepartment idFROMemployeesWHEREemployee id 100 WHEREjob id SELECTjob idFROMemployeesWHEREemployee id 200 1rowupdated 在UPDATE语句中使用子查询 在UPDATE中使用子查询 使更新基于另一个表中的数据 UPDATEemployees ERRORatline1 ORA 02291 integrityconstraint HR EMP DEPT FK violated parentkeynotfound UPDATEemployeesSETdepartment id 55WHEREdepartment id 110 更新中的数据完整性错误 不存在55号部门 从表DEPARTMENTS中删除一条记录 删除数据 DEPARTMENTS DELETE语句 使用DELETE语句从表中删除数据 DELETE FROM table WHEREcondition 使用WHERE子句指定删除的记录 如果省略WHERE子句 则表中的全部数据将被删除 删除数据 DELETEFROMdepartmentsWHEREdepartment name Finance 1rowdeleted DELETEFROMcopy emp 22rowsdeleted DELETEFROMemployeesWHEREdepartment id SELECTdepartment idFROMdepartmentsWHEREdepartment nameLIKE Public 1rowdeleted 在DELETE中使用子查询 在DELETE中使用子查询 使删除基于另一个表中的数据 删除中的数据完整性错误 DELETEFROMdepartmentsWHEREdepartment id 60 DELETEFROMdepartments ERRORatline1 ORA 02292 integrityconstraint HR EMP DEPT FK violated childrecordfound Youcannotdeletearowthatcontainsaprimarykeythatisusedasaforeignkeyinanothertable 数据库事务 数据库事务由以下的部分组成 一个或多个DML语句一个DDL DataDefinitionLanguage 数据定义语言 语句一个DCL DataControlLanguage 数据控制语言 语句 数据库事务 以第一个DML语句的执行作为开始以下面的其中之一作为结束 COMMIT或ROLLBACK语句DDL或DCL语句 自动提交 用户会话正常结束系统异常终了 COMMIT和ROLLBACK语句的优点 使用COMMIT和ROLLBACK语句 我们可以 确保数据完整性 数据改变被提交之前预览 将逻辑上相关的操作分组 控制事务 ROLLBACKtoSAVEPOINTB ROLLBACKtoSAVEPOINTA ROLLBACK UPDATE SAVEPOINTupdate done Savepointcreated INSERT ROLLBACKTOupdate done Rollbackcomplete 回滚到保留点 使用SAVEPOINT语句在当前事务中创建保存点 使用ROLLBACKTOSAVEPOINT语句回滚到创建的保存点 自动提交在以下情况中执行 DDL语句 DCL语句 不使用COMMIT或ROLLBACK语句提交或回滚 正常结束会话 会话异常结束或系统异常会导致自动回滚 事务进程 提交或回滚前的数据状态 改变前的数据状态是可以恢复的执行DML操作的用户可以通过SELECT语句查询之前的修正其他用户不能看到当前用户所做的改变 直到当前用户结束事务 DML语句所涉及到的行被锁定 其他用户不能操作 提交后的数据状态 数据的改变已经被保存到数据库中 改变前的数据已经丢失 所有用户可以看到结果 锁被释放 其他用户可以操作涉及到的数据 所有保存点被释放 COMMIT Commitcomplete 改变数据提交改变 DELETEFROMemployeesWHEREemployee id 99999 1rowdeleted INSERTINTOdepartmentsVALUES 290 CorporateTax NULL 1700 1rowinserted 提交数据 数据回滚后的状态 使用ROLLBACK语句可使数据变化失效 数据改变被取消 修改前的数据状态被恢复 锁被释放 DELETEFROMcopy emp 22rowsdeleted ROLLBACK Rollbackcomplete 总结 功能插入修正删除提交保存点回滚 语句INSERTUPDATEDELETECOMMITSAVEPOINTROLLBACK 通过本章学习 您应学会如何使用DML语句改变数据和事务控制 数据库的隔离级别 对于同时运行的多个事务 当这些事务访问数据库中相同的数据时 如果没有采取必要的隔离机制 就会导致各种并发问题 脏读 对于两个事物T1 T2 T1读取了已经被T2更新但还没有被提交的字段 之后 若T2回滚 T1读取的内容就是临时且无效的 不可重复读 对于两个事物T1 T2 T1读取了一个字段 然后T2更新了该字段 之后 T1再次读取同一个字段 值就不同了 幻读 对于两个事物T1 T2 T1从一个表中读取了一个字段 然后T2在该表中插入了一些新的行 之后 如果T1再次读取同一个表 就会多出几行 数据库事务的隔离性 数据库系统必须具有隔离并发运行各个事务的能力 使它们不会相互影响 避免
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文山职业技术学院《纪录片解析》2023-2024学年第二学期期末试卷
- 温州医科大学《跨文化管理》2023-2024学年第二学期期末试卷
- 江苏省镇江句容市2025届中考英语试题模拟试卷(6)英语试题含答案
- 六安市重点中学2025年初三阶段性测试(六)A卷英语试题试卷含答案
- 九江职业技术学院《大气污染控制工程》2023-2024学年第二学期期末试卷
- 正蓝旗2025年数学四下期末质量检测试题含解析
- 内江师范学院《数学课程论与教学教法》2023-2024学年第二学期期末试卷
- 华中师范大学《冶金物理化学》2023-2024学年第二学期期末试卷
- 枣庄市滕州市2024-2025学年三下数学期末学业质量监测模拟试题含解析
- 四川省眉山县市级名校2025年5月中考三轮模拟试卷化学试题含解析
- 电磁感应:“棒-导轨”模型4:单棒-有外力发电式
- 2025年公务员考试江西省(面试)试题及答案指导
- 江苏省期无锡市天一实验校2025届初三下学期第一次模拟考试英语试题含答案
- T∕CFA 0308053-2019 铸造企业清洁生产要求 导则
- 中国盐业集团有限公司 笔试 内容
- 全过程工程咨询投标方案(技术方案)
- DL∕T 1051-2019 电力技术监督导则
- T-CPIA 0056-2024 漂浮式水上光伏发电锚固系统设计规范
- 2024广东深圳市龙岗区总工会招聘社会化工会工作者及事宜笔试历年典型考题及考点剖析附答案带详解
- 公司供应商风险管理制度
- 2024北京市大兴初二(下)期中数学试卷及答案
评论
0/150
提交评论