Oracle学习笔记之---表结构修改

--获取交集,也就是获取重复的记录
SELECT * FROM Employee
intersect
select * from Employee;

--获取工资最高的前三条记录
select * from 
(
select row_number() overorder by Wage descas rownumber,
Name,Wage 
from Employee) as temp
where rownumber<=3

----Oracle基本操作学习笔记----

--1、Oracle 中NULL处理函数:nvl()和nvl2()
    -- nvl(expr1,expr2):如果expr1=null,择则返回expr2,否则返回expr1
    -- nvl2(expr1,expr2,expr3):如果expr1非null,择返回expr2,否则返回expr3
    --SQL Server中用isnull(expr1,expr2)函数处理与nvl(expr1,expr2)相同

--2、修改列名
    --Oracle: rename column命令
      alter table table_name rename column old_column_name to new_column_name 
    
--Sql Server: sp_rename 存储过程
      --type值:database,object,column,index,userdatatype
      sp_rename 'databaseName.tableName.columnName','new_column_name','type'
--3、修改列数据类型
    --Oracle:modify关键字
      alter table table_name modify column_name dataType
    
--Sql Server:alter column关键字
      alter table table_name alter column column_name dataType

--4、添加和删除列
    --Oracle与Sql Server一样
    --添加Column
      alter table table_name add  column column_name dataType
    
--删除Column
      alter table table_name drop column column_name 

--5、修改表ming
  --Oracle:
     alter table table_name rename to new_table_name
     rename table_name 
to new_table_name
  
--Sql Server:与修改列名一样,设置type=objec即可
     sp_rename 'databaseName.tableName','new_table_name','object'

--6、复制表创建新表
  --Oracle:
    Create table table_name
    
as
    
select ...
    
--如果只复制表结构可以让select 结果集为空
  --Sql Server:
    select column_list into new_table_name from table_name

--7、约束
  --约束:not null、unique、check、primary key、foreign key、default
  --Oracle与Sql Server除了foreign key 有点不同外,其余用法都一样
  --Oracle 级联约束
    on delete set null --:指定字表外键对应设置为空
    on delete cascade  --:级联删除时字表中对应的记录
  --Sql Server级联选项
    on delete no action /on update no action --默认选项
    on delete cascade / on update cascade
    
on delete set null / on update set null
    
on delete set default / on UPDATE set default
   
posted @ 2011-04-07 13:23  Blue Sky ......  阅读(665)  评论(0编辑  收藏  举报