KHÔNG phải là NULL trong MySQL?

Bản tóm tắt. trong hướng dẫn này, bạn sẽ học cách xác định ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 cho cột, thêm ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 vào cột hiện có và xóa ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 khỏi cột

Giới thiệu về ràng buộc MySQL CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE ); Code language: SQL (Structured Query Language) (sql)2

Ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 là một ràng buộc cột để đảm bảo các giá trị được lưu trữ trong một cột không phải là

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
7

Cú pháp xác định ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 như sau

column_name data_type NOT NULL;

Code language: SQL (Structured Query Language) (sql)

Một cột chỉ có thể chứa một ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 xác định quy tắc rằng cột không được chứa bất kỳ giá trị

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
0 nào. Nói cách khác, nếu bạn cập nhật hoặc chèn

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
0 vào cột

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2, MySQL sẽ báo lỗi

Câu lệnh

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
3 sau đây tạo bảng

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
4

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)

Trong bảng

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
4, chúng tôi xác định rõ ràng các cột

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
6 và

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
7 với ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2. Cột

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
9 có ràng buộc

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
0, do đó, nó ngầm định bao gồm ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2

Cột

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
2 có thể có giá trị

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
0, giả sử rằng khi bạn tạo một nhiệm vụ mới, bạn có thể không biết khi nào nhiệm vụ có thể hoàn thành

Đó là một cách thực hành tốt để có ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 trong mỗi cột của bảng trừ khi bạn có lý do chính đáng để không làm như vậy

Nói chung, giá trị

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
0 làm cho các truy vấn của bạn phức tạp hơn vì bạn phải sử dụng các hàm như

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
6,

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
7 và

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
8 để xử lý

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
0

Thêm ràng buộc CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE ); Code language: SQL (Structured Query Language) (sql)2 vào cột hiện có

Thông thường, bạn thêm các ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 vào các cột khi tạo bảng. Đôi khi, bạn muốn thêm ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 vào cột có thể NULL của bảng hiện có. Trong trường hợp này, bạn sử dụng các bước sau

  1. Kiểm tra các giá trị hiện tại của cột nếu có bất kỳ

    INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

    Code language: SQL (Structured Query Language) (sql)
    0
  2. Cập nhật

    INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

    Code language: SQL (Structured Query Language) (sql)
    0 thành non-

    INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

    Code language: SQL (Structured Query Language) (sql)
    0 nếu tồn tại

    UPDATE tasks SET end_date = start_date + 7 WHERE end_date IS NULL;

    Code language: SQL (Structured Query Language) (sql)
    6
  3. Sửa đổi cột với ràng buộc

    CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

    Code language: SQL (Structured Query Language) (sql)
    2

Xem xét ví dụ sau

Câu lệnh sau đây chèn một số hàng vào bảng

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
4 để minh họa

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)

Giả sử bạn muốn buộc người dùng đưa ra ngày kết thúc ước tính khi tạo tác vụ mới. Để thực hiện quy tắc này, bạn thêm ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 vào cột

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
2 của bảng

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
4

Trước tiên, hãy sử dụng toán tử

SELECT * FROM tasks;

Code language: SQL (Structured Query Language) (sql)
2 để tìm các hàng có

UPDATE tasks SET end_date = start_date + 7 WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
6 trong cột

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
2

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
KHÔNG phải là NULL trong MySQL?
KHÔNG phải là NULL trong MySQL?

Truy vấn đã trả về một hàng có

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
0 trong cột

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
2

Thứ hai, cập nhật các giá trị

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
0 thành các giá trị khác null. Trong trường hợp này, bạn có thể tạo ra một quy tắc rằng nếu

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
2 là

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
0, thì ngày kết thúc là một tuần sau ngày bắt đầu

UPDATE tasks SET end_date = start_date + 7 WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)

Truy vấn này xác minh bản cập nhật

SELECT * FROM tasks;

Code language: SQL (Structured Query Language) (sql)
KHÔNG phải là NULL trong MySQL?
KHÔNG phải là NULL trong MySQL?

Thứ ba, thêm ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 vào cột

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
2 bằng cách sử dụng câu lệnh

ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;

Code language: SQL (Structured Query Language) (sql)
2 sau đây.

ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;

Code language: SQL (Structured Query Language) (sql)

