当前位置: 代码迷 >> SQL >> SQL惯用的查询
  详细解决方案

SQL惯用的查询

热度:26   发布时间:2016-05-05 14:28:41.0
SQL常用的查询
查看表中字段的属性:
desc table_name

oracle中修改某个字段属性:
ALTER TABLE tablename MODIFY column_name varchar(32)
如:
alter table T_PORT modify MDUMODEL varchar2(32)

oracle中给某张表增加一个字段:
ALTER TABLE tablename ADD column_name  varchar2(32)
如:
ALTER TABLE T_DSLAM ADD POPNAME  varchar2(32)

查询本用户所有的表:
select * from user_tab_comments

查询表:
select * from cat;

select * from tab;

select table_name from user_tables;

查询某个视图:

select text from user_views where view_name=upper('&view_name');

查询索引:

select b.table_name, b.uniqueness, b.index_name from user_indexes b order by b.table_type, b.table_name, b.index_name;

某个表上的所有的索引及相关的列:

col column_name for a30

select b.table_name, b.uniqueness, b.index_name, a.column_name from user_ind_columns a, user_indexes b where a.index_name = b.index_name and a.table_name = b.table_name and b.table_name = upper('yours tablename') order by b.table_type, b.table_name,b.index_name, column_position;


查询表空间:
1、先连接到sys用户:
SQL> connect sys
Enter password:as sysdba
Connected.

a、查询oracle用户的默认表空间和临时表空间

select default_tablespace, temporary_tablespace, d.username from dba_users d where d.username='BBASS' group by default_tablespace, temporary_tablespace, d.username

b、查询当前数据库中的所有的临时表空间
select distinct tablespace_name from dba_temp_files;

c、查询所有表空间
select tablespace_name from dba_tablespaces;

d、查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; 

e、查看表空间物理文件的名称及大小
select tablespace_name, file_id, file_name, round(bytes/(1024*1024),0) total_space  from dba_data_files order by tablespace_name;

f、查看表空间的使用情况(空闲大小)
select sum(bytes)/(1024*1024) as free_space,tablespace_name from dba_free_space  group by tablespace_name;

g、查询表空间的总大小、已用大小 、空闲大小
SELECT A.TABLESPACE_NAME,ROUND(A.BYTES/(1024*1024),0) TOTAL,ROUND(B.BYTES/(1024*1024),0) USED, ROUND(C.BYTES/(1024*1024),0) FREE,(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME; 



==============创建索引语句=============================
联合索引:
  CREATE INDEX "BBASS"."RATE_CREATETIME_PORT" ON "BBASS"."T_PORTRATE" ("CREATETIME", "PORTID")
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "BBASS" ;
单个索引:
  CREATE INDEX "BBASS"."RATE_PORTID" ON "BBASS"."T_PORTRATE" ("PORTID")
  PCTFREE 10 INITRANS 2 MAXTRANS 255 NOLOGGING COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "BBASS_DATA" ;



  相关解决方案