oracle小总结

删除掉重复数据的语句,但是这个语句执行的效率有点低,很慢,暂时还没找到好的解决方法。
delete from t_user where rowid not in (select max(rowid) from t_user group by user_id )

注意:在很多数据库中,字段默认值如果没有设置或没有指定NOT NULL的话,默认就是NULL,所以在
涉及到程序编程的时候可能会遇到这样的问题:在程序中我要取得这个值,并把它转成相应的类型显示出来
但是有时候这个字段并没有赋值,我们通常希望输出是0,而实际在数据库中是NULL,这样就会抛出类型不匹配的异常。
所以,在建表时,对涉及到数值类型的字段,最好指定默认值,如0,0.00等。
例:
create table test(
id number(10,2)default 0,
name varchar2(20)
);
再执行insert into test(name) values('a');后
查询 select id from test where name='a';
结果就是0.00

Oracle的授权:EXECUTE IMMEDIATE的权限问题
当执行DDL语句时,仅有DBA权限是不够的,必须要分配权限,如:
grant create table to 用户名

导入导出命令(可以在命令行运行):
导出:exp cnc4006/cnc4006@chorpin file='E:\cnc4006.dmp';
导入:imp cnc4006/cnc4006@chorpin file='E:\cnc4006.dmp' full=y;
这样是把整个数据库的结构跟数据一起导,如果想要单独导一个或几个表的话,可以用PL/SQL developer的菜单来操作:
tool->export tables | tool->import tables

创建一个新表,这个表的字段是从另外一个表得到,连值一起拷过来:
create table t_bill_test as select * from t_bill;

如果不想把值一起拷过来,可以加条件,设置主键为空
create table t_bill_test as select * from t_bill where flow_id='';

下面的例子中会为"Persons"表制作一个备份
SELECT * INTO Persons_backup FROM Persons
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值