当前位置: 首页 > news >正文

茂名网站制作维护口碑营销的缺点

茂名网站制作维护,口碑营销的缺点,华为云建网站,东莞网站优化制作数据库系统概论(十四)详细讲解SQL中空值的处理 前言一、什么是空值?二、空值是怎么产生的?1. 插入数据时主动留空2. 更新数据时设置为空3. 外连接查询时自然出现 三、如何判断空值?例子:查“漏填数据的学生…

数据库系统概论(十四)详细讲解SQL中空值的处理

  • 前言
  • 一、什么是空值?
  • 二、空值是怎么产生的?
    • 1. 插入数据时主动留空
    • 2. 更新数据时设置为空
    • 3. 外连接查询时自然出现
  • 三、如何判断空值?
    • 例子:查“漏填数据的学生”
  • 四、空值的约束规则
  • 五、空值的运算规则(重点)
    • 1. 算术运算(+、-、*、/)
    • 2. 比较运算(>、<、=)
    • 3. 逻辑运算(AND、OR、NOT)


前言

  • 在前几期博客中,我们探讨了 SQL 连接查询,单表查询,嵌套查询,集合查询,基于派生表的查询,数据插入,修改与删除技术等知识点。
  • 从本节开始,我们将深入讲解 SQL 中空值的处理的知识点。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的数据库系统概论专栏
https://blog.csdn.net/2402_83322742/category_12911520.html?spm=1001.2014.3001.5482


一、什么是空值?

空值(NULL)不是“0”也不是空字符串,它代表 “不知道”“不存在”或“无意义” 的值。
比如:

  • 学生的“成绩”还没录入(不知道);
  • 男生的“性别”字段填“女”是无意义的,但如果字段不限制,可能填NULL(无意义);
  • 某些字段暂时不想填(不便于填写)。

关键提醒:空值是特殊值,不能直接用 = 判断,得用专门的方法处理!

二、空值是怎么产生的?

1. 插入数据时主动留空

比如,学生选了课但还没考试(成绩未知),插入数据时用 NULL 表示:

-- 成绩和教学班未知,用 NULL 占位
INSERT INTO SC(Sno, Cno, Grade, Semester, Teachingclass)
VALUES('20180006', '81004', NULL, '20211', NULL);-- 省略字段时,未指定的字段自动填 NULL
INSERT INTO SC(Sno, Cno, Semester)
VALUES('20180006', '81004', '20211'); -- Grade 和 Teachingclass 自动为 NULL

2. 更新数据时设置为空

比如,学生转专业后暂时未确定新专业,可将原专业清空:

UPDATE Student SET Smajor = NULL WHERE Sno = '20180006';

3. 外连接查询时自然出现

当查询“所有学生及其选课情况”时,没选课的学生在选课相关字段会显示空值:

-- 左外连接,没选课的学生 Cno 和 Grade 为 NULL
SELECT Student.Sno, Sname, Cno, Grade
FROM Student LEFT OUTER JOIN SC ON Student.Sno = SC.Sno;

结果类似:

SnoSnameCnoGrade
20180006赵明NULLNULL

三、如何判断空值?

不能用 =!=,必须用 IS NULLIS NOT NULL

例子:查“漏填数据的学生”

SELECT * FROM Student
WHERE Sname IS NULL OR Ssex IS NULL OR Smajor IS NULL;
  • 主码(如学号 Sno)不允许为空,否则会报错(实体完整性规则)。

四、空值的约束规则

  1. 非空约束(NOT NULL)
    创建表时指定字段不许为空,比如:

    CREATE TABLE Student (Sno CHAR(8) NOT NULL,  -- 学号不许为空Sname VARCHAR(20) NOT NULL,...
    );
    
  2. 主码字段必须非空
    主键(如学号、课程号)是唯一标识数据的“身份证”,必须填值,否则违反 实体完整性

    • 学生表的 Sno 不能为 NULL;
    • 选课表 SC 的联合主键 (Sno, Cno) 都不能为 NULL。

五、空值的运算规则(重点)

空值参与运算时,结果往往也是“不确定”的,分三类来看:

1. 算术运算(+、-、*、/)

  • 任何值与 NULL 运算,结果都是 NULL。
SELECT 5 + NULL; -- 结果是 NULL(不确定)

2. 比较运算(>、<、=)

  • 任何值与 NULL 比较,结果都是 UNKNOWN(既不是真也不是假)。
SELECT * FROM SC WHERE Grade < 60;  
  • 成绩为 NULL 的学生(缺考)不会被这条语句查到,因为 NULL < 60 是 UNKNOWN。

3. 逻辑运算(AND、OR、NOT)

引入三值逻辑:TRUE(真)、FALSE(假)、UNKNOWN(不确定),规则如下:

运算例子结果
ANDTRUE AND UNKNOWNUNKNOWN
ORFALSE OR UNKNOWNUNKNOWN
NOTNOT UNKNOWNUNKNOWN

实际应用:查询不及格或缺考的学生

-- 方法1:用 UNION 合并两种情况
SELECT Sno FROM SC WHERE Grade < 60 AND Cno = '81001'
UNION
SELECT Sno FROM SC WHERE Grade IS NULL AND Cno = '81001';-- 方法2:用 OR 直接判断
SELECT Sno FROM SC 
WHERE Cno = '81001' AND (Grade < 60 OR Grade IS NULL);

以上就是这篇博客的全部内容,下一篇我们将继续探索更多精彩内容。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的数据库系统概论专栏
https://blog.csdn.net/2402_83322742/category_12911520.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

http://www.cadmedia.cn/news/3149.html

相关文章:

  • 花店网站建设课程设计自媒体平台排名前十
  • 建设跨境电商网站填写电话的广告
  • 苏州网站建设及推广郑州seo推广
  • 微平台推广多少钱百度seo排名优化软件
  • 网站建设用什么系统crm管理系统
  • 专业网专业网站建设杭州seo专员
  • 手表网站uc浏览器关键词排名优化
  • 政府网站建设工作计划冯耀宗seo课程
  • 珠海网站建设 旭洁品牌管理
  • 哪家公司做企业网站网络测试
  • 江阴市网站建设东莞做一个企业网站
  • 一个旅游网站建设点击软件
  • 东莞网站建设市场分析国内搜索网站排名
  • 如何在空白服务器上搭建网站淘宝app官方下载
  • 深圳哪里可以做网站企业百度推广
  • 如何在八戒网便宜做网站百度搜索大数据
  • 中央点名山西疫情谷歌优化排名公司
  • 维度 网站建设杭州正规引流推广公司
  • 供应优惠的小企业网站建设西安seo关键词推广
  • 租服务器空间网站seo系统
  • 铜川网站建设报价河南网站建站推广
  • 实力网站建设企业全网推广
  • 网站地址url是什么自助建站系统模板
  • 网站建设公司 网络服务seo对网络推广的作用是什么?
  • 温州高端网站建设公司关键词网络推广企业
  • 柳州公司网站制作公司广东: 确保科学精准高效推进疫情
  • 制作网站需要什么知识谷歌关键词热度查询
  • 餐饮加盟网网站建设免费网站或软件
  • 汉字域名的网站seo的搜索排名影响因素主要有
  • 上海网站制作工具建网站平台