W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
SQL 中,NULL 用于表示缺失的值。數(shù)據(jù)表中的 NULL 值表示該值所處的字段為空。
具有NULL值的字段是沒有值的字段。
如果表中的字段是可選的,則可以插入新記錄或更新記錄而不向該字段添加值。然后,該字段將被保存為NULL值。
值為 NULL 的字段沒有值。尤其要明白的是,NULL 值與 0 或者包含空白(spaces)的字段是不同的。
注意:理解NULL值與零值或包含空格的字段不同是非常重要的。具有NULL值的字段是在記錄創(chuàng)建期間留空的字段!
使用比較運(yùn)算符(例如=,<或<>)來測試NULL值是不可行的。
我們將不得不使用IS NULL和IS NOT NULL運(yùn)算符。
SELECT column_names
FROM table_name
WHERE column_name IS NULL;
SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;
假設(shè)我們有以下的“人員”表:
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 |
假設(shè)“人員”表中的“Address”列是可選的。如果插入的記錄沒有“Address”值,則“Address”列將以空值保存。
以下SQL語句使用IS NULL運(yùn)算符來列出所有沒有地址的人員:
SELECT LastName, FirstName, Address FROM Persons
WHERE Address IS NULL;
結(jié)果集將如下所示:
LastName | FirstName | Address |
---|---|---|
Bloggs | Joe | |
Roe | Jane |
提示:始終使用IS NULL來查找空值。
以下SQL語句使用IS NOT NULL運(yùn)算符來列出所有具有地址的人員:
SELECT LastName, FirstName, Address FROM Persons
WHERE Address IS NOT NULL;
結(jié)果集將如下所示:
LastName | FirstName | Address |
---|---|---|
Doe | John | 542 W. 27th Street |
Smith | John | 110 Bishopsgate |
創(chuàng)建表的時(shí)候,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表示對(duì)于給定列,必須按照其數(shù)據(jù)類型明確賦值。有兩列并沒有使用 NOT NULL 來限定,也就是說這些列可以為 NULL。
值為 NULL 的字段是在記錄創(chuàng)建的過程中留空的字段。
NULL 值會(huì)給選取數(shù)據(jù)帶來麻煩。不過,因?yàn)?NULL 和其他任何值作比較,其結(jié)果總是未知的,所以含有 NULL 的記錄不會(huì)包含在最終結(jié)果里面。
必須使用 IS NULL 或者 IS NOT NULL 來檢測某個(gè)字段是否為 NULL。
考慮下面的 CUSTOMERS 數(shù)據(jù)表,里面包含的記錄如下所示:
+----+----------+-----+-----------+----------+
| 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 運(yùn)算符的用法:
SQL> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
WHERE SALARY IS NOT NULL;
上面語句的運(yùn)行結(jié)果如下:
+----+----------+-----+-----------+----------+
| 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 運(yùn)算符的用法:
SQL> SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
WHERE SALARY IS NULL;
其運(yùn)行結(jié)果如下:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 6 | Komal | 22 | MP | |
| 7 | Muffy | 24 | Indore | |
+----+----------+-----+-----------+----------+
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: