データベース内のテーブルやフィールドなどのクエリ関連情報 (oracle、mysql、Dameng)

  1. オラクルデータベース:

すべてのユーザーにクエリを実行する


select * from all_users 
-- where USERNAME like 'sys_%' 

すべてのテーブル情報をクエリし、ユーザーに応じてクエリを実行します


SELECT * FROM all_tables 
--WHERE OWNER = '' ORDER BY TABLE_NAME;

特定のユーザーのテーブルの数とテーブルに記録されたデータの量をカウントします。


SELECT count(table_name),sum(num_rows) FROM all_tables WHERE OWNER = ''

統計テーブルデータサイズ(M)


select c.segment_name,b.TABLE_NAME, c.bytes,round(c.bytes / 1024 / 1024, 2 )|| 'M' from 
(SELECT table_name FROM all_tables 
WHERE OWNER = '' ORDER BY TABLE_NAME
 ) b
LEFT JOIN user_segments c on c.segment_name = b.TABLE_NAME and segment_type = 'TABLE'

2.mysqlデータベース:

すべてのテーブル情報をクエリする


select * 
from 
information_schema.tables 
where 
table_schema='当前数据库'
#table_rows是记录数

または、テーブル名だけを確認したい場合は、次のように使用できます。


show tables

空のフィールド注釈を含むクエリ情報


select
column_name,
column_comment,
table_name 
from information_schema.columns
where table_schema = '当前数据库'
and (column_comment  is null or column_comment ='') 

単一テーブルのフィールド注釈情報を表示する


show full columns from 表名;

クエリテーブルのデータ長サイズ


SELECT
table_comment,
table_name,
    concat( round(DATA_LENGTH / 1024 / 1024, 2 ), 'M' ) 
FROM
    information_schema.TABLES 
WHERE
    table_schema = '当前数据库' 
    

3.Damengデータベース:

特定のモードでのテーブル情報のクエリ


select * from sys.dba_tables where owner = '模式名'

--或者
select * from all_tables where owner = '模式名'

Dameng は CLOB 型を処理します。

dbms_lob.substr(clobcolumn,4000)、CLOB フィールドをインターセプトします。

Dameng は TEXT 型を処理します。

Convert(varchar(5000),TEXT field)、TEXT 型を処理します

heji 内の数値以外の小数点部分を削除します。

SELECT
  heji,
   REGEXP_REPLACE(heji, '[^0-9\.]+', '') AS stripped_column
FROM
  "test"."test";

4、prostgreSQL

クエリテーブルのデータ量、推定値、不正確、正確なデータは 1 つのテーブル統計にすぎません

(統計コレクターは、「イベントが多い」行のおおよその数を常に追跡します (後の更新によって削除または破棄されません)。イベントが多い場合、この値はわずかに異なる可能性がありますが、通常は適切な推定値です。有効期限が切れた行の数)

SELECT schemaname,relname,n_live_tup 
  FROM pg_stat_user_tables 
ORDER BY n_live_tup DESC;

おすすめ

転載: blog.csdn.net/y744786018/article/details/129727620