从我第一次正式的写sql语句到现在,已经超过10年的时间了。我写报表,做统计分析和财务对账,我一点点的接触oracle数据库,并尝试深入了解。这条路,一走就是10年,从充满热情,到开始厌倦,我不知道我还能坚持多久,未来的路,谁知道呢?

也许是该抓紧时间,做一点什么了,我不知道该开始写些什么,我从来没有在网上写东西的习惯。
   
先从简单的开始吧,那当然就是SQL,这是我SQL系列的第一篇,希望我能够坚持。

在Oracle数据库中,如果一个表中的列没有值的话,我们可以说是空值,比如IT员工,假如没有提成的话,提成列就应该是空。对于空值,Oracle数据库使用null来表示,空即没有的意思。null不是空格,空格是字符类型,表示一个字符,null也不是0,0是数字类型,是一个数值。在通常的B*Tree索引中,null值是不存储的,所以如果where的谓语是column=null的话,将不能使用到索引。

我们来看下面的一个小例子,为了举例,我建了一张测试表DEMO

scott@DB01>
create table demo as select empno,ename,sal,comm,mgr,deptno from
emp;

Table created.

scott@DB01>
select * from demo;

EMPNO ENAME            
SAL      
COMM       
MGR    
DEPTNO

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

7369 SMITH            
800                 
7902        
20

7499 ALLEN           
1600       
300      
7698        
30

7521 WARD            
1250       
500      
7698        
30

7566 JONES           
2975                 
7839        
20

7654 MARTIN          
1250      
1400      
7698        
30

7698 BLAKE           
2850                 
7839        
30

7782 CLARK           
2450             
    7839        
10

7788 SCOTT           
3000                 
7566        
20

7839 KING            
5000                              
10

7844 TURNER          
1500         
0      
7698        
30

7876 ADAMS           
1100     
            7788        
20

7900 JAMES            
950                 
7698        
30

7902 FORD            
3000                 
7566        
20

7934 MILLER          
1300                 
7782        
10

14 rows selected.

与Sql
Server数据库不同的是,在Oracle数据库当中,null也不等于null,如果我们要通过条件筛选找到具有空值的记录,需要使用is(not)
null
方法。

scott@DB01>
select empno,ename,sal from demo where comm=null;

no rows selected

这里我们留下一个小的疑问,where后面的表达式,返回的是null(空)还是false(假)?

scott@DB01>
select empno,ename,sal from demo where comm is null;

EMPNO ENAME            
SAL

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

7369 SMITH            
800

7566 JONES           
2975

7698 BLAKE           
2850

7782 CLARK           
2450

7788 SCOTT           
3000

7839 KING            
5000

7876 ADAMS           
1100

7900 JAMES            
950

7902 FORD            
3000

7934 MILLER          
1300

10 rows selected.

其实在Oracle数据库中,我们一般这样来定义,在一个表达式当中,如果有null值的存在,将导致整个表达式为空。当然这也不是绝对的正确,对于Oracle来说,条件判定表达式就是例外。

下面的语句是由于null从而导致整个表达式为空的例子,当然就这个问题而言,很好解决,我们可以使用NVL函数.

scott@DB01>
select empno,ename,sal,sal*12+comm from demo;

EMPNO ENAME            
SAL SAL*12+COMM

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

7369 SMITH            
800

7499 ALLEN           
1600      
19500

7521 WARD            
1250      
15500

7566 JONES           
2975

7654 MARTIN          
1250      
16400

7698 BLAKE           
2850

7782 CLARK           
2450

7788 SCOTT           
3000

7839 KING            
5000

7844 TURNER          
1500      
18000

7876 ADAMS           
1100

7900 JAMES            
950

7902 FORD            
3000

7934 MILLER          
1300

14 rows selected.

正确写法,使用了NVL函数

scott@DB01>
select empno,ename,sal,sal*12+nvl(comm,0)  tsal from
demo;

EMPNO ENAME            
SAL      
TSAL

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

7369 SMITH            
800      
9600

7499 ALLEN           
1600     
19500

7521 WARD      
      1250     
15500

7566 JONES           
2975     
35700

7654 MARTIN          
1250     
16400

7698 BLAKE           
2850     
34200

7782 CLARK           
2450     
29400

7788 SCOTT           
3000     
36000

7839 KING            
5000     
60000

7844 TURNER          
1500     
18000

7876 ADAMS           
1100     
13200

7900 JAMES            
950     
11400

7902 FORD            
3000     
36000

7934 MILLER          
1300     
15600

14 rows selected.

我们再来看下面的非常简单的子查询的例子

scott@DB01>
select empno,ename from demo where empno not in (select mgr from
demo);

no rows selected

如果我们简单来理解字面的意思的话,上面的Sql语句要实现的是:查找DEMO表中纯粹的员工,也就是干活的,呵呵,但是上边的语句并没有得到正确的结果。为什么呢?你是否可以这样来理解,not in
相当于
!=  and

!=  and

!=
这样的结构呢?

通过下面的查询,我们发现7839的mgr为空,也就是说,在我们上边的子查询中,有一个值为空

scott@DB01>
select empno,ename,mgr from demo;

EMPNO ENAME         
MGR

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

7369 SMITH           
7902

7499 ALLEN           
7698

7521 WARD  
          7698

7566 JONES           
7839

7654 MARTIN          
7698

7698 BLAKE           
7839

7782 CLARK           
7839

7788 SCOTT           
7566

7839 KING

7844 TURNER          
7698

7876 ADAMS          
 7788

7900 JAMES           
7698

7902 FORD            
7566

7934 MILLER          
7782

14 rows selected.

select empno,ename from demo
where empno not in (select mgr from demo);这个SQL的条件部分可以转换为empno!=7902 and empno!=7698 and ......and empno
!=null(引号部分做了省略),对于empno!=null
返回的值还是null,对于这样的逻辑表达式来说,true and null的结果是null,从而导致整个表达式为空,在这里null作为假条件来处理,所以我们看不到查询结果也就可以理解了。

再来看下面的语句,我们把NOT
IN修改成IN
,却发现是可以得到正确的结果的。不过,我们应该明白,要实现的目的完全相反了,我们找到的是经理,哪怕他手下只有一个小兵。

scott@DB01>
select empno,ename from demo where empno  in (select mgr from
demo);

EMPNO ENAME

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

7902 FORD

7698 BLAKE

7839 KING

7566 JONES

7788 SCOTT

7782 CLARK

6 rows selected.

为什么呢?select empno,ename
from demo where empno  in (select mgr from
demo);这个SQL我们可以把条件部分转换为empno = 7902 or empno=7698 or ......or
empno=null,对于empno=null
返回的值还是null,但是对于这样的逻辑表达式来说,true or null的结果是true,所以我们可以看到查询的结果。

那对于我们想要找到纯粹的员工,应该怎样来写呢?很简单,null值对于本例的结果没有影响,通过条件过滤掉就可以了。语句如下

scott@DB01>
select empno,ename from demo

2>where empno
not in (select mgr from demo where mgr is not null);

EMPNO ENAME

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

7369 SMITH

7499 ALLEN

7521 WARD

7654 MARTIN

7844 TURNER

7876 ADAMS

7900 JAMES

7934 MILLER

8 rows selected

空值在排序的时候总是出现在大值的一端,但有时候也会带来一些麻烦

scott@DB01> select * from demo;

EMPNO
ENAME            
SAL      
COMM    
DEPTNO
---------- ---------- ---------- ---------- ----------
     
7369
SMITH            
800                   
20
     
7499
ALLEN           
1600       
300        
30
     
7521
WARD            
1250       
500        
30
     
7566
JONES           
2975                   
20
     
7654
MARTIN          
1250      
1400        
30
     
7698
BLAKE           
2850                   
30
     
7782
CLARK           
2450                   
10
     
7788
SCOTT           
3000                   
20
     
7839
KING            
5000                   
10
     
7844
TURNER          
1500         
0        
30
     
7876
ADAMS           
1100                   
20
     
7900
JAMES            
950                   
30
     
7902
FORD            
3000                   
20
     
7934
MILLER          
1300                   
10

14 rows selected.
当我们根据comm列做降序排序的时候,空值显示到了上边
scott@DB01> select * from demo order by comm
desc;

EMPNO
ENAME            
SAL      
COMM    
DEPTNO
---------- ---------- ---------- ---------- ----------
     
7369
SMITH            
800                   
20
     
7782
CLARK           
2450                   
10
     
7902
FORD            
3000                   
20
     
7900
JAMES            
950                   
30
     
7876
ADAMS           
1100                   
20
     
