Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sự khác biệt giữa Null, Zero và Blank trong SQL là gì?

Số không là một giá trị số. Nó là một định nghĩa với các tính chất toán học chính xác. (Bạn có thể tính toán số học trên nó ...)

NULL có nghĩa là không có bất kỳ giá trị nào. Bạn không thể làm gì với nó ngoại trừ kiểm tra nó.

Trống không được xác định rõ. Nó có nghĩa là những thứ khác nhau trong các bối cảnh khác nhau đối với những người khác nhau. Ví dụ:

  • Ai đó có thể có nghĩa là một giá trị chuỗi có độ dài bằng 0:tức là một giá trị không có ký tự nào trong đó ('' ).
  • Ai đó có thể có nghĩa là một giá trị chuỗi có độ dài khác 0 chỉ bao gồm các ký tự không in được (SPACE, TAB, v.v.). Hoặc có thể chỉ bao gồm một ký tự SPACE duy nhất.
  • Trong một số ngữ cảnh (nơi ký tự và chuỗi là các loại khác nhau), ai đó có thể có nghĩa là một giá trị ký tự không in được.
  • Ai đó thậm chí có thể ngụ ý "bất kỳ thứ gì không hiển thị khi bạn in hoặc hiển thị".

Vấn đề là "trống" không có một ý nghĩa nào được xác định rõ ràng. Ít nhất là không phải trong thuật ngữ CNTT tiếng Anh (bản ngữ). Có lẽ tốt nhất là nên tránh nó ... nếu bạn muốn các chuyên gia CNTT khác hiểu ý bạn . (Và nếu ai đó sử dụng thuật ngữ mà ngữ cảnh không rõ ràng, hãy yêu cầu họ nói chính xác ý của họ!)

Chúng tôi không thể nói bất cứ điều gì có ý nghĩa chung về cách ZERO / NULL / BLANK được đại diện, chúng chiếm bao nhiêu bộ nhớ hoặc bất cứ điều gì tương tự. Tất cả những gì chúng ta có thể nói là chúng được thể hiện khác nhau .... và rằng cách biểu diễn thực tế là việc triển khai và phụ thuộc vào ngữ cảnh .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySql, làm cách nào để xuất các chỉ mục từ cơ sở dữ liệu phát triển sang cơ sở dữ liệu sản xuất của tôi?

  2. MySQL đang chuyển đổi các giá trị dấu thời gian của tôi thành 0000-00-00

  3. Tôi có thể tạo chế độ xem với tham số trong MySQL không?

  4. UTF - 8 với JPA và Glassfish 4.0

  5. Không thể chuyển đổi giá trị ngày / giờ của MySQL thành System.DateTime trong VS2010