Oracle非空约束

一 约束的作用

1、定义规则
2、确保完整性
 
二 非空约束
1、在创建表时设置非空约束
CREATE TABLE table_name(
column_name datatype NOT NULL,...
);
  1. SQL> create table userinf_1
  2. 2(id number(6,0),
  3. 3 username varchar2(20)notnull,
  4. 4 userpwd varchar2(20)notnull);
  5. 表已创建。
  6. SQL> desc userinf_1
  7. 名称是否为空?类型
  8. -----------------------------------------------------------------------------
  9. ID NUMBER(6)
  10. USERNAME NOT NULL VARCHAR2(20)
  11. USERPWD NOT NULL VARCHAR2(20)
  12. SQL> insert into userinf_1(id) values(1);
  13. insert into userinf_1(id) values(1)
  14. *
  15. 1行出现错误:
  16. ORA-01400:无法将 NULL 插入("SYSTEM"."USERINF_1"."USERNAME")
2、在修改表时添加非空约束
ALTER TABLE table_name
MODIFY column_name datatype NOT NULL;
  1. SQL> alter table userinfo
  2. 2 modify username varchar2(20)notnull;
  3. alter table userinfo
  4. *
  5. 1行出现错误:
  6. ORA-02296:无法启用(SYSTEM.)-找到空值
  7. SQL>deletefrom userinfo;
  8. 已删除3行。
  9. SQL> alter table userinfo
  10. 2 modify username varchar2(20)notnull;
  11. 表已更改。
  12. SQL> desc userinfo
  13. 名称是否为空?类型
  14. -----------------------------------------------------------------------------
  15. ID NUMBER(6)
  16. USERNAME NOT NULL VARCHAR2(20)
  17. USERPWD VARCHAR2(20)
  18. EMAIL VARCHAR2(30)
  19. REGDATE DATE
3、在修改表时去除非空约束
ALTER TABLE table_name
MODIFY column_name datatype  NULL;
  1. SQL> alter table userinfo
  2. 2 modify username varchar2(20)null;
  3. 表已更改。
  4. SQL> desc userinfo
  5. 名称是否为空?类型
  6. -----------------------------------------------------------------------------
  7. ID NUMBER(6)
  8. USERNAME VARCHAR2(20)
  9. USERPWD VARCHAR2(20)
  10. EMAIL VARCHAR2(30)
  11. REGDATE DATE
 

猜你喜欢

转载自cakin24.iteye.com/blog/2388601