🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注

NULL 是什么
在SQL Server 2000中,NULL值是一个特殊的存在,它用来表示缺失或未知的数据!
也就是说NULL在我们数据库中, 一般是代表被遗漏的未知数据!
它的作用为是让未知的或不适用的信息值的占位符
那具体什么叫未知、和缺失呢? 接下来我们就来详细的说明一下!
NULL值的含义
NULL值表示某个字段的值是未知或者缺失的,
但是要注意的是这与空字符串("")或零值(0)是不同的,空字符串和零值都是具体的值, 而NULL则表示没有值!
我们在默认情况下,是可以给表的字段存放 NULL 值, 但是这里就要牵扯到两个情况了
-
对于
变长记录, 例如varchar类型,NULL值不占用存储空间, 但对于定长记录, 例如char类型,NULL值会占用一定的存储空间 -
字段中的
NULL值, 我们是无法使用比较运算符来进行过滤NULL 值,比如=, <, 或者 <>, 也就是说NULL值不能与任何其他值(包括它自身)进行直接比较, 例如: 我们不能使用等于(=)或不等于(<>)运算符来检查一个字段的值是否为NULL, 相反需要使用IS NULL或IS NOT NULL运算符。
具体我们下面举例说明!
NULL值的实际应用场景
一般情况下, 当一个表中的某个字段是可选的时, 也就是说可以在不向这个字段添加值的情况下插入录或更新记录某条记录, 那么这时候这个字段可以保存为一个NULL值
举个栗子
一个用户信息表中,如果用户没有提供电话号码,那么电话号码这个字段的值就可以是NULL, 当然前提条件是我们开发的时候,约束上是允许的情况下!
也可以作为一个占位符来使用, 也就是用作未知或不适用的值的占位符
举个栗子
在一个销售记录表中,如果某个订单没有指定销售员,那么销售员字段的值就可以是NULL
那么字段中保存了这种NULL的好处是什么呢? 肯定是有利于我们在后期检索的时候,进行数据的过滤!
假设我们有一个名为Orders的订单表,表结的构如下:
CREATE TABLE Orders (
OrderID INT PRIMARY KEY IDENTITY, //订单ID
CustomerName VARCHAR(50), //客户名称
OrderDate DATETIME, //订单日期
Salesperson VARCHAR(50) //销售员
);
我们打开SQL Server 2000 查询分析器执行一下!
如图

现在,我们插入一些数据到这个表中, 如下:
INSERT INTO Orders (CustomerName, OrderDate, Salesperson) VALUES ('Alice', '2023-10-01', 'John');
INSERT INTO Orders (CustomerName, OrderDate, Salesperson) VALUES ('Aya', '2024-10-17', 'John');
INSERT INTO Orders (CustomerName, OrderDate) VALUES ('Bob', '2023-10-02');
上面我们没有给Salesperson字段提供值,所以默认为NULL
如图

我们可以简单的查看一下
如图

那这样搞一个NULL进去之后,这么来使用呢?
我们平常主要是用它来进行过滤出外面想要的数据信息,但是前面我说过了, NULL是不能使用等于(=)或不等于(<>)运算符来检查一个字段的值是否为NULL,
必须要使用IS NULL或IS NOT NULL运算符!
那么我们下面就来简单的使用一下IS NULL和IS NOT NULL运算符来查询包含NULL值的记录, 不会SQL查询的朋友也没关系,这里大致看一下即可,后面马上回讲到!
比如: 查询没有指定销售员的订单
SELECT * FROM Orders WHERE Salesperson IS NULL
如图

比如: 查询指定了销售员的订单
SELECT * FROM Orders WHERE Salesperson IS NOT NULL;
如图

这里我们的查询分别返回了包含NULL值和不包含NULL值的Salesperson字段的记录, 有助于我们过滤和区别信息!
注意
可能有些朋友不知道, 当NULL值参与运算时,结果通常是NULL 我这里说的运算就是普通的算术运算!
举个栗子
select 100 + null;
如图

同理, 加减乘除运算的结果都是NULL, 在实际开发中要注意一下!
另外有些函数会特殊处理NULL值, 比如ISNULL函数可以用来将NULL值替换为一个指定的值, 具体我们后面详谈!~
今天就暂时说到这里~ 大家886 🤗🤗🤗


"👍点赞" "✍️评论" "收藏❤️"欢迎一起交流学习❤️❤️💛💛💚💚

好玩 好用 好看的干货教程可以点击下方关注❤️微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇



1007

被折叠的 条评论
为什么被折叠?



