数据库系统概念笔记CH4

本文主要介绍了数据库系统概念的第四章,涉及中级SQL,包括连接表达式、视图、事务、完整性约束和授权等内容。连接表达式涵盖自然连接和外连接;视图提供了一种虚关系,方便数据隐藏和更新;事务确保原子性;完整性约束保证数据一致性;SQL的数据类型和模式包括日期时间、默认值等;最后讨论了授权机制。
摘要由CSDN通过智能技术生成

数据库系统概念笔记CH4(上)

第四章:中级SQL
4.1连接表达式

连接条件

  • join…using是一种自然连接的形式,只需要在指定属性上的取值匹配
  • join…on则允许一种更为普遍的自然连接
  • 在下面条件下对二者进行自然连接(注意CS-315仅存在于course,CS-347仅存在于prereq中)
    course和prereq的组成
    举例说明:
--举例子说明join...on
--
select *
from student join takes on student.ID=takes.ID
--将student.ID和takes.ID相同的元组进行了自然连接
--如果使用join...using,则由于在ID上存在不匹配,故不能够成功连接
--等价于
select *
from student,takes
where student.ID=takes.ID

连接后:
自然连接后
因此由于on条件可以表示为任意的SQL谓词,故on条件的自然连接表达式使得自然连接变得更加丰富。

外连接 outer join

外连接通过在结果中创建包含空值元组的方式保留了在连接中丢失的元组

外连接有三种形式:

  • 左外连接:只保留出现在左外连接运算之前的关系中的元组
    左外连接
  • 右外连接:只保留出现在右外连接运算之后的关系中的元组
    右外连接
  • 全外连接:保留出现在两个关系中的元组
    全外连接
4.2 VIEWS 视图

why need views?

有时候我们希望向用户隐藏特定的数据;如果直接对部分数据进行条件提取后,如果底层数据发生变化的话,则提取的数据需要再次提取,很不方便且占用空间。

视图:不是逻辑模型的一部分,是一种作为虚关系对用户可见的关系

视图的创建: 视图关系只有在需要的时候才会被创建

--通用:
creat view v as <qeary expression>
--其中<query expression>可以是任何合法的查询表达式,v表示视图名


--创建一个instructor视图,不看到工资
creat view faculty as
   select ID,name,dept_name
   from instructor;
   
--之后可以使用view
select name
from faculty
where dept_name='Biology'

视图更新:

对视图的修改与更新实际上是作用于其所对应的数据库逻辑模型中的实际关系的修改

通常来说SQL视图可更新的条件:

  • from子句中只有一个数据库关系

  • select子句中只包含关系的属性名,不包含任何表达式、聚集或者distinct声明

  • 任何没有出现在select子句中的属性可以取值为空

  • 查询中没有group by或having子句

    --在可插入情况下,语句:
    insert into faculty values (30765, ’Green’, ’Music’);
    --等价于
    insert into faculty values 
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值