7566
JONES           
2975                   
20
     
7698
BLAKE           
2850                   
30
     
7934
MILLER          
1300                   
10
     
7788
SCOTT           
3000                   
20
     
7839
KING            
5000                   
10
     
7654
MARTIN          
1250      
1400        
30
     
7521
WARD            
1250       
500        
30
     
7499
ALLEN           
1600       
300        
30
     
7844
TURNER          
1500         
0        
30

14 rows selected.
为了过滤掉空值,我们可以借助nulls last
scott@DB01> select * from demo order by comm desc
nulls last;

EMPNO
ENAME            
SAL      
COMM    
DEPTNO
---------- ---------- ---------- ---------- ----------
     
7654
MARTIN          
1250      
1400        
30
     
7521
WARD            
1250       
500        
30
     
7499
ALLEN           
1600       
300        
30
     
7844
TURNER          
1500         
0        
30
     
7788
SCOTT           
3000                   
20
     
7839
KING            
5000                   
10
     
7876
ADAMS           
1100                   
20
     
7900
JAMES            
950                   
30
     
7902
FORD            
3000                   
20
     
7934
MILLER          
1300                   
10
     
7698
BLAKE           
2850                   
30
     
7566
JONES           
2975                   
20
     
7369
SMITH            
800                   
20
     
7782
CLARK           
2450                   
10

14 rows selected.

我们在开始的时候提了个小问题,comm=null,返回的结果是null还是false呢?

其实这个问题可以扩展,”=”可以用”>”、”<”等其他操作符替代,意思是一样的。

我们只用”=”来举例,看下面的例子,看看输出结果,我想你自然就明白了。

scott@DB01>
set serveroutput on

scott@DB01>
declare

2      
i boolean;

3  begin

4      
i := false;

5      
if (null=1) = i then

6         
dbms_output.put_line('return false!');

7      
elsif (null=1) is null then

8         
dbms_output.put_line('return null!');

9      
end if;

10  end;

11  /

return null!

PL/SQL procedure
successfully completed.

附:逻辑表达式操作符及结果

Oracle SQL篇(一)null值之初体验

(2012-02-26 13:08:19)

转载
   从我第一次正式的写sql语句到现在,已经超过10年的时间了。我写报表,做统计分析和财务对账,我一点点的接触oracle数据库,并尝试深入了解。这条路,一走就是10年,从充满热情,到开始厌倦,我不知道我还能坚持多久,未来的路,谁知道呢?

也许是该抓紧时间,做一点什么了,我不知道该开始写些什么,我从来没有在网上写东西的习惯。
   
先从简单的开始吧,那当然就是SQL,这是我SQL系列的第一篇,希望我能够坚持。

在Oracle数据库中,如果一个表中的列没有值的话,我们可以说是空值,比如IT员工,假如没有提成的话,提成列就应该是空。对于空值,Oracle数据库使用null来表示,空即没有的意思。null不是空格,空格是字符类型,表示一个字符,null也不是0,0是数字类型,是一个数值。在通常的B*Tree索引中,null值是不存储的,所以如果where的谓语是column=null的话,将不能使用到索引。

我们来看下面的一个小例子,为了举例,我建了一张测试表DEMO

scott@DB01>
create table demo as select empno,ename,sal,comm,mgr,deptno from
emp;

Table created.

scott@DB01>
select * from demo;

EMPNO ENAME            
SAL      
COMM       
MGR    
DEPTNO

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

7369 SMITH            
800                 
7902        
20

7499 ALLEN           
1600       
300      
7698        
30

7521 WARD            
1250       
500      
7698        
30

7566 JONES           
2975                 
7839        
20

7654 MARTIN          
1250      
1400      
7698        
30

7698 BLAKE           
2850                 
7839        
30

7782 CLARK           
2450             
    7839        
10

7788 SCOTT           
3000                 
7566        
20

7839 KING            
5000                              
10

7844 TURNER          
1500         
0      
7698        
30

7876 ADAMS           
1100     
            7788        
20

7900 JAMES            
950                 
7698        
30

7902 FORD            
3000                 
7566        
20

7934 MILLER          
1300                 
7782        
10

14 rows selected.

与Sql
Server数据库不同的是,在Oracle数据库当中,null也不等于null,如果我们要通过条件筛选找到具有空值的记录,需要使用is(not)
null
方法。

