文档详情

数据库系统概念03sql.ppt

发布:2017-08-05约3.52万字共204页下载文档
文本预览下载声明
* * 数据库系统概念----SQL 3.10.5事务(Transaction) 一个事务由查询和更新的语句的序列组成。 一个SQL语句开始执行隐含一个事务的开始 以下列语句之一表示结束一个事务,其后的SQL语句属于新的事务 commit [work]:提交当前事务,即将该事务所做的更新在数据库中永久保存 rollback [work]:回滚当前事务,即撤销该事务中所有SQL对数据库的更新,数据库恢复到执行该事务的第一条语句之前的状态 * * 数据库系统概念----SQL 3.10.5:事务 示例: sql1 sql2 commit; sql3 sql4 rollback; sql5 commit; //sql1,sql2属于一个事务,sql5属于另一个事务,结果被提交; //sql3,sql4属于一个事务,事务回滚,相当于sql3/4从未执行; * * 数据库系统概念----SQL 3.11关系的连接 关系连接 关系连接能使sql更直接支持关系代数 Sql86/87中没有定义关系连接 目前DBMS支持关系连接的方式、程度各不相同 本节介绍性质,不要求掌握 基本分类 连接成分 包括两个输入关系、连接条件、连接类型 连接条件 决定两个关系中哪些元组相互匹配,以及连接结果中出现哪些属性 连接类型 决定如何处理与连接条件不匹配的元组 * * 数据库系统概念----SQL 3.11关系的连接 nature on 谓词 using (A1, A2 ,…, An) inner join left outer join right outer join full outer join 连接条件 连接类型 * * 数据库系统概念----SQL 3.10.2插入操作 示例 insert into PROF values ( P123, “王明”, 35, D08, 498 ) insert into PROF (PNO, PNAME, DNO) values ( P123, “王明”, D08 ) 思考:SAL取何值? 如何防止插入带有空值的元组? * * 数据库系统概念----SQL 3.10.2插入操作 将平均成绩大于90的学生加入到EXCELLENT中 insert into EXCELLENT ( SNO, GRADE) select SNO , avg(SCORE) from SC group by (SNO) having avg(SCORE) 90 * * 数据库系统概念----SQL 3.10.2插入操作 INTO子句 指定要插入数据的表名及属性列 属性列的顺序可与表定义中的顺序不一致 没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致 指定部分属性列:插入的元组在其余属性列上取空值 VALUES子句 提供的值必须与INTO子句匹配 值的个数 值的类型 子查询 SELECT子句目标列必须与INTO子句匹配 值的个数 值的类型 * * 数据库系统概念----SQL 3.10.2插入操作 insert into PROF select * from PROF 不支持修改在子查询中出现的表 若支持,则完成查询后,再执行修改操作 * * 数据库系统概念----SQL 3.10.2插入操作 DBMS在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则 实体完整性 参照完整性 用户定义的完整性 对于有NOT NULL约束的属性列是否提供了非空值 对于有UNIQUE约束的属性列是否提供了非重复值 对于有值域约束的属性列所提供的属性值是否在值域范围内 * * 数据库系统概念----SQL 3.10.3更新操作 命令 update 表名 set 列名 = 表达式 | 子查询 列名 = [,表达式 | 子查询]… [where 条件表达式] 指定对哪些列进行更新,以及更新后的值是什么 * * 数据库系统概念----SQL 3.10.3更新操作 三种修改方式 修改某一个元组的值 修改多个元组的值 带子查询的修改语句 * * 数据库系统概念----SQL 3.10.3更新操作 示例 老师工资上调5% update PROF set SAL = SAL * 1.05 * * 数据库系统概念----SQL 3.10.3更新操作 将d1系的学生的年龄增加1岁。 UPDATE Student SET Sage= Sage+1 WHERE dno=‘d1’ * * 数据库系统概念----SQL 3.10.
显示全部
相似文档