Trong trường hợp này, tên của cột cũ và cột mới giống nhau ngoại trừ cột phải có ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2

ALTER TABLE tasks CHANGE end_date end_date DATE NOT NULL;

Code language: SQL (Structured Query Language) (sql)

Hãy xác minh sự thay đổi bằng cách sử dụng câu lệnh

ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;

Code language: SQL (Structured Query Language) (sql)
4

DESCRIBE tasks;

Code language: SQL (Structured Query Language) (sql)
KHÔNG phải là NULL trong MySQL?
KHÔNG phải là NULL trong MySQL?

Như bạn thấy, ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 đã được thêm vào cột

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
2 thành công.

Thả một ràng buộc CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE ); Code language: SQL (Structured Query Language) (sql)2

Để loại bỏ ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 cho một cột, bạn sử dụng câu lệnh

ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;

Code language: SQL (Structured Query Language) (sql)
9

ALTER TABLE table_name MODIFY column_name column_definition;

Code language: SQL (Structured Query Language) (sql)

Lưu ý rằng định nghĩa cột (column_definition) phải trình bày lại định nghĩa cột ban đầu mà không có ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2

Ví dụ: câu lệnh sau loại bỏ ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 khỏi cột

SELECT * FROM tasks WHERE end_date IS NULL;

Code language: SQL (Structured Query Language) (sql)
2 trong bảng

INSERT INTO tasks(title ,start_date, end_date) VALUES('Learn MySQL NOT NULL constraint', '2017-02-01','2017-02-02'), ('Check and update NOT NULL constraint to your database', '2017-02-01',NULL);

Code language: SQL (Structured Query Language) (sql)
4

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
0

Để đảm bảo rằng câu lệnh thực sự đã loại bỏ ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2, bạn có thể sử dụng lệnh

ALTER TABLE tasks CHANGE end_date end_date DATE NOT NULL;

Code language: SQL (Structured Query Language) (sql)
5 để xem toàn bộ định nghĩa cột

KHÔNG phải là NULL trong MySQL?
KHÔNG phải là NULL trong MySQL?

Lưu ý rằng câu lệnh

ALTER TABLE table_name CHANGE old_column_name new_column_name column_definition;

Code language: SQL (Structured Query Language) (sql)
4 cũng thực hiện thủ thuật

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
1

KHÔNG phải là NULL trong MySQL?
KHÔNG phải là NULL trong MySQL?

Trong hướng dẫn này, bạn đã học cách xác định ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 cho cột, thêm ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 vào cột và xóa ràng buộc

CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, start_date DATE NOT NULL, end_date DATE );

Code language: SQL (Structured Query Language) (sql)
2 khỏi cột

KHÔNG NULL kiểm tra MySQL?

Điều kiện MySQL IS NOT NULL được dùng để kiểm tra giá trị NOT NULL trong biểu thức . Nó được sử dụng với các câu lệnh SELECT, INSERT, UPDATE và DELETE. cú pháp. biểu thức KHÔNG NULL.

Là NULL và không phải là null trong MySQL?

“IS NULL” là từ khóa thực hiện phép so sánh Boolean. Nó trả về true nếu giá trị được cung cấp là NULL và sai nếu giá trị được cung cấp không phải là NULL. “NOT NULL” là từ khóa thực hiện phép so sánh Boolean. Nó trả về true nếu giá trị được cung cấp không phải là NULL và sai nếu giá trị được cung cấp là null

KHÔNG PHẢI LÀ NULL hoặc. = NULL SQL?

Điều kiện IS NOT NULL được sử dụng trong SQL để kiểm tra giá trị không phải NULL . Nó trả về TRUE nếu tìm thấy giá trị không NULL, ngược lại nó trả về FALSE. Nó có thể được sử dụng trong câu lệnh SELECT, INSERT, UPDATE hoặc DELETE.

KHÔNG PHẢI LÀ NULL hoặc. = KHÔNG?

Điều kiện IS NULL được thỏa mãn nếu cột chứa giá trị null hoặc nếu biểu thức không thể được đánh giá vì nó chứa một hoặc nhiều giá trị null. Nếu bạn sử dụng toán tử IS NOT NULL, thì điều kiện được thỏa mãn khi toán hạng là giá trị cột không phải là null hoặc một biểu thức không có giá trị là null.