活着的死人 发表于 2015-1-16 22:30:44

MSSQL编程:NULL及DUAL详解

根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。详解
1.NULL利用详解

经常会有人问到,甚么是NULL?望文生义,NULL就是空,ORACLE中和其他的数据库中,含有空值的表的列的长度为零。ORACLE同意任何一种数据范例的字段为空,除以下两种情形:

1、界说该列为主键字段(primarykey);

2、界说该列时已显式的加了NOTNULL的限定前提的字段。

1.1.详细申明:

1、等价于没有任何值、是未知数;

2、NULL与0、空字符串、空格都分歧;

3、对空值做加、减、乘、除等运算操纵,了局仍为空;

4、NULL的处置利用NVL函数;

5、查询、对照时利用关头字用“isnull”和“isnotnull”;

6、空值不克不及被索引,以是查询时有些切合前提的数据大概查不出来,例如在count(*)中,用nvl(列名,0)处置后再查;

7、排序时比其他数据都年夜(索引默许是降序分列,小→年夜),以是NULL值老是排在最初。



1.2.利用办法举例:

SQL>select1fromdualwherenull=null;

没有查到纪录

SQL>select1fromdualwherenull=;

没有查到纪录

SQL>select1fromdualwhere=;

没有查到纪录

SQL>select1fromdualwherenullisnull;

1

---------

1

SQL>select1fromdualwherenvl(null,0)=nvl(null,0);

1

---------

1

--对空值做加、减、乘、除等运算操纵,了局仍为空。

SQL>select1+nullfromdual;

SQL>select1-nullfromdual;

SQL>select1*nullfromdual;

SQL>select1/nullfromdual;

查询到一个纪录.

1.3.设置某些列为空值

updatetable1setcol1=NULLwherecol1isnotnull;

纯熟利用Oracle的空值用法,熟习它的商定,以确保查出的了局OK。

2.Dual伪列

寄义注释:

Dual是Oracle中的一个实践存在的表,任何用户都可读取,经常使用在没有方针表的Select语句块中。

2.1.利用办法:

--检察以后毗连用户

SQL>selectuserfromdual;

USER

------------------------------

SYSTEM

--检察以后日期、工夫

SQL>selectsysdatefromdual;

SYSDATE

----------

18-4月-03

SQL>selectto_char(sysdate,yyyy-mm-ddhh24:mi:ss)fromdual;

TO_CHAR(SYSDATE,YY

-------------------

2003-04-1822:37:56

--看成盘算器用

SQL>select1+2fromdual;

1+2

----------

3

--检察序列值

SQL>createsequenceaaaincrementby1startwith1;

SQL>selectaaa.nextvalfromdual;

NEXTVAL

----------

1

SQL>selectaaa.currvalfromdual;



CURRVAL

----------

1


MyISAMMysql的默认数据库,最为常用。拥有较高的插入,查询速度,但不支持事务

愤怒的大鸟 发表于 2015-1-19 15:54:06

大侠们有推荐的书籍和学习方法写下吧。

只想知道 发表于 2015-1-24 14:01:22

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

海妖 发表于 2015-2-1 16:31:38

不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关

变相怪杰 发表于 2015-2-7 08:49:09

外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。

精灵巫婆 发表于 2015-3-6 20:19:55

相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐

分手快乐 发表于 2015-3-13 08:09:44

以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了

深爱那片海 发表于 2015-3-20 17:16:56

我们学到了什么?思考问题的时候从表的角度来思考问
页: [1]
查看完整版本: MSSQL编程:NULL及DUAL详解