东北大学数据库笔记4-Advanced_SQL

1. Date类型

image.png
date是日期类型 表示为yyyy-mm-dd
time是时间类型 表示为hh:mm:ss
举例:
image.png
DiagDate是date类型,DiagTime是time类型
image.pngimage.png
Timestamp就是Date和Time拼起来

时间的用法

image.png
从时间类型中extract得到年/月/日
对字符串cast得到时间类型

2. 用户自定义数据类型

image.png
使用create type定义类型,使用create domain定义domain
domain在type的基础上增加了constraints
域约束是完整性约束的最基本形式。 他们测试插入数据库中的值,并测试查询以确保比较有意义

3. 完整性约束 Integrity Constraints

完整性约束通过确保对数据库的授权更改不会导致数据一致性丢失,来防止对数据库的意外损坏

not null:

image.png
加在数据类型的后面

The check clause

image.png
在末尾加check函数,可以保持某个属性的值域
image.png
子句约束 value_test 是可选的; 用于指示更新违反了哪个约束

4. 参照完整性 Referential Integrity

确保在一个关系中出现的给定属性集的值也出现在另一个关系中的特定属性集
可以将主键和候选键以及外键指定为 SQL create table 语句的一部分
primary key子句列出了构成主键的属性。
unique 子句列出了构成候选键的属性。
foreign key子句列出了组成外键的属性和外键引用的关系的名称。
– 默认情况下,外键引用被引用表的主键属性
银行的例子:
image.pngimage.png
这个关系的模式图:
image.png

5. 断言 assertion

断言是一个谓词,表示我们希望数据库始终满足的条件。
SQL 中的断言采用以下形式image.png
做出断言时,系统会对其有效性进行测试,并在每次可能违反断言的更新时再次对其进行测试
此测试可能会引入大量开销; 因此断言应该非常小心地使用
image.png
这个断言可以通过 not exists实现判断
【不存在一个loan,这个loan不存在一个account金额大于1000】
image.png
相关子查询,每一轮将一个新的branch送进循环,与loan和account连接,判断。

6. 授权 Authorization

image.png
上面是对数据的操作,下面是对关系模式的操作(对列的增删改查等等)
image.png
Index - 允许创建和删除索引。
Resources - 允许创建新关系。
Alteration - 允许添加或删除关系中的属性。
Drop - 允许删除关系。

grant & Privileges in SQL

grant语句用于授予授权
image.png
grant 权限list on 表名 to 用户们
也可以指定public,即所有用户
授予视图特权并不意味着授予基础关系的任何特权。
权限的授予者必须已经拥有指定项目的权限(或者是数据库管理员)
image.png
selet:允许access and query
其他的特权:
image.png

revoke

image.png
revoke车型grant的权限,语法和grant一样
revoke 权限list on 表名 to 用户们
如果相同的权限被不同的被授予者两次授予同一用户,该用户可以在撤销后保留该权限。
注意是不同的授权者,相同的授权者的话只需要撤销一次
依赖于被撤销权限的所有权限也被撤销

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柳_成林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值