SQL NOT NULL学习笔记

在SQL中,NOT NULL是一种约束条件,它用于确保列中的值不为空。这意味着该列中每个行必须包含一个值。如果在填写新行时该列为空,则会向用户显示错误消息。

语法

创建表时,可以使用NOT NULL约束条件来指定某一列不允许为空:

sqlCopy Code
CREATE TABLE table_name ( column1 datatype NOT NULL, column2 datatype, column3 datatype, .... );

或者在alter table语句中添加NOT NULL约束条件:

sqlCopy Code
ALTER TABLE table_name MODIFY column_name datatype NOT NULL;

实例

例如,以下代码创建了一个名为"customers"的表,其中"cust_name"和"cust_address"列都带有NOT NULL约束条件:

sqlCopy Code
CREATE TABLE customers ( cust_id INT PRIMARY KEY, cust_name VARCHAR(50) NOT NULL, cust_address VARCHAR(100) NOT NULL, cust_city VARCHAR(50), cust_state VARCHAR(20), cust_zip CHAR(10), cust_country VARCHAR(50) );

当往该表中插入新记录时,如果"cust_name"或"cust_address"列为空,则会显示错误消息:

sqlCopy Code
INSERT INTO customers (cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country) VALUES (1, 'John Doe', '123 Main St', 'Anytown', 'CA', '12345', 'USA'); INSERT INTO customers (cust_id, cust_name, cust_address, cust_city, cust_state, cust_zip, cust_country) VALUES (2, 'Jane Doe', '', 'Anytown', 'NY', '54321', 'USA'); -- The second INSERT statement will fail because the cust_address column is empty

因此,我们可以使用NOT NULL约束条件来确保数据完整性,从而防止在数据库中插入或更新无效数据。