SQL - ค่า NULL

SQL NULLคือคำที่ใช้แทนค่าที่ขาดหายไป ค่า NULL ในตารางคือค่าในเขตข้อมูลที่ดูเหมือนจะว่างเปล่า

เขตข้อมูลที่มีค่า 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 คือฟิลด์ที่เว้นว่างไว้ระหว่างการสร้างเรกคอร์ด

ตัวอย่าง

ค่า NULL อาจทำให้เกิดปัญหาเมื่อเลือกข้อมูล อย่างไรก็ตามเนื่องจากเมื่อเปรียบเทียบค่าที่ไม่รู้จักกับค่าอื่น ๆ ผลลัพธ์จะไม่ทราบเสมอและไม่รวมอยู่ในผลลัพธ์ คุณต้องใช้ไฟล์IS NULL หรือ IS NOT NULL ตัวดำเนินการเพื่อตรวจสอบค่า 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 |
|  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    |          |
+----+----------+-----+-----------+----------+