1.创建具有唯一约束的表Tsec@ora10g> create table t (x varchar2(8),constraint uniq_t unique(x));
Table created.
T表仅包含一列X,在X列上创建了唯一约束。
2.测试唯一约束的有效性
sec@ora10g> insert into t values ('secooler');
1 row created.
sec@ora10g> insert into t values ('secooler');
insert into t values ('secooler')
*
ERROR at line 1:
ORA-00001: unique constraint (SEC.UNIQ_T) violated
可见,当插入重复值“secooler”时提示违反了唯一约束条件。
3.验证是否可以插入空值
尝试两种插入方法。
1)使用“null”插入
sec@ora10g> insert into t values (null);
1 row created.
2)使用“''”插入
sec@ora10g> insert into t values ('');
1 row created.
sec@ora10g> commit;
Commit complete.
结论已经非常明显:具有唯一性约束的列是可以插入空值的!
4.验证插入后的内容
为了方便查看插入的空值,这里使用两种比较巧妙的方法进行体现。
sec@ora10g> select '>>' x '<<' from t;
'>>' X '<<
------------
>>secooler<<
>><<
>><<
sec@ora10g> select nvl(x,'I am NULL value!') from t;
NVL(X,'IAMNULLVA
----------------
secooler
I am NULL value!
I am NULL value!
--转自