zoukankan      html  css  js  c++  java
  • sql语句拾遗

    1.交换两条记录的属性值

    update tx_ry ry1 set px=(select px from tx_ry where id in (pk1,pk2) and id<>ry1.id) where id in (pk1,pk2);

    2.自关联查询
    select mk.*,level from xt_xtmk mk where 1=1 start with mc='附加信息管理' connect by prior id=fid   --向下查
    union
    select mk.*,level from xt_xtmk mk where 1=1 start with mc='附加信息管理' connect by prior fid=id   --向上查

    level是伪列,表示所在层级。

    3.pk、uk、fk、idx、unique index创建及区别

    alter table Yj_Yjcllc add constraint PK_Yj_Yjcllc primary key (ID);
    alter table Yj_Yjcllc add constraint UK_Yj_Yjcllc unique (sjid,sjspbz);
    alter table Yj_Yjcllc add constraint FK_Yj_Yjcllc foreign key (sjid) references YJ_YJJB (ID);
    create index idx_Yj_Yjcllc_sjid on Yj_Yjcllc (sjid);  //外键建索引能够提高查询速度

          create unique index idx_yj_yjcllc_idbz on yj_yjcllc (sjid,sjspbz);//唯一索引是索引的特例

    注意:oracle 会默认给pk、uk建索引,但不默认给fk建索引,所以需要用户自己给fk建索引。

    pk、uk、fk是约束,可以在user_constraints表中查到;pk索引、uk索引、idx 是索引,可以在user_indexes中查,user_ind_columns 索引列。

    uk与唯一索引的区别:创建pk、uk是系统默认在user_constraints表中创建约束,并在user_indexes表中创建唯一索引;

                                 唯一索引(unique index)只会在user_indexes表中创建唯一索引,而不会在user_constraints表中创建约束。

    4.查看表空间使用情况的SQL语句:  
    select a.tablespace_name "表空间名",total 表空间大小,free 表空间剩余大小,  
    (total-free) 表空间使用大小, round((total-free)/total,4)*100   "使用率   %",
    (select file_name from dba_data_files where tablespace_name=a.tablespace_name and rownum<2) "文件名"  
    from    
     (select tablespace_name,sum(bytes) free  from dba_free_space group by tablespace_name) a,  
     (select tablespace_name,sum(bytes) total from dba_data_files group by tablespace_name) b  
    where a.tablespace_name=b.tablespace_name   
    --创建表空间及数据文件 
    create tablespace iests datafile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\IES_1.DBF' size 200m reuse autoextend on next 50m;
    --给表空间添加数据文件
    alter tablespace iests add datafile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\IES_2.DBF' size 200m reuse autoextend on next 50m;
    --扩展已有数据文件的大小
    alter database datafile 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\SYSTEM01.DBF' resize 600M;

    5.查询创建的用户下的表的记录数

    select user_id,username,table_name,ies.getfieldvalue('count(1)',table_name,'1=1') cnt
    from (select u.user_id,u.username,t.owner||'.'||t.table_name table_name from all_users u,all_tables t where t.owner=u.username and user_id>60 order by user_id,table_name)

  • 相关阅读:
    [转]实现财务自由的6大步骤
    [转] js 实现table每列可左右拖动改变列宽度
    [转]在Excel中使用SQL语句实现精确查询
    [书目20150727]有效沟通-余世维
    [书目20150727]选择重于一切(扎克伯格给年轻人的37个人生忠告)
    [转]把汉字写“绝”了
    [转]《间架结构92法》
    深圳社保转入
    广州社保转出
    [转]利用telnet进行SMTP的验证
  • 原文地址:https://www.cnblogs.com/BradMiller/p/1905977.html
Copyright © 2011-2022 走看看