SQL中null值表示收录,使用有什么要注意的
Admin 2022-09-29 群英技术资讯 790 次浏览
在这篇文章中,我们来学习一下“SQL中null值表示收录,使用有什么要注意的”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。SQL 中,NULL 用于表示缺失的值。数据表中的 NULL 值表示该值所处的字段为空。
具有NULL值的字段是没有值的字段。
如果表中的字段是可选的,则可以插入新记录或更新记录而不向该字段添加值。然后,该字段将被保存为NULL值。
值为 NULL 的字段没有值。尤其要明白的是,NULL 值与 0 或者包含空白(spaces)的字段是不同的。
注意:理解NULL值与零值或包含空格的字段不同是非常重要的。具有NULL值的字段是在记录创建期间留空的字段!
使用比较运算符(例如=,<或<>)来测试NULL值是不可行的。
我们将不得不使用IS NULL和IS NOT NULL运算符。
SELECT column_names
FROM table_name
WHERE column_name IS NULL;
SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;
假设我们有以下的“人员”表:
| ID | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Doe | John | 542 W. 27th Street | New York |
| 2 | Bloggs | Joe | London | |
| 3 | Roe | Jane | New York | |
| 4 | Smith | John | 110 Bishopsgate | London |
假设“人员”表中的“Address”列是可选的。如果插入的记录没有“Address”值,则“Address”列将以空值保存。
以下SQL语句使用IS NULL运算符来列出所有没有地址的人员:
SELECT LastName, FirstName, Address FROM Persons
WHERE Address IS NULL;
结果集将如下所示:
| LastName | FirstName | Address |
|---|---|---|
| Bloggs | Joe | |
| Roe | Jane |
提示:始终使用IS NULL来查找空值。
以下SQL语句使用IS NOT NULL运算符来列出所有具有地址的人员:
SELECT LastName, FirstName, Address FROM Persons
WHERE Address IS NOT NULL;
结果集将如下所示:
| LastName | FirstName | Address |
|---|---|---|
| Doe | John | 542 W. 27th Street |
| Smith | John | 110 Bishopsgate |
创建表的时候,NULL 的基本语法如下:
SQL> CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25) ,
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
这里,NOT NULL表示对于给定列,必须按照其数据类型明确赋值。有两列并没有使用 NOT NULL 来限定,也就是说这些列可以为 NULL。
值为 NULL 的字段是在记录创建的过程中留空的字段。
NULL 值会给选取数据带来麻烦。不过,因为 NULL 和其他任何值作比较,其结果总是未知的,所以含有 NULL 的记录不会包含在最终结果里面。
必须使用 IS NULL 或者 IS NOT NULL 来检测某个字段是否为 NULL。
考虑下面的 CUSTOMERS 数据表,里面包含的记录如下所示:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | |
| 7 | Muffy | 24 | Indore | |
+----+----------+-----+-----------+----------+
下面是 IS NOT NULL 运算符的用法:
SQL> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
WHERE SALARY IS NOT NULL;
上面语句的运行结果如下:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
+----+----------+-----+-----------+----------+
下面是 IS NULL 运算符的用法:
SQL> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
WHERE SALARY IS NULL;
其运行结果如下:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 6 | Komal | 22 | MP | |
| 7 | Muffy | 24 | Indore | |
+----+----------+-----+-----------+----------+
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
为我们的应用程序和工具提供支持,专门用于数据操作使用的服务器被称为数据库服务器。数据库服务器是高性能计算机,用于为用户和设备网络存储和管理存储在服务器上的数据。术语数据库服务器、数据库管理系统(DBMS)和关系DBMS(RDBMS)可以互换使用,但RDMBS是最常实施的数据库管理类型。
这篇文章主要介绍了解决sql server保存对象字符串转换成uniqueidentifier失败的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这篇文章介绍了SQL Server的全文搜索功能,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
SqlDateTime溢出是什么原因?很多朋友对于SqlDateTime溢出情况不知怎样解决,首先要解决这个问题,我们要知道SqlDateTime溢出的原因,下面小编就给大家分享一下SqlDateTime溢出出现的情况原因,以及解决方法,有需要的朋友就接下往下看吧。
SQL REPLACE()字符串替换函数怎么实现?一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008