Oracle中的Null值解析
有人总结了数据库中Null值的概念,比较精炼,摘录如下:
Null是数据库中特有的数据类型,当一条记录的某个列为Null,则表示这个列的值是未知的、是不确定的。既然是未知的,就有无数种的可能性。因此,Null并不是一个确定的值。
这是Null的由来、也是Null的基础,所有和Null相关的操作的结果都可以从Null的概念推导出来。
判断一个字段是否为Null, 应该用IS Null或IS NOT Null,而不能用‘=’。对Null的判断只能定性,既是不是Null(IS Null/IS NOT Null),而不能定值。简单的说,由于Null存在着无数的可能,因此两个Null不是相等的关系,同样也不能说两个Null就不相等,或者比较两个 Null的大小,这些操作都是没有意义,得不到一个确切的答案的。因此,对Null的=、!=、>、<、>=、<=等操作的结果 都是未知的,也就算说,这些操作的结果仍然是Null。
同理,对Null进行+、-、*、/等操作的结果也是未知的,所以也是Null。
所以,很多时候会这样总结Null,除了IS Null、IS NOT Null以外,对Null的任何操作的结果还是Null。
Oracle 中的Null值和SQL Server 中的差不多,但是有个明显的区别,在Oracle中空字符串(‘’)被视作Null值。ORACLE允许任何一种数据类型的字段为Null,除了以下两种情况:
1. 主键字段(primary key);
2. 定义时已经加了NOT Null限制条件的字段
说了这么多,我们来看一些例子。
1. Null 比较
SQL> select 1 from dual where Null=Null;
-------------------------------------------------------------------------------
没有查到记录
SQL> select 1 from dual where Null='';
-------------------------------------------------------------------------------
没有查到记录
SQL>select 1 from dual where ''='';
-------------------------------------------------------------------------------
没有查到记录
SQL> select 1 from dual where Null is Null;
-------------------------------------------------------------------------------
1
SQL>se
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。
创建序列需要CREATE SEQUENCE系统权限。序列的创建语法如下:
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[ST ......
今天在网上乱逛,看到一篇不错的文章,关于ORACLE密码文件的,理论学习+个人实践,呵呵,复制过来,方便以后学习。
===============================================================================
理论部分
Oracle关系数据库系统以其卓越的性能获得了广泛的应用,而保证数据库安全性是数据库管理工作的重要内容。本 ......
1. 创建视图:
CREATE OR REPLACE VIEW SM_V_UNIT_AUTH AS
SELECT T2.UNIT_ID,
T2.SUPER_UNIT_ID,
T1.AUTH_ID,
T1.AUTH_NAME,
T1.A ......
一。查看oracle数据库是否为归档模式:
1.select name,log_mode from v$database;
NAME LOG_MODE
------------------ ------------------------
QUERY NOARCHIVELO ......