ITPub博客

首页 > Linux操作系统 > Linux操作系统 > [转]sql语句-002

[转]sql语句-002

原创 Linux操作系统 作者:31597359 时间:2019-03-16 19:03:07 0 删除 编辑
02

11、创建序列
select * from user_sequences;
create sequence SEQ_NAME start with 1000
maxvalue 1000 increment by 1;
alter sequence SEQ_NAME minvalue 50 maxvalue 100;
12、删除重复行
update a set aa=null where aa is not null;

delete from a where rowid!=
(select max(rowid) from a b where a.aa=b.aa);
13、删除同其他表相同的行
delete from a where exits
(select 'X' from b where b.no=a.no);

delete from a where no in (select no from b);
14、查询从多少行到多少行的记录(可以用在web开发中的分页显示)

select * from ( select rownum row_id,b.* from (select a.* from sys_oper a) b )
where row_id between 15 and 20

15、对公共授予访问权
grant select on 表名 to public;
create public synonym 同义词名 for 表名;
16、填加注释
comment on table 表名 is '注释';
comment on column 表名.列名 is '注释';
17、分布式数据库,创建数据库链路
create [public] database link LINKNAME
[connect to USERNAME identified by PASSWORD]
[using 'CONNECT_STRING']
可以在服务器端,也可以在客户端建立,但必须注意,两台服务器之间
数据库必须可以互访,必须各有各自的别名数据库
18、查看数据库链路
select * from all_db_links;
select * from user_db_links;
查询 select * from TABLENAME@DBLNKNAME;
创建远程数据库同义词
create synonym for TABLENAME@DBLNKNAME;
操纵远程数据库记录
insert into TABLENAME@DBLNKNAME (a,b) values (va,vb);
update TABLENAME@DBLNKNAME set a='this';
delete from TABLENAME@DBLNKNAME;
怎样执行远程的内嵌过程
begin
otherdbpro@to_html(参数);
end;

19、数据库链路用户密码有特殊字符的时候,可以用双引号把密码引起来
create public database link dblink1 connect to db1 identified by "123*456" using 'db11'

20.oracle8中扩充了group by rollup和cube的操作。有时候省了你好多功夫的。
<1>下面的语句可以进行总计
select region_code,count(*) from aicbs.acc_woff_notify
group by rollup(region_code);
<2> 对第1个字段小计,最后合计
select region_code,write_status,count(*) from aicbs.acc_woff_notify
group by rollup(region_code,write_status);
----------------------
570 0 3
570 1 2
570 5 --此处小计了570的记录
571 0 10
571 1 2
571 12 --此处小计了571的记录
.....
100 --此处有总计
<3> 复合rollup表达式,只做总计
select region_code,write_status,count(*) from aicbs.acc_woff_notify
group by rollup(region_code,write_status);

<4> 对第1个字段小计,再对第2个字段小计,最后合计
select region_code,write_status,count(*) from aicbs.acc_woff_notify
group by cube(region_code,write_status);
----------------------
100 --此处有总计
0 60 --对write_status=0的小计
1 39 --对write_status=1的小计
3 1 --对write_status=3的小计
570 5 --此处小计了570的记录
570 0 3
570 1 2
571 12 --此处小计了571的记录
571 0 10
571 1 2
....
<3> 复合cube表达式,只做总计
select region_code,write_status,count(*) from aicbs.acc_woff_notify
group by cube(region_code,write_status);


<4>下面的语句可以按照rollup不同的字段进行小计
select region_code,write_status,count(*) from aicbs.acc_woff_notify
group by region_code,rollup(write_status);
21.查询view的创建语句
sql>set long 1000
sql>select * from user_views where view_name='MY_VIEW_NAME';
or
sql>select * from all_views where view_name='MY_VIEW_NAME';

22、去除数据库中特殊字符
<1>.字符串字段中含有"'",如果用来组合sql语句,会造成语句不准确。
比如:replace(f1,'''','')
<2>.字符串字段中含有"t n",如果用来在c或者c++程序中输出到文件,格式无法保证。
比如:replace(f2,'t','')
<3>.清除换行和回车
比如: replace(f2,chr(13)||chr(10),'')
23、如何在字符串里加回车或者tab键
在sqlplus中执行
sql>select 'UserId=1233111'||chr(10)||'AccId=13431'||chr(9)||'AccId2=11111' from dual;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8000572/viewspace-62276/,如需转载,请注明出处,否则将追究法律责任。

上一篇: [转]sql语句-001
下一篇: [转]sql语句-003
请登录后发表评论 登录
全部评论

注册时间:2006-10-07

  • 博文量
    120
  • 访问量
    77858