So sánh giá trị null trong sql

Giá trị NULL trong SQL là khái niệm được sử dụng để biểu diễn một giá trị bị khuyết thiếu. Một giá trị NULL trong một bảng là một giá trị trong một trường và bị bỏ trống.

Một trường với một giá trị NULL là một trường không có giá trị nào. Nó là thực sự quan trọng để hiểu rằng một giá trị NULL là khác một giá trị 0 [zero value] hoặc một trường mà chứa các dấu cách.

Cú pháp

Cú pháp cơ bản của NULL trong khi tạo một bảng là:

SQL> CREATE TABLE SINHVIEN[ ID INT NOT NULL, TEN VARCHAR [20] NOT NULL, TUOI INT NOT NULL, KHOAHOC CHAR [25] , HOCPHI DECIMAL [18, 2], PRIMARY KEY [ID] ];

Ở đây, ràng buộc NOT NULL xác định rằng cột nên luôn luôn chấp nhận một giá trị tường minh của kiểu dữ liệu đã cho. Có hai cột mà chúng ta đã không sử dụng NOT NULL, nghĩa là những cột này có thể là NULL.

Một trường với một giá trị NULL là đã bị bỏ trống trong khi tạo bản ghi.

Ví dụ

Giá trị NULL có thể tạo các vấn đề trong khi chọn lựa dữ liệu, tuy nhiên, bởi vì khi so sánh với một giá trị không biết với bất kỳ giá trị nào khác, kết quả là luôn luôn chưa biết trước và không được bao trong các kết quả cuối cùng.

Ngôn ngữ SQL, giống như ngôn ngữ Java, có một từ khóa đặc biệt để biểu thị sự vắng mặt của một giá trị - đó là null. Hoặc như nó thường được viết - NULL.

Cách sử dụng `NULL`trong SQL rất giống với cách sử dụng null trong Java. Trong Java, có thể có các đối tượng có trường chứa giá trị null. Trong SQL, có thể có các bảng có hàng chứa giá trị NULL.

Hãy để tôi cố tình thêm một vài sản phẩm không có nhãn hiệu vào bảng sản phẩm của chúng ta. Nếu thương hiệu của sản phẩm không xác định, thì giá trị sẽ là NULL.

Để hiển thị các sản phẩm như vậy, hãy sắp xếp bảng sản phẩm của chúng ta theo id theo thứ tự ngược lại và lấy 10 bản ghi. Yêu cầu sẽ trông như thế này:

SELECT * FROM product
ORDER BY id DESC
LIMIT 10

Chúng tôi nhận được kết quả truy vấn sau:

nhận dạng tên thương hiệu giá đếm 15 đinh tánVÔ GIÁ TRỊ 0,01 1000 14 Đinh ốcVÔ GIÁ TRỊ 0,10 1000 13 Đứng IKEA 100.00 10 12 chậu hoa hoa thông minh 99,00 9 mười một Ghế bành Bosch 44.00 số 8 10 Đĩa Bosch 199.00 10 9 tủ quần áo IKEA 99,00 10 số 8 Đèn LG 15.00 100 7 TV LG 350.00 4 6 Cái kệ Bosch 25.00 114

Vâng, tôi đã thêm đinh tán và ốc vít vào bàn. Họ có giá cả và số lượng, nhưng không có thương hiệu.

5.2 So sánh với NULL

Bạn có nhớ rằng đôi khi bạn đã từng phát điên với Java khi sử dụng null không? Rằng bạn không thể so sánh các biến có thể tham chiếu đến giá trị null thông qua hàm equals[]. Ví dụ:

