Oracle查詢資料庫中所有表的記錄數

2021-09-02 17:23:31 字數 3406 閱讀 1381

oracle查詢資料庫中所有表的記錄數

查詢庫中的表名和表中記錄數:

select t.table_name, t.num_rows from user_tables t;

查詢庫中記錄總數:

select sum(a.num_rows)

from (select t.table_name, t.num_rows from user_tables t) a;

如圖所示:

1、使用者操作

select * from dba_users;

create user test identified by 123456;

alter user test identified by 123456;

grant connect,resource to test ;

alter user test quota unlimited on users;

drop user test cascade;

2、使用者

select * from user_users;

檢視當前使用者的角色

select * from user_role_privs;

檢視當前使用者的系統許可權和表級許可權

select * from user_sys_privs;

select * from user_tab_privs;

3、表檢視使用者下所有的表

select * from user_tables;

檢視某錶的建立時間

select * from user_objects where object_name=upper('test');

檢視某錶的大小

select sum(bytes)/(1024*1024) as "size(m)" from user_segments where segment_name=upper('test');

4、索引

檢視索引個數和類別

select index_name,index_type,table_name from user_indexes order by table_name;

檢視索引被索引的字段

select * from user_ind_columns where index_name=upper('&index_name');

檢視索引的大小

select sum(bytes)/(1024*1024) as "size(m)" from user_segments where segment_name=upper('&index_name');

5、序列號

檢視序列號,last_number是當前值

select * from user_sequences;

6、檢視

select * from user_views;

7、儲存函式和過程

檢視函式和過程的狀態

select object_name,status from user_objects where object_type='function'; select object_name,status from user_objects where object_type='procedure';

檢視函式和過程的源**

select text from all_source where owner=user and name=upper('&plsql_name');

8、sql時間計算

select to_char(add_months(sysdate, -1), 'yyyymmdd') syy from dual;  --計算上乙個月

9、oracle的connect by level的使用

獲取連續數字示例**:

1 -- 獲取連續的資料(注意:level只用使用

2 select level from dual connect by level <= 5; -- 1 2 3 4 5

獲取連續的日期示例**:

1 -- 獲取連續的指定時間(注意:獲取連續的時間需要包含當天需要再+1天)

2 select sysdate-level+1 days from dual connect by level <= 5;

統計填充示例**:

1 /*

2 問題:查詢2023年每月入職的人數,沒有入職的以0補充

3 解決:1.建立乙個連續的年份表進行關聯

4 2.關聯的條件,擷取時間相等進行關聯

5 3.注意:a.需要所有的時間,因此要讓時間表主表

6 b.如果emp表有條件,要單獨在(select * from emp)中新增,不然會影響結果,導致時間不全

7 c.使用其他函式,如sum求和可能為空用nvl函式,這裡以count函式舉例

8 */

9 select times.days 月份,nvl(count(e.empno),0) 入職人數 from (select * from emp) e

10 right join (

11 select to_char(add_months(to_date('2010-12-01', 'yyyy-mm-dd'),-level+1),'yyyy-mm') days

12 from dual connect by level <= 12

13 ) times

14 on substr(to_char(e.hiredate,'yyyy-mm-dd hh24:mi:ss'), 0, 7) = times.days

15 group by times.days

16 order by times.days

月份          入職人數

2010-01    0

2010-02    2

Oracle查詢資料庫中所有的表名稱

1.查詢資料庫中所有的表名稱和每張表所對應的資料條數 select t.table name,t.num rows from user tables t 此處需要注意的是 在查詢每張表所對應的資料條數時會與利用sql select count from tablename 所查詢出來的結果有所不同,...

查詢資料庫中所有的表

select from sysobjects where xtype u 查詢當前資料庫下所有使用者建立的表 xtype char 2 物件型別。可以是下列物件型別中的一種 c check 約束 d 預設值或 default 約束 f foreign key 約束 l 日誌 fn 標量函式 if 內...

查詢資料庫中所有表名,查詢表中所有欄位名

mysql 1.查詢資料庫中所有表名稱 select table name from information schema.tables where table schema 資料庫名稱 包含檢視 select table name from information schema.tables wh...