scott@DB01>
select empno,ename,sal from demo where comm=null;

no rows selected

这里我们留下一个小的疑问,where后面的表达式,返回的是null(空)还是false(假)?

scott@DB01>
select empno,ename,sal from demo where comm is null;

EMPNO ENAME            
SAL

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

7369 SMITH            
800

7566 JONES           
2975

7698 BLAKE           
2850

7782 CLARK           
2450

7788 SCOTT           
3000

7839 KING            
5000

7876 ADAMS           
1100

7900 JAMES            
950

7902 FORD            
3000

7934 MILLER          
1300

10 rows selected.

其实在Oracle数据库中,我们一般这样来定义,在一个表达式当中,如果有null值的存在,将导致整个表达式为空。当然这也不是绝对的正确,对于Oracle来说,条件判定表达式就是例外。

下面的语句是由于null从而导致整个表达式为空的例子,当然就这个问题而言,很好解决,我们可以使用NVL函数.

scott@DB01>
select empno,ename,sal,sal*12+comm from demo;

EMPNO ENAME            
SAL SAL*12+COMM

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

7369 SMITH            
800

7499 ALLEN           
1600      
19500

7521 WARD            
1250      
15500

7566 JONES           
2975

7654 MARTIN          
1250      
16400

7698 BLAKE           
2850

7782 CLARK           
2450

7788 SCOTT           
3000

7839 KING            
5000

7844 TURNER          
1500      
18000

7876 ADAMS           
1100

7900 JAMES            
950

7902 FORD            
3000

7934 MILLER          
1300

14 rows selected.

正确写法,使用了NVL函数

scott@DB01>
select empno,ename,sal,sal*12+nvl(comm,0)  tsal from
demo;

EMPNO ENAME            
SAL      
TSAL

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

7369 SMITH            
800      
9600

7499 ALLEN           
1600     
19500

7521 WARD      
      1250     
15500

7566 JONES           
2975     
35700

7654 MARTIN          
1250     
16400

7698 BLAKE           
2850     
34200

7782 CLARK           
2450     
29400

7788 SCOTT           
3000     
36000

7839 KING            
5000     
60000

7844 TURNER          
1500     
18000

7876 ADAMS           
1100     
13200

7900 JAMES            
950     
11400

7902 FORD            
3000     
36000

7934 MILLER          
1300     
15600

14 rows selected.

我们再来看下面的非常简单的子查询的例子

scott@DB01>
select empno,ename from demo where empno not in (select mgr from
demo);

no rows selected

如果我们简单来理解字面的意思的话,上面的Sql语句要实现的是:查找DEMO表中纯粹的员工,也就是干活的,呵呵,但是上边的语句并没有得到正确的结果。为什么呢?你是否可以这样来理解,not in
相当于
!=  and

!=  and

!=
这样的结构呢?

通过下面的查询,我们发现7839的mgr为空,也就是说,在我们上边的子查询中,有一个值为空

scott@DB01>
select empno,ename,mgr from demo;

EMPNO ENAME         
MGR

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

7369 SMITH           
7902

7499 ALLEN           
7698

7521 WARD  
          7698

7566 JONES           
7839

7654 MARTIN          
7698

7698 BLAKE           
7839

7782 CLARK           
7839

7788 SCOTT           
7566

7839 KING

7844 TURNER          
7698

7876 ADAMS          
 7788

7900 JAMES           
7698

7902 FORD            
7566

7934 MILLER          
7782

14 rows selected.

select empno,ename from demo
where empno not in (select mgr from demo);这个SQL的条件部分可以转换为empno!=7902 and empno!=7698 and ......and empno
!=null(引号部分做了省略),对于empno!=null
返回的值还是null,对于这样的逻辑表达式来说,true and null的结果是null,从而导致整个表达式为空,在这里null作为假条件来处理,所以我们看不到查询结果也就可以理解了。

再来看下面的语句,我们把NOT
IN修改成IN
,却发现是可以得到正确的结果的。不过,我们应该明白,要实现的目的完全相反了,我们找到的是经理,哪怕他手下只有一个小兵。

scott@DB01>
select empno,ename from demo where empno  in (select mgr from
demo);

EMPNO ENAME

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

7902 FORD

7698 BLAKE

7839 KING

7566 JONES

7788 SCOTT

7782 CLARK

6 rows selected.

