数据库学习笔记(第四章)

第四章:中级SQL

4.1链接

1.内连接:舍弃不匹配的元组
左外连接:内连接+左边失配的元组(缺少的右边关系属性用null)
右外连接:内连接+右边失配的元组(缺少的左边关系属性用null)
全外连接:内连接 + 左边失配的元组(缺少的右边关系属性用null)+ 右边失配的元组(缺少的左边关系属性用null)

2.①在表名后面加外连接操作符(*)或(+)指定非主体表
②非主体表有一“万能”的虚行,该行全部由空值组成
③虚行可以和主体表中所有不满足连接条件的元组进行连接
④由于虚行各列全部是空值,因此与虚行连接的结果中,来自非主体表的属性值全部是空值

4.2视图
1.创建视图在这里插入图片描述
2.视图的属性名缺省为子查询结果中的属性名,也可以显式指明,在下列情况下,必须指明视图的所有列名:
①某个目标列是聚集函数或者目标列表达式
②多表连接时,选出了几个同名列作为视图的列名
③需要在视图中为某个列启用新的更合适的名字
④目标列是*

3.对于视图:
①视图不会要求分配存储空间,视图中也不会包含实际的数据。
②视图只保存视图定义,视图中的数据是从基表中获取。
③视图中的数据在视图被引用时动态的生成。

4.对视图的更新:
①允许对行列子集视图进行更新
②对其他类型视图的更新不同系统有不同限制
③select子句中的目标列不能包含聚集函数
④select子句中不能使用unique或distinct关键字
⑤不能包括group by子句
⑥不能包括经算术表达式计算出来的列

5.使用视图作为查询对象,尽量减少视图更新

6.物化视图:
物化视图(MATERIALIZED VIEW)即实体化视图,它确实存放有物理数据。物化视图包含定义视图的查询时所选择的基表中的行。
①使用物化视图的目的是为了提高查询性能,是以空间换时间的一种有效手段,更少的物理读/写,更少的cpu时间,更快的响应速度;
②物化视图对应用透明;
③物化视图需要占用存储空间;
④当基表发生变化时,物化视图也应当刷新。
⑤规模较大的报表适合使用物化视图来提高查询性能。

4.3完整性约束
1.主码值不允许空,也不允许出现重复

2.如果关系R2的外部码Fk与关系R1的主码Pk相对应,则R2中的每一个元组的Fk值或者等于R1 中某个元组的Pk 值,或者为空值

3.外码定义方式:
在这里插入图片描述

4.删除基本关系元组:
在这里插入图片描述

5.修改基本关系主码:
在这里插入图片描述

6.对约束的命名、撤消和添加
在这里插入图片描述
在这里插入图片描述

示例
alter table S drop constraint S_PK
alter table SC add constraint SC_CHECK
check(sno in select sno from S)

4.4SQL的数据类型与模式
1.date:日期,包括年(四位)、月和日

time: 时间,包括小时, 分和秒

timestamp : date 和 time 的组合

interval:时间段

Clob (Character Large Object,字符数据的大对象数据类型)将字符大对象 (Character Large Object) 存储为数据库表某一行中的一个列值。
Blob (Binary Large Object二进制数据的大对象数据类型)
BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件
当查询结果是一个大对象时,返回的是指向这个大对象的指针

2.用户定义的类型
在这里插入图片描述

3.域定义(感觉 有点少用)
在这里插入图片描述
4.5授权
1.权限的转授和回收:允许用户把已获得的权限转授给其他用户,也可以把已授给其他用户的权限再回收上来

2.授权命令
在这里插入图片描述

3.在这里插入图片描述
4.回收权限
在这里插入图片描述

5.支持多库的数据库系统中授权对象可以是数据库
在这里插入图片描述

数据库级权限包括:
connect:允许用户在database语句中指定数据库
resource:connect权限+建表、删除表及索引权利
dba:resource权限 + 授予或撤消其他用户的connect、resource、dba权限

END

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值