Product product1 = new Product[];
Product product2 = null;
if [product2.equals[product1] {  //an exception will be raised here
…
}

Bạn sẽ không tin, nhưng trong ngôn ngữ SQL, bạn cũng đang chờ đợi những sắc thái khi làm việc với giá trị NULL. Và nó nghe giống như thế này:không có gì là NULL.

Nếu bạn cố gắng lọc ra tất cả các sản phẩm có thương hiệu là

Product product1 = new Product[];
Product product2 = null;
if [product2.equals[product1] {  //an exception will be raised here
…
}

0:

SELECT * FROM product
WHERE brand = NULL

Bạn sẽ nhận được một bảng trống:

nhận dạng tên thương hiệu giá đếm

Nhưng nếu bạn viết vào truy vấn rằng brand is not equal to NULL, bạn sẽ nhận được kết quả tương tự:

SELECT * FROM product
WHERE brand != NULL

Bạn sẽ lại nhận được một bảng trống:

nhận dạng tên thương hiệu giá đếm

Mọi so sánh/hành động với NULL sẽ trả về NULL:

Sự biểu lộ Kết quả thương hiệu = NULL VÔ GIÁ TRỊ thương hiệu != NULL VÔ GIÁ TRỊ NULL = NULL VÔ GIÁ TRỊ NULL != NULL VÔ GIÁ TRỊ

Đúng,ngay cả khi bạn so sánh NULL với NULL, thì câu trả lời sẽ là NULL.

5.3 LÀ NULL và KHÔNG PHẢI LÀ NULL

Vậy làm cách nào để kiểm tra xem một số trường [hoặc một số cột] có giá trị là NULL? Và đối với điều này, SQL có một biểu thức đặc biệt -

Product product1 = new Product[];
Product product2 = null;
if [product2.equals[product1] {  //an exception will be raised here
…
}

3. Nó trông như thế này.

Nếu bạn muốn kiểm tra xem một cột trong bảng của bạn có khác với NULL, thì bạn cần viết

Product product1 = new Product[];
Product product2 = null;
if [product2.equals[product1] {  //an exception will be raised here
…
}

5:

Hãy viết một truy vấn sẽ chọn tất cả các sản phẩm từ bảng sản phẩm có thương hiệu bằng NULL. Một yêu cầu như vậy sẽ trông như thế này:

SELECT * FROM product
WHERE brand IS NULL

Và chúng tôi nhận được kết quả truy vấn sau:

nhận dạng tên thương hiệu giá đếm 14 Đinh ốcVÔ GIÁ TRỊ 0,10 1000 15 đinh tánVÔ GIÁ TRỊ 0,01 1000

Bây giờ, hãy hiển thị tất cả các sản phẩm có giá dưới $20:

SELECT * FROM product
WHERE price  < 20

Và chúng tôi nhận được kết quả truy vấn sau:

nhận dạng tên thương hiệu giá đếm 2 Cái ghế IKEA 5,00 45 số 8 Đèn LG 15.00 100 14 Đinh ốcVÔ GIÁ TRỊ 0,10 1000 15 đinh tánVÔ GIÁ TRỊ 0,01 1000

Bây giờ chúng tôi xác định rằng giá phải dưới 20 đô la và thương hiệu thì không NULL.

SELECT * FROM product
WHERE price  < 20 AND brand IS NOT NULL

Chúng tôi nhận được kết quả truy vấn sau:

nhận dạng tên thương hiệu giá đếm 2 Cái ghế IKEA 5,00 45 số 8 Đèn LG 15.00 100

Tuyệt vời, hai dòng cuối cùng đã biến mất. Đây là cách nó hoạt động. Một chút bất thường, nhưng vẫn có một logic nhất định trong việc này.

Giá trị NULL trống SQL là gì?

NULL là một giá trị đặc biệt có mặt trong tất cả các loại dữ liệu, từ kiểu số, ngày, chuỗi, đến bit… Nó đại diện cho giá trị “không biết”, hoặc “không tồn tại”. NULL không trùng với số 0 của kiểu số và cũng không trùng với chuỗi trống [”] của kiểu chuỗi.

Giá trị nôn NULL là gì?

Trong SQL, ràng buộc NOT NULL là một ràng buộc dữ liệu được sử dụng để xác định một trường không được chứa giá trị null. Nó có thể được áp dụng cho các cột trong bảng hoặc cho các tham số trong các thủ tục lưu trữ hoặc chức năng.

Giá trị NULL trống MySQL là gì?

NULL là giá trị giữ chỗ cho các trường bảng tùy chọn. MySQL xử lý giá trị NULL khác với các loại dữ liệu khác. Giá trị NULL được xử dụng như là một điều kiện đánh giá false giá trị Boolean.

Toán từ NULL có ý nghĩa gì?

2. Null. Null có nghĩa là giá trị rỗng hoặc giá trị không tồn tại, nó có thể được sử dụng để gán cho một biến như là một đại diện không có giá trị.

Chủ Đề