SQL NULL值

SQL NULL值

在SQL中,术语 NULL 用于指定数据库中不存在的数据值。它与空字符串或零值不同,表示值不存在或数据字段的未知值。

有些常见的值为NULL的原因可能包括:

  • 在输入数据时没有提供该值。

  • 该值尚未知。

重要的是要理解,您不能使用=<>等比较运算符与NULL值。这是因为NULL值是未知的,可以表示任何值。相反,您必须使用“IS NULL”或“IS NOT NULL”运算符来检查一个值是否为NULL。

语法

创建表时, 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 值的字段是在记录创建期间被留空的字段。

示例

让我们使用 CREATE 语句在 SQL 数据库中创建一个名为 CUSTOMERS 的表,如下所示的查询语句:

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)
);

让我们使用以下查询将一些值插入到上面创建的表中 –

SQL> INSERT INTO CUSTOMERS (ID, NAME, AGE, ADDRESS, SALARY) VALUES(1, 'Ramesh', '32', 'Ahmedabad', 2000);
INSERT INTO CUSTOMERS (ID, NAME, AGE, ADDRESS, SALARY) VALUES(2, 'Khilan', '25', 'Delhi', 1500);
INSERT INTO CUSTOMERS (ID, NAME, AGE, ADDRESS, SALARY) VALUES(3, 'kaushik', '23', 'Kota', 2000);
INSERT INTO CUSTOMERS (ID, NAME, AGE, ADDRESS, SALARY) VALUES(4, 'Chaitali', '25', 'Mumbai', 6500);
INSERT INTO CUSTOMERS (ID, NAME, AGE, ADDRESS, SALARY) VALUES(5, 'Hardik','27', 'Bhopal', 8500);
INSERT INTO CUSTOMERS (ID, NAME, AGE, ADDRESS, SALARY) VALUES(6, 'Komal', '22', 'MP', NULL);
INSERT INTO CUSTOMERS (ID, NAME, AGE, ADDRESS, SALARY) VALUES(7, 'Muffy', '24', 'Indore', NULL);

要验证表 CUSTOMERS 是否已创建,请使用以下查询 –

SQL> SELECT * FROM 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 查询

现在,让我们尝试使用 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 查询

让我们尝试使用 IS NULL 运算符来检索表中为空的记录-

SQL> SELECT  ID, NAME, AGE, ADDRESS, SALARY
   FROM CUSTOMERS
   WHERE SALARY IS NULL;

输出

上述查询将产生以下结果 –

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  6 | Komal    |  22 | MP        |  NULL    |
|  7 | Muffy    |  24 | Indore    |  NULL    |
+----+----------+-----+-----------+----------+

更新表中的 NULL 值

您可以使用 SQL 中的 UPDATE 语句更新表中存在的 NULL 值。为此,您可以在 WHERE 子句中使用 IS NULL 运算符选择具有 NULL 值的行,然后使用 SET 关键字设置新值。

示例

假设之前已经创建了一个表,并且让我们尝试使用 UPDATE 语句更新表中的 NULL 值,如下所示:

SQL> UPDATE CUSTOMERS SET SALARY = 9000 WHERE SALARY IS NULL;

输出

当您执行以上查询时,输出结果如下:

Commands completed successfully.

验证

让我们尝试使用以下查询来验证表中指定的记录是否已更新:

SQL> SELECT * FROM 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        |  9000.00 |
|  7 | Muffy    |  24 | Indore    |  9000.00 |
+----+----------+-----+-----------+----------+

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程