非空约束

在定义数据表的时候,默认情况下所有字段都是允许为空值的,如果需要禁止字段为空,那么就需要在创建表的时候显示指定。指定一个字段为空的方式就是在字段定义后增加NOT NULL,比如下面的SQL语句创建了表T_Person,并且设置FNumber 字段不允许为空:


MYSQL,MSSQLServer,DB2:

CREATE TABLE T_Person (FNumber VARCHAR(20) NOT NULL ,FName VARCHAR(20),FAge INT)

Oracle:

CREATE TABLE T_Person (FNumber VARCHAR2(20) NOT NULL ,FName VARCHAR2(20),FAge NUMBER (10))

创建T_Person表后我们执行下面的SQL语句进行测试:


INSERT INTO T_Person (FNumber, FName, FAge) VALUES ( NULL , "kingchou", 20)

因为在定义T_Person 表的时候设定字段FNumber 不能为空,而这个SQL 语句中将FNumber 字段设置为NULL,所以在数据库中执行此SQL 语句后数据库会报出下面错误信息:

  • 不能将值NULL 插入列"FNumber",表 "demo.dbo.T_Person";列不允许有空值。INSERT 失败。而下面的SQL语句则可以正确的执行:

INSERT INTO T_Person (FNumber, FName, FAge) VALUES ( "1" , "kingchou", 20)

非空约束不仅对通过INSERT语句插入的数据起作用,而且对于使用UPDATE语句进行更新时也起作用。执行下面的SQL语句尝试将刚才插入的那条数据的FNumber 字段更新为NULL:


UPDATE T_Person SET FNumber = NULL

在数据库中执行此SQL语句后数据库会报出下面错误信息:

  • 不能将值NULL 插入列"FNumber",表 "demo.dbo.T_Person";列不允许有空值。UPDATE 失败。

原文地址:https://www.cnblogs.com/yuyu666/p/9823693.html

时间: 2024-08-10 23:47:22

非空约束的相关文章

oracle添加,修改非空约束

NOT NULL约束就是非空约束,经常会在创建表的时候添加非空约束以保证字段必须要输入值 (1)创建表时添加NOT NULL约束 语法: CREATE TABLE 表名( 字段   类型  NOT NULL ........ ); 实例:  CREATE TABLE MANAGERINFO( MANAGERID VARCHAR2(10), LOGINNAME VARCHAR2(10) NOT NULL, PASSWORD VARCHAR2(10) NOT NULL, NAME VARCHAR2(

使用非空约束

非空约束指字段的值不能为空,如果为空则报错 mysql> CREATE TABLE tb_emp6    -> (    -> id INT(11) PRIMARY KEY,    -> name VARCHAR(25) NOT NULL,   # 指定员工的名称不能为空    -> deptId INT(11),    -> salary FLOAT    -> );

Oracle数据库,非空约束、主键约束、外键约束、唯一约束

非空约束:设置列时,可为空默认可为空,去掉对号之后设置数据不可为空: 唯一约束:在键中设置,唯一约束名称.类型Unique.列名:设置应用完成之后,此列数据具有唯一性:即数据不可重复 主键约束:主键列自动具有非空约束和唯一约束,一个表只能有一个主键约束(自动生成索引,提高查询效率)

MYSQL约束 -- not null 非空约束

2.not null 非空约束 用于确保当前列的值不为空:在创建表时,如果不指定是否可以为空,字段默认可以为NULL. -- 这是上一篇默认约束创建的表 CREATE TABLE `test`.`user`( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id', `name` VARCHAR(225) NOT NULL COMMENT '姓名', -- 这里添加了NOT NULL `sex` TINYINT(1) DEFAULT 1 COMMENT

mySQL 约束 (Constraints):一、非空约束 NOT NULL 约束

非空约束 NOT NULL 约束: 强制列不能为 NULL 值,约束强制字段始终包含值.这意味着,如果不向字段添加值,就无法插入新记录或者更新记录. 1.在 "Persons" 表创建时在 Id列.name列创建 not null 约束: create table Persons(id int not NULL,p_name varchar(20) not null, deparment varchar(20),address varchar(20),telNum varchar(20

not null 非空约束

例子:create table tb1(     id int,     name varchar(20) not null); 注意  空字符不等于null #手动,添加非空约束 (必须这个字段,没有NULL值)mysql> alter table tb1    -> modify id int not null; # 取消非空约束mysql> alter table tb1    -> modify id int ; 原文地址:https://www.cnblogs.com/m

非空约束对数据插入的影响

正如“非空约束”表达的意思,如果对一个字段添加了非空约束,那么我们是不能向这个字段中插入NULL值的.T_Debt表的FAmount字段是有非空约束的,如果我们执行下面SQL: INSERT INTO T_Debt (FNumber, FPerson) VALUES ("1", "Jim") 这句SQL中没有为字段FAmount赋值,也就是说FAmount为空值.我们执行这句SQL以后数据库系统会报出类似如下的错误信息: 不能将值NULL 插入列"FAmo

非空约束对数据更新的影响

正如“非空约束”表达的意思,如果对一个字段添加了非空约束,那么我们是不能将这个字段中的值更新为NULL的.T_Debt表的FAmount字段是有非空约束的,如果我们执行下面SQL: UPDATE T_Debt set FAmount = NULLWHERE FPerson="Tom" 这句SQL为FAmount 设置空值.我们执行这句SQL以后数据库系统会报出类似如下的错误信息: 不能将值NULL 插入列"FAmount",表"demo.dbo.T_Deb

MySQL之非空约束(NOT NULL)

定义: MySQL非空约束(NOT NULL)可以通过 CREATE TABLE 或 ALTER TABLE 语句实现.在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空.非空约束(Not Null Constraint)指字段的值不能为空.对于使用了非空约束的字段,如果用户在添加数据时没有指定值,数据库系统就会报错. 设置非空约束: 1.在创建数据表时设置非空约束 语法规则如下: CREATE TABLE <数据表名> <字段名><数据类