SQL练习5 空值的处理 数据库系统概论第五版 王珊

文章目录

  • 1空值的处理
      • 1.1空值的产生
      • 1.2空值的判断
      • 1.3空值的约束条件
      • 1.4空值的算术运算.比较运算和逻辑运算

1空值的处理

1.1空值的产生

空值就是不知道,不存在或者无意义的值,因此空值是一个特殊的值,含有不确定性,需要特殊的处理

3.79 向SC表插入一个元组,学号是'201215126',课程号是'1',成绩为空
insert
into SC(Sno,Cno)
values('201215126','1'); -- grade值默认为空insert 
into SC
values('201215126','1',null);

3.80 将student表中学生号为'201215200'的学生所属的系改为空值
update Student
set Sdept=null
where Sno='201215200';

1.2空值的判断

用IS NULL 或 IS NOT NULL来判断

3.81 从Student表中找出漏填了数据的学生信息
select *
from student
where Sname is null or Ssex is null
	or Sage is null or Sdept is null; -- 主键Sno不用判断

1.3空值的约束条件

1.属性定义(或者域定义)中有NOT NULL约束条件
2.加了UNIQUE 限制的属性
3.码属性不能去空值

1.4空值的算术运算.比较运算和逻辑运算

注意:空值与另一个值的算术运算结果为空值,空值与另一个值的比较运算结果为UNKNOWN.有了UNKNOWN后,传统的逻辑运算中二值(true,false)逻辑就扩展成了三值逻辑.,true,false,unknown.

3.82 找出选修1号课程的不及格的学生
select sno
from SC
where grade < 60 and cno='1';
这个结果是参加考试的同学,不包括grade值为null的同学

3.83 找出选修1号课程不及格的学生以及缺考的学生.
select sno
from sc
where grade < 60 and cno='1'
union
select sno 
from sc
where grade = null and cno = '1';select sno
from sc
where cno='1' and (grade < 60 or grade is null);

你可能感兴趣的:(数据系统概论,sql,mysql)