sql 语句

Sql代码   收藏代码
  1. select *  
  2. from t  
  3. where rownum <=5  
  4. minus  
  5. select *  
  6. from t  
  7. where rownum <=2;   

请写出将T表中第3~5行数据列出来的SQL语句 


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

Sql代码   收藏代码
  1. update t  
  2. set (address,phone)=  
  3. (select address,phone from e where e.name=t.name);  

. 请写出将E表中的ADDRESS、PHONE更新到T表中的SQL语句(按NAME相同进行关联) 

-------------------------------------------------------------------------- 
很低的效率 
Sql代码   收藏代码
  1. select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1   
  2.   
  3. //将上面的>号改为=号就可以查询出没有重复的数据了。   
  4.   
  5. //想要删除这些重复的数据,可以使用下面语句进行删除   
  6.   
  7. delete from 表名 a where 字段1,字段2 in   
  8.   
  9. (select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)   


---------------------------------------------- 
建议先将查询到的重复的数据插入到一个临时表中,然后对进行删除,这样,执行删除的时候就不用再进行一次查询了。如下: 
Sql代码   收藏代码
  1. CREATE TABLE 临时表 AS   
  2.   
  3. (select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)   
  4.   
  5. //上面这句话就是建立了临时表,并将查询到的数据插入其中。   
  6.   
  7. //下面就可以进行这样的删除操作了:   
  8.   
  9. delete from 表名 a where 字段1,字段2 in (select 字段1,字段2 from 临时表);   

----------------------------------------------------- 
保留重复数据中最新的一条记录 
很低的效率 
在oracle中,有个隐藏了自动rowid,里面给每条记录一个唯一的rowid,我们如果想保留最新的一条记录, 
Sql代码   收藏代码
  1. select a.rowid,a.* from 表名 a   
  2.   where a.rowid !=   
  3.   (   
  4.   select max(b.rowid) from 表名 b   
  5.   where a.字段1 = b.字段1 and   
  6.   a.字段2 = b.字段2   
  7.   )  
  8.  delete from 表名 a   
  9.   where a.rowid !=   
  10.   (   
  11.   select max(b.rowid) from 表名 b   
  12.   where a.字段1 = b.字段1 and   
  13.   a.字段2 = b.字段2   
  14.   )  

//可以考虑建立临时表,讲需要判断重复的字段、rowid插入临时表中,然后删除的时候 
//行比较 
Sql代码   收藏代码
  1. create table 临时表 as   
  2.   select a.字段1,a.字段2,MAX(a.ROWID) dataid from 正式表 a GROUP BY a.字段1,a.字段2;   
  3.   delete from 表名 a   
  4.   where a.rowid !=   
  5.   (   
  6.   select b.dataid from 临时表 b   
  7.   where a.字段1 = b.字段1 and   
  8.   a.字段2 = b.字段2   
  9.   );   
  10.   commit;  

------------------------------------------------ 
对于表中两行记录完全一样的情况,可以用下面语句获取到去掉重复数据后的记录: 
Sql代码   收藏代码
  1. CREATE TABLE 临时表 AS (select distinct * from 表名);  
  2.   
  3.   truncate table 正式表; --注:原先由于笔误写成了drop table 正式表;,现在已经改正过来  
  4.   
  5.   insert into 正式表 (select * from 临时表);  
  6.   
  7.   drop table 临时表;  


------------------------------------------------------- 
------------------------------------------------------- 
三、怎样快速删除oracle数据库 

最快的方法就进入注册表 在运行..里输入regedit. 

依次展开HKEY_LOCAL_MACHINE SOFTWARE 

找到ORACLE节点。删除。 

然后删除ORACLE数据文件,安装的时候选的路径。 

最后删除oracle引导文件,在系统盘符的Program Files 里面删除oracle文件夹。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值