🚀 个人主页 极客小俊
✍🏻 作者简介:程序猿、设计师、技术分享
🐋 希望大家多多支持, 我们一起学习和进步!
🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注
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
🤗🤗🤗
"👍点赞" "✍️评论" "收藏❤️"
欢迎一起交流学习❤️❤️💛💛💚💚
好玩 好用 好看
的干货教程可以
点击下方关注❤️
微信公众号❤️
说不定有意料之外的收获哦..🤗嘿嘿嘿、嘻嘻嘻🤗!
🌽🍓🍎🍍🍉🍇