为什么呢?select empno,ename
from demo where empno  in (select mgr from
demo);这个SQL我们可以把条件部分转换为empno = 7902 or empno=7698 or ......or
empno=null,对于empno=null
返回的值还是null,但是对于这样的逻辑表达式来说,true or null的结果是true,所以我们可以看到查询的结果。

那对于我们想要找到纯粹的员工,应该怎样来写呢?很简单,null值对于本例的结果没有影响,通过条件过滤掉就可以了。语句如下

scott@DB01>
select empno,ename from demo

2>where empno
not in (select mgr from demo where mgr is not null);

EMPNO ENAME

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

7369 SMITH

7499 ALLEN

7521 WARD

7654 MARTIN

7844 TURNER

7876 ADAMS

7900 JAMES

7934 MILLER

8 rows selected

空值在排序的时候总是出现在大值的一端,但有时候也会带来一些麻烦

scott@DB01> select * from demo;

EMPNO
ENAME            
SAL      
COMM    
DEPTNO
---------- ---------- ---------- ---------- ----------
     
7369
SMITH            
800                   
20
     
7499
ALLEN           
1600       
300        
30
     
7521
WARD            
1250       
500        
30
     
7566
JONES           
2975                   
20
     
7654
MARTIN          
1250      
1400        
30
     
7698
BLAKE           
2850                   
30
     
7782
CLARK           
2450                   
10
     
7788
SCOTT           
3000                   
20
     
7839
KING            
5000                   
10
     
7844
TURNER          
1500         
0        
30
     
7876
ADAMS           
1100                   
20
     
7900
JAMES            
950                   
30
     
7902
FORD            
3000                   
20
     
7934
MILLER          
1300                   
10

14 rows selected.
当我们根据comm列做降序排序的时候,空值显示到了上边
scott@DB01> select * from demo order by comm
desc;

EMPNO
ENAME            
SAL      
COMM    
DEPTNO
---------- ---------- ---------- ---------- ----------
     
7369
SMITH            
800                   
20
     
7782
CLARK           
2450                   
10
     
7902
FORD            
3000                   
20
     
7900
JAMES            
950                   
30
     
7876
ADAMS           
1100                   
20
     
7566
JONES           
2975                   
20
     
7698
BLAKE           
2850                   
30
     
7934
MILLER          
1300                   
10
     
7788
SCOTT           
3000                   
20
     
7839
KING            
5000                   
10
     
7654
MARTIN          
1250      
1400        
30
     
7521
WARD            
1250       
500        
30
     
7499
ALLEN           
1600       
300        
30
     
7844
TURNER          
1500         
0        
30

14 rows selected.
为了过滤掉空值,我们可以借助nulls last
scott@DB01> select * from demo order by comm desc
nulls last;

EMPNO
ENAME            
SAL      
COMM    
DEPTNO
---------- ---------- ---------- ---------- ----------
     
7654
MARTIN          
1250      
1400        
30
     
7521
WARD            
1250       
500        
30
     
7499
ALLEN           
1600       
300        
30
     
7844
TURNER          
1500         
0        
30
     
7788
SCOTT           
3000                   
20
     
7839
KING            
5000                   
10
     
7876
ADAMS           
1100                   
20
     
7900
JAMES            
950                   
30
     
7902
FORD            
3000                   
20
     
7934
MILLER          
1300                   
10
     
7698
BLAKE           
2850                   
30
     
7566
JONES           
2975                   
20
     
7369
SMITH            
800                   
20
     
7782
CLARK           
2450                   
10

14 rows selected.

我们在开始的时候提了个小问题,comm=null,返回的结果是null还是false呢?

其实这个问题可以扩展,”=”可以用”>”、”<”等其他操作符替代,意思是一样的。

我们只用”=”来举例,看下面的例子,看看输出结果,我想你自然就明白了。

scott@DB01>
set serveroutput on

scott@DB01>
declare

2      
i boolean;

3  begin

4      
i := false;

5      
if (null=1) = i then

6         
dbms_output.put_line('return false!');

7      
elsif (null=1) is null then

8         
dbms_output.put_line('return null!');

9      
end if;

10  end;

11  /

return null!

PL/SQL procedure
successfully completed.

附:逻辑表达式操作符及结果

Oracle SQL篇(一)null值之初体验的更多相关文章

  1. SQL中的NULL值

    除is [not] null之外,空值不满足任何查找条件.–如果null参与算术运算,则该算术表达式的值为null.–如果null参与比较运算,则结果可视为false.在SQL-92中可看成unkno ...

  2. Oracle nvl()函数处理null值

    首先我先说一下什么是Oracle的函数,曾经有一位大牛,让我说说熟悉的oracle函数,我当时竟一头雾水,心想“什么oracle函数啊,不就是那些SQL语句吗“,当时我竟然说出了select之类的回答 ...

  3. 数据库 SQL :有关 NULL 值引发 TRUE、FALSE、UNKNOW 三值逻辑

    在 Java.C# 中,相信如果是 boolean 类型值,只有两种选择 true.false.然而,在 SQL 查询中,NULL 值的引入,使得新增了 UNKNOW ,因此,就产生了 TRUE.FA ...

  4. (七)修改上一条SQL语句,NULL值的滤空函数nvl

    修改上一条SQL语句 1.用c命令来修改(c 即 change ) 默认,光标闪烁位置指向上一条SQL语句的第一行.输入二则定位到第二行. c /错误的关键字/正确的关键字 SQL form emp; ...

  5. sql 中的null值

    1.包含null的表达式都为空 select salary*12+nvl(bonus,0) nvl是虑空函数 2. null值永远!=null select  * from emp  where bo ...

  6. 【SQL】含有NULL值的排序

    查询结果中有NULL值,当进行升序排序时,NULL值默认为“最大值”,排在最后面.要想改变NULL值的显示顺序,只需要在SQL语句后面加上NULLS FIRST(排在前面),NULLS LAST(排在 ...

  7. sql server 2008 NULL值

    SQL支持用NULL符号来表示缺少的值,它使用的是三值谓词逻辑,计算结果可是以TURE.FALSE或UNKNOWN. SQL中不同语言元素处理NULL和UNKNOWN的方式也有所不同,如果逻辑表达式只 ...

  8. oracle自定义排序和NULL值排序

    1.自定义顺序 当我们希望将某个查询结果指定的显示顺序展示的时候 order by case when column1=1 then 0 case when column1=1 then 1 else ...

  9. 解决用 VB 中用 ADO 访问 数据库时 SQL 查询处理 Null 值的问题( 使用 iff(isNull(字段), 为空时的值,不为空时的值) 来处理)

    程序的环境是 VB6 + ADO + Access,在用 SQL 语句查询时,希望把两个字段合并成一个字段,但其中一个字段 Null 值直接导致两个字段合并后也变成了 Null 值.之前只能用 VB ...

随机推荐

  1. makefile之cmake入门

    cmake是一款生成makefile的软件:在生成makefile之前,首先是写一个CMakeLists.txt文件: 以下为典型例子: 先看目录tree, 在test文件夹中有:include目录, ...

  2. Unity 3d 刚体

    1.起始的设置如下图: 这是我们运行游戏,方块并不会往下掉. 2.选中CUBE,然后添加刚体                 此时再运行,会发现场景的方块会自动掉在地上. 3.我们来看一下刚体的属性 ...

  3. java基础系列——线程池

    一.线程池的创建 我们可以通过ThreadPoolExecutor来创建一个线程池. public ThreadPoolExecutor(int corePoolSize, int maximumPo ...

  4. Visual Studio之Nuget

    一.NuGet是什么? NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件,同时也可以通 ...

  5. Infragistics的介绍以及在ASP.net中使用的总结

    Infragistics系列控件是一套很好,很强大的控件,.感觉很好..现在自己做项目也用..却发现网上没有一套中文的教程,中文资料都很少..在这里就把自己的研究心得写下来... 首先安装,一步一步装 ...

  6. 基于jQuery带标题的图片3D切换焦点图

    今天给大家分享一款基于jQuery带标题的图片3D切换焦点图.这款焦点图适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 实现的代码. htm ...

  7. python 常用模块及方法

    ******************** PY核心模块方法 ******************** os模块: os.remove()         删除文件 os.unlink()        ...

  8. ExtJS 自定义组件

    主要参考的是官方文档 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  9. spring+springMVC集成(annotation方式)

    spring+springMVC集成(annotation方式) SpringMVC+Spring4.0+Hibernate 简单的整合 MyBatis3整合Spring3.SpringMVC3

  10. Html小插件

    1.天气预报插件 效果图: 源代码: <iframe width="650" scrolling="no" height="60" f ...