🌌关系数据库标准语言SQL之数据更新
🌍 数据更新
语句格式
DELETE
FROM <表名>
[WHERE <条件>];功能:删除指定表中满足WHERE子句条件的元组
WHERE子句
- 指定要删除的元组
- 缺省表示要删除表中的全部元组,表的定义仍在字典中
三种删除方式
- 删除某一个元组的值
- 删除多个元组的值
- 带子查询的删除语句
【1】 删除学号为201215128的学生记录。
DELETE
FROM Student
WHERE Sno= 201215128 ';
【1】删除所有的学生选课记录。
DELETE
FROM SC;
【1】删除计算机科学系所有学生的选课记录。
DELETE
FROM SC
WHERE Sno IN
(SELETE Sno
FROM Student
WHERE Sdept= 'CS') ;
🌍空值的处理
空值就是“不知道”或“不存在”或“无意义”的值。
一般有以下几种情况:
- 该属性应该有一个值,但目前不知道它的具体值
- 该属性不应该有值
- 由于某种原因不便于填写
属性定义(或者域定义)中
- 有NOT NULL约束条件的不能取空值
- 加了UNIQUE限制的属性不能取空值
- 码属性不能取空值
- 空值与另一个值(包括另一个空值)的算术运算的结果为空值
- 空值与另一个值(包括另一个空值)的比较运算的结果为UNKNOWN。
- 有UNKNOWN后,传统二值(TRUE,FALSE)逻辑就扩展成了三值逻辑
【1】向SC表中插入一个元组,学生号是”201215126”,课程号是”1”,成绩为空。
INSERT INTO SC(Sno,Cno,Grade)
VALUES('201215126 ','1',NULL); /*该学生还没有考试成绩,取空值*/
或
INSERT INTO SC(Sno,Cno)
VALUES(' 201215126 ','1'); /*没有赋值的属性,其值为空值*/
【1】将Student表中学生号为”201215200”的学生所属的系改为空值。
UPDATE Student
SET Sdept = NULL
WHERE Sno='201215200';
判断一个属性的值是否为空值,用IS NULL或IS NOT NULL来表示。
【1】从Student表中找出漏填了数据的学生信息
SELECT *
FROM Student
WHERE Sname IS NULL OR Ssex IS NULL OR Sage IS NULL OR Sdept IS NULL;
【1】找出选修1号课程的不及格的学生。
SELECT Sno
FROM SC
WHERE Grade < 60 AND Cno='1';
查询结果不包括缺考的学生,因为他们的Grade值为
null。
【1】选出选修1号课程的不及格的学生以及缺考的学生。
SELECT Sno
FROM SC
WHERE Grade < 60 AND Cno='1'
UNION
SELECT Sno
FROM SC
WHERE Grade IS NULL AND Cno='1'
或者
SELECT Sno
FROM SC
WHERE Cno='1' AND (Grade<60 OR Grade IS NULL);
📝总结
数据库SQL Server领域就像一片未被勘探的信息大海,引领你勇敢踏入数据科学的神秘领域。这是一场独特的学习冒险,从基本概念到算法实现,逐步揭示更深层次的模式分析、匹配算法和智能模式识别的奥秘。