数据库期中整理

关于null:

  • 涉及到null的算数表达式,结果为null
  • 测试空值:is null, is not null
  • 涉及null的比较运算,结果为unknown
  • select distinct:null = null , 结果为true
  • where:谓词结果为unknown,当做false处理(不计入结果集)
  • 聚集函数:除count(*)外,所有聚集函数忽略null;若聚集函数输入只有空集,count(*)=0,其他为null
  • 外码属性允许为null,只要没被声明为not null
  • primary key 自动声明为not null
  • unique:该元祖有一属性为null,unique测试可能为真
  • 候选码允许为null

完整性约束:

-    alter table table-name  add 
  • 单个关系上的约束:
    not null
    unique
    check(<谓词>):谓词可以为包括子查询在内的任意谓词

  • 参照完整性

  • 复杂check条件与断言(assertion)
    域约束和参照完整性约束是断言的特殊形式
    SQL不提供"for all x ,P(x)" ==> " not exists X such that not P(X)"

关于冗余:

  • union,intersect,except自动消除冗余
  • 不允许在count(*)中使用distinct

知识点

  • 数据库系统:由一个互相关联的数据集合和一组用以访问这些数据的程序组成

  • 视图层

  • 逻辑层:降低耦合 为上层应用屏蔽了复杂的底层存储细节,即物理数据独立性

  • 物理层

  • 模式:schema——数据库的总体设计

  • not exits (B except A) ==> A包含B

  • 标量子查询:该子查询返回包含单个属性的单个元组

  • 标量子查询可以出现在select,from,where中

  • 参照完整性约束:参照关系的任意元组在特定属性上的取值,必须等于被参照关系在该特定属性上的取值,

  • delete删除元组:delete r where p

  • 可以在select子句中加入标量

  • create assertion check ;

  • 创建索引
    create index studentID_index on student(ID);

 creat domain degree_level varchar(10)
        constraint degree_level_test
        check(value in('Bachelors','Masters','Doctorate'))
  • 三层结构的关系命名机制:目录/模式/关系 视图
  • 授权
grant 权限 on 关系 to 用户[with grant option];
//delete,update,select,insert,all
  • 等值连接不去掉重复属性,自然连接去掉重复属性

数据库期中整理_第1张图片
数据库期中整理_第2张图片数据库期中整理_第3张图片
数据库期中整理_第4张图片

你可能感兴趣的:(数据库)