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
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