版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
八.操作数据-DML语句目标结束本节课后,应当达到如下目标:描述每个DML语句向一个表中插入数据更新一个表中数据行从一个表中删除行控制事务数据操作语言DML语句在下列情况下发生:往一个表中增加新行更改一个表中现有的行从一个表中删除掉现有的行一个事务由一组构成一个逻辑操作的DML语句组成
DEPTDEPTNODNAME LOC---------------- --------10 ACCOUNTING NEWYORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON
新行50 DEVELOPMENT DETROIT
DEPTDEPTNODNAME LOC---------------- --------10 ACCOUNTING NEWYORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON
50 DEVELOPMENT DETROIT向一个表中增加新行“…向DEPT表中增加新行…”INSERTINTO table[(column[,column...])]VALUES (value[,value...]);INSERT语句使用INSERT语句向表中增加新行.
使用这种方法只能一次插入一行数据.SQL>INSERTINTO dept(deptno,dname,loc)2VALUES (50,'DEVELOPMENT','DETROIT');1rowcreated.插入新行插入包含每一个列值的新行.按缺省顺序列出表中所有的列值.列出INSERT子句中所有的列,这是可选的.
日期值和字符值要用单引号括起来.SQL>INSERTINTO dept(deptno,dname)2VALUES (60,'MIS');1rowcreated.SQL>INSERTINTO dept2VALUES (70,'FINANCE',NULL);1rowcreated.插入带有空值的行省略的方法:从列的链表忽略有空值的列明确的方法:指定NULL关键字SQL>INSERTINTO emp(empno,ename,job,2 mgr,hiredate,sal,comm,3 deptno)4VALUES (7196,'GREEN','SALESMAN',5 7782,SYSDATE,2000,NULL,6 10);1rowcreated.插入特殊的值SYSDATE函数取出当前的日期的时间.SQL>INSERTINTOemp2VALUES(2296,'AROMANO','SALESMAN',7782,3 TO_DATE('03-2月1997','DD-MON,YYYY'),4 1300,NULL,10);1rowcreated.EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO-----------------------------------------------2296AROMANOSALESMAN778203-2月-97130010插入特殊的日期值增加一个新的员工检验结果.SQL>INSERTINTOmanagers(id,name,salary,hiredate)2 SELECT empno,ename,sal,hiredate3 FROMemp4 WHERE job='MANAGER';3rowscreated.从另一个表中拷贝行创建带有子查询的INSERT语句。
不要使用VALUES子句.子查询中的列要与INSERT子句中的列相匹配.通过使用用SQL*Plus的替代参参数创建建交互脚脚本SQL>INSERTINTO dept(deptno,dname,loc)2VALUES(&department_id,3'&department_name','&location');Entervaluefordepartment_id:80Entervaluefordepartment_name:EDUCATIONEntervalueforlocation:ATLANTA1rowcreated.替代变量量插入值值INSERTINTO(SELECTemployee_id,last_name,email,hire_date,job_id,salary,department_idFROMemployeesWHEREdepartment_id=50)VALUES(99999,'Taylor','DTAYLOR',TO_DATE('07-7月-99','DD-MON-RR'),'ST_CLERK',5000,50);1rowcreated.在INSERT语句中使用用子查询EMP“…更改EMP表中的一行数据…”EMPEMPNO ENAMEJOB...DEPTNO7839KING PRESIDENT107698BLAKE MANAGER307782CLARK MANAGER107566JONES MANAGER20...20EMPNO ENAMEJOB...DEPTNO7839KING PRESIDENT107698BLAKE MANAGER307782CLARK MANAGER107566JONES MANAGER20...改变一个表表中的数据据UPDATEtableSETcolumn=value[,column=value,...][WHEREcondition];UPDATE语句使用UPDATE语句更改现现有的行.如果需要,,可以一次次更改多行行.SQL>UPDATEemp2SETdeptno=203WHEREempno=7782;1rowupdated.SQL>UPDATEemployee2SETdeptno=20;14rowsupdated.更改表中的的行使用WHERE子句来指定定要修改的的行.如果忽略WHERE子句,那么么句子中所所有的值都都将被更改改.SQL>UPDATEemp2SET(job,deptno)=3(SELECTjob,deptno4FROMemp5WHEREempno=7499)6WHEREempno=7698;1rowupdated.用多列子查查询进行修修改更改7698号雇员的工工作和部门门,与第7499号雇员进行行匹配.SQL>UPDATEemployee2 SET deptno=(SELECTdeptno3FROMemp4WHERE empno=7788)5 WHEREjob=(SELECT job6FROMemp7WHERE empno=7788);2rowsupdated.使用子查询询更新两列列在UPDATE语句中,使使用子查询询来进行更更改,更改改的数据与与其它表中中的数据有有关.UPDATEemployeesSETjob_id=(SELECTjob_idFROMemployeesWHEREemployee_id=205),salary=(SELECTsalaryFROMemployeesWHEREemployee_id=205)WHEREemployee_id=114;1rowupdated.使用子查询询更新两列列将员工号为为114的工作岗位位和工资改改成与员工工205相同的“…从一个表中删去一行…”DEPTDEPTNODNAMELOC---------------- --------10 ACCOUNTING NEWYORK20 RESEARCHDALLAS30 SALESCHICAGO40 OPERATIONS BOSTON50DEVELOPMENTDETROIT60 MIS...
DEPTDEPTNODNAME LOC---------------- --------10 ACCOUNTING NEWYORK20 RESEARCH DALLAS30 SALES CHICAGO40 OPERATIONS BOSTON60 MIS ...从一个表中中移去一行行DELETE[FROM]table[WHEREcondition];DELETE语句可以使用DELETE语句从表中中删去现存存的行.SQL>DELETEFROMdepartment2WHEREdname='DEVELOPMENT';1rowdeleted.SQL>DELETEFROMdepartment;4rowsdeleted.从一个表中中删去行使用WHERE子句以指定定哪些行应应当被删去去.如果忽略WHERE子句,那么么表中所有有的数据.SQL>DELETEFROMemployee2WHEREdeptno=3(SELECTdeptno4FROMdept5WHEREdname='SALES');6rowsdeleted.参照另一个个表来删除除行使用子查询询,使得DELETE语句能从另另一个表中中删除某些些行.TRUNCATE语句删除表中的的所有数据据,保留表表结构是DDL语句,不是是DML语句Syntax:Example:TRUNCATETABLEtable_name;TRUNCATETABLEcopy_emp;数据库事务务要么全部完完成,要么么全部废弃弃的操作集集合。一个事务可可以包含下下列语句:对数据做出出一致性修修改的DML语句。一个DDL语句一个DCL语句数据库事务务以第一个可可执行的SQL语句开始。。以下列情况况结束:执行COMMIT或者ROLLBACK语句执行DDL或者DCL语句用户退出系统崩溃保证数据的的一致性在数据永久久改变之前前,检查数数据的改变变对逻辑相关关的操作进进行分组COMMIT和ROLLBACK语句的优点点隐式事务处处理在下列环境境下,一个个自动提交交发生:处理DDL语句处理DCL语句从SQL*Plus中退出,而没有明确确指定COMMIT或者ROLLBACK当SQL*Plus中断或者系系统失败时时自动进行行回滚.之前的状态态可以被恢恢复.当前的用户户可以用SELECT语句来查看看DML操作后的结结果.其它用户看看不到当前前用户使用用DML语句进行数数据操纵的的结果.产生改变的的数据被加加锁,其它它用户不能能改变这些些行.COMMIT或ROLLBACK之前数据状状态在COMMIT之后的数据据状态数据的改变变将被永久久的反应到到数据库中中去.事务前面的的数据状态态将被永久久地丢弃.所有的用户户可以查看看结果.加在产生改改变的行上上的数据被被解锁;这些行对于于其他用户户是可用的的.所有的保存存点被释放放.SQL>UPDATEemp2SETdeptno=103WHEREempno=7782;1rowupdated.SQL>COMMIT;Commitcomplete.提交数据产生改变.CommitthechangesSQL>DELETEFROMemployee;14rowsdeleted.SQL>ROLLBACK;Rollbackcomplete.回滚后的数数据状态使用ROLLBACK语句丢弃所所有的数据据改变.数据的改变变失效.事务之前的的数据状态态改变.在改变行的的上的锁被被
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年卫生间淋浴间隔安装合作合同版B版
- 二零二四年度生物科技研发与合作合同2篇
- 2024年专业OEM生产合作合同范例
- 2024垫资承包施工合同
- 二零二四年智能工厂生产管理系统定制开发与购买协议3篇
- 2024年人力资源服务公司招聘合作协议样本版B版
- 2024工程服务综合主协议样本版B版
- 2024公司地下停车场承包三方协议
- 2024年三七产品电商平台运营合同2篇
- 2024年度房地产项目销售与代理合同
- 《中小学校园食品安全和膳食经费管理工作指引》专题培训
- 宾馆饭店危险品安全管理制度(3篇)
- 天津市河西区2024-2025学年高一上学期11月期中考试 政治 含答案
- 重症医学科培训与考核制度
- 日本课件 人教版
- 统编版(2024新版)七年级上册历史第二单元测试卷(含答案)
- 北京市2024年中考道德与法治真题试卷(含答案)
- DB41T 1106-2015 高油酸花生生产技术规程
- 沪科版2023-2024学年七年级上册数学期末考试试卷(一)含答案
- 产品研发与创新战略性合作协议书
- 辽宁省大连市中山区2024-2025学年七年级上学期期中考试英语试卷(含答案)
评论
0/150
提交评论