第四章 中级SQL

第四章 中级SQL (5、2)

4.1 连接表达式

4.1.1 连接条件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jmaHkJWm-1650206656992)(pic\image-20220417195958410.png)]
usingon的区别在于需要连接的两个表的属性名相同的时候使用usingon效果一样,而属性名不同的时候必须使用on
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-85giO7WP-1650206656992)(pic\image-20220417200115051.png)]

4.1.2 外连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QB1fCmv3-1650206656993)(pic\image-20220417201240234.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6refepbv-1650206656993)(pic\image-20220417201306351.png)]

  • 内连接:inner join 的 inner 可以省略,简写为 join ;同时 natural inner join 即 natural join 。未匹配的元组会被省略。
  • 外连接
    • 左外连接和右外连接:以右外连接为例,来自右侧关系中的不匹配左侧关系的元组会被补上空值,加入到内连接的结果当中。
    • 全外连接:来自左侧与右侧中不匹配的关系其元组会被补上空值后加到内连接的结果当中。
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uKNGKXmX-1650206656993)(pic\image-20220417202219703.png)]

4.2 视图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NRsGPmoz-1650206656994)(pic\image-20220417202513397.png)]

4.2.1 视图定义 creat view v … as

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9YVAeuYN-1650206656994)(pic\image-20220417202920631.png)]
当视图关系被访问的时候,其中的元组是通过计算查询结果而被创建出来的。因此,视图关系是被需要的时候才被创建出来。因而每次调用时都会重新计算(随实际数据变化而变化)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xoKmCTFX-1650206656994)(pic\image-20220417203613746.png)]
视图的属性名可以被定义。

4.2.2 SQL查询中使用视图

一旦定义了一个视图,我们就可以使用视图名代替该视图生成的虚关系。
在这里插入图片描述在这里插入图片描述

4.2.3 物化视图

在这里插入图片描述

4.2.4 视图更新

视图必须满足如下条件才可以进行更新(插删更):
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k8AG3Sik-1650206656996)(pic\image-20220417213455966.png)]
假设在向一个视图插入数据时,关系的属性与视图关系不完全匹配,那么要么①拒绝插入操作的执行;②为属性名不同的值进行空值补入(删除多出属性)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lEjMR7Fb-1650206656996)(pic\image-20220417213824941.png)]

4.4 完整性约束

4.4.1 单个关系约束 (4.4.1~4可见3.2节内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ri0vjy1R-1650206656996)(pic\image-20220417214331421.png)]

4.4.2 not null

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-roYeb9cB-1650206656997)(pic\image-20220417214634977.png)]

4.4.3 unique

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JOvsnEwo-1650206656997)(pic\image-20220417214659716.png)]

4.4.4 check

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lXuB7r7d-1650206656997)(pic\image-20220417214817595.png)]

4.4.5 参照完整性(外码)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b90dqJEu-1650206656998)(pic\image-20220417220244523.png)]

4.4.6 事物中对完整性约束的违反[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RVyvqlRC-1650206656998)(pic\image-20220417220754275.png)]

4.5 SQL数据类型与模式(2、3、4、5)

4.5.1 SQL中的日期和时间类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yBcm9E72-1650206656998)(pic\image-20220417220947591.png)]

4.5.2 默认值default

在创建时通过default设置默认值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-owjhdczj-1650206656998)(pic\image-20220417221046207.png)]

4.5.3 创建索引

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9jozLhRA-1650206656998)(pic\image-20220417221405504.png)]

4.5.4 大数据类型

如图片、视频等数据需要的存储空间非常大。SQL提供大对象数据类型(clob)二进制数据的大对象数据类型(blob),log 指 Large Object。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oLAUnzkq-1650206656999)(pic\image-20220417221823073.png)]

4.5.5 用户定义类型

  • 结构化数据类型(structured data type) ×

  • 独特类型 distinct type
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nMLVlhrG-1650206656999)(pic\image-20220417222512736.png)]

create type Dollars as numeric(12 , 2) final;

创建的新类型可以在表格创建中使用。同时在域上可以进行约束。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s6RBOcHS-1650206656999)(pic\image-20220417222831610.png)]

4.6 授权Authorization

  • read授权读取数据
  • insert授权插入新数据
  • update授权更新数据
  • delete授权删除数据

4.6.1 权限的授予和回收 grant & revoke

  • 权限授予:
grant <权限列表>
on <关系名或视图名>
to <用户/角色列表>
  • 权限收回:
revoke <权限列表>
on <关系名或视图名>
to <用户/角色列表>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xT8Inc5z-1650206656999)(pic\image-20220417223712880.png)]
用户名public指代所有用户,包括未来用户。对public授权即对所有用户授权。
默认情况下被授予权限的用户不能再对其他用户授予权限。但在授权时可以指定权限接受者进一步授予其他用户权限。
SQL可以对一个关系或者关系的属性授予权利,但不能对关系中的指定元组进行授权。

4.6.2 角色 role

在数据库中创建角色集,可以给角色授权,而每个数据库的用户被授予了一组角色。

角色可以授予用户,也可以授予其他的角色。(底层角色的权限被上层同样拥有)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0e5ZTfxc-1650206657000)(pic\image-20220417224335621.png)]
性授予权利,但不能对关系中的指定元组进行授权。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值