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

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

-- 获取工资最高的前三条记录
select   *   from  
(
select  row_number()  over order   by  Wage  desc as  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
   

你可能感兴趣的:(oracle学习)