oracle实验6-8:关于null值,列的别名,去掉重复行

NULL值

实验6:关于null值得问题

SQL> select ename,sal,comm from emp;

ENAME             SAL       COMM                                               
---------- ---------- ----------                                               
SMITH              800                                                          
ALLEN             1600         300                                               
WARD             1250         500                                               
JONES             2975                                                          
MARTIN           1250        1400                                               
BLAKE            2850                                                          
CLARK            2450                                                          
KING              5000                                                          
TURNER          1500             0                                               
JAMES             950                                                          
FORD             3000                                                                                                          
MILLER           1300                                                          

已选择12行。

其中COMM列中有一些行没有值,是空值(null)。

  • null值不等于0,也不等于空格。
  • null值是未赋值的值。
  • null值是双银剑,使用好了提高性能。

别名

别名的使用原则

  • 区别同名列的名称
  • 非法的表达式合法化
  • 按照你的意愿显示列的名称
  • 特殊的别名要双引
  • 直接写列的后面
  • 使用as增加可读性

实验7:在列上起一个别名

SQL> select sal as salary , hiredate "上班日期",sal*12 total_salary from emp;

    SALARY 上班日期       TOTAL_SALARY                                         
---------- -------------- ------------                                         
       800 17-12月-80             9600                                         
      1600 20-2月 -81            19200                                         
      1250 22-2月 -81            15000                                         
      2975 02-4月 -81            35700                                         
      1250 28-9月 -81            15000                                         
      2850 01-5月 -81            34200                                         
      2450 09-6月 -81            29400                                         
      5000 17-11月-81            60000                                         
      1500 08-9月 -81            18000                                         
       950 03-12月-81            11400                                         
      3000 03-12月-81            36000                                                                                   
      1300 23-1月 -82            15600                                         

已选择12行。

SQL> select sal salary from emp;

    SALARY                                                                     
----------                                                                     
       800                                                                     
      1600                                                                     
      1250                                                                     
      2975                                                                     
      1250                                                                     
      2850                                                                     
      2450                                                                     
      5000                                                                     
      1500                                                                     
       950                                                                     
      3000                                                                                                                                            
      1300                                                                     

已选择12行。

SQL> select sal as salary , hiredate as 日期 from emp;

    SALARY 日期                                                                
---------- --------------                                                      
       800 17-12月-80                                                          
      1600 20-2月 -81                                                          
      1250 22-2月 -81                                                          
      2975 02-4月 -81                                                          
      1250 28-9月 -81                                                          
      2850 01-5月 -81                                                          
      2450 09-6月 -81                                                          
      5000 17-11月-81                                                          
      1500 08-9月 -81                                                          
       950 03-12月-81                                                          
      3000 03-12月-81                                                                                                                 
      1300 23-1月 -82                                                          

已选择12行。

重复的行

select语句显示重复的行,可以使用distinct语法去掉重复的行

SQL> select deptno from emp;

    DEPTNO                                                                     
----------                                                                     
        20                                                                     
        30                                                                     
        30                                                                     
        20                                                                     
        30                                                                     
        30                                                                     
        10                                                                     
        10                                                                     
        30                                                                     
        30                                                                     
        20                                                                                                                                          
        10                                                                     

已选择12行。

实验8:在显示的时候去掉重复的行

使用distinct关键字去掉重复的行

SQL> select distinct deptno from emp;

    DEPTNO                                                                     
----------                                                                     
        30                                                                     
        20                                                                     
        10     

在oracle10g前的版本需要排序才能去掉重复的行,在10g中不需要排序,所以输出也是无序的。

 

返回目录  http://www.cnblogs.com/downpour/p/3155689.html

 

posted on 2013-06-17 23:05  不吃鱼的小胖猫  阅读(514)  评论(0编辑  收藏  举报