空值处理

  • ​​空值处理​​
  • ​​数据更新​​
  • ​​视图​​

空值处理

什么是空值?

  • 空值是一个很特殊的值,含有不确定性。对关系运算带来特殊的问题,需要做特殊的处理。
  • 空值的产生有其实际需求

判断空值:判断一个属性的值是否为空值,

  • 用IS NULL或IS NOT NULL来表示。
select * from table where A is null or B is not null;

约束条件:属性定义(或者域定义)中

  • 有NOT NULL约束条件的不能取空值
  • 加了UNIQUE限制的属性不能取空值
  • 码属性不能取空值

空值运算

  • 空值与另一个值(包括另一个空值)的算术运算的结果为空值
  • 空值与另一个值(包括另一个空值)的比较运算的结果为UNKNOWN。
  • 有UNKNOWN后,传统二值(TRUE,FALSE)逻辑就扩展成了三值逻辑

数据更新

插入数据

insert into table(...) values(...);

INTO子句

  • 指定要插入数据的表名及属性列
  • 属性列的顺序可与表定义中的顺序不一致
  • 没有指定属性列:表示要插入的是一条完整的兀组,旦属性列属性与表定义中的顺序一致
  • 指定部分属性列:插入的元组在其余属性列上取空值

修改数据

update table set col = (...) where()

功能:

  • 修改指定表中满足WHERE子句条件的元组
  • SET子句给出<表达式>的值用于取代相应的属性列如果省略
  • WHERE子句,表示要修改表中的所有元组

关系数据库管理系统在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则

  • 实体完整性
  • 主码不允许修改用户定义的完整性
  • NOT NULL约束UNIQUE约束值域约束

删除数据

delete from table where();

视图

视图的特点

  • 虚表,是从一个或几个基本表(或视图)导出的表
  • 只存放视图的定义,不存放视图对应的数据
  • 基表中的数据发生变化,从视图中查询出的数据也随之改变