使用SQL查询所有数据库名、表名和表字段名

MySQL中查询所有数据库名和表名
1.查询所有数据库

SHOW databases;

2.查询指定数据库中所有表名

SELECT TABLE_NAME 
FROM
	information_schema.tables 
WHERE
	table_schema = 'database_name' 
	AND table_type = 'BASE TABLE';

3.查询指定表中的所有字段名(ORDER BY ordinal_position,加入此排序可以按表设计字段返回顺序,不加则按字母排序)

SELECT COLUMN_NAME 
FROM
	information_schema.COLUMNS 
WHERE
	table_schema = 'database_name' 
	AND TABLE_NAME = 'table_name' 
ORDER BY
	ordinal_position;

4.查询指定表中的所有字段名和字段类型

SELECT COLUMN_NAME
	,
	data_type 
FROM
	information_schema.COLUMNS 
WHERE
	table_schema = 'database_name' 
	AND TABLE_NAME = 'table_name';

SQLServer中查询所有数据库名和表名

1.查询所有数据库

SELECT
	* 
FROM
	sysdatabases;

2.查询当前数据库中所有表名

SELECT
	* 
FROM
	sysobjects 
WHERE
	xtype = 'U';
--xtype='U':表示所有用户表,xtype='S':表示所有系统表。

3.查询指定表中的所有字段名

SELECT NAME 
FROM
	syscolumns 
WHERE
	ID = Object_Id ( 'table_name' );

4.查询指定表中的所有字段名和字段类型

SELECT
	sc.NAME,
	st.NAME 
FROM
	syscolumns sc,
	systypes st 
WHERE
	sc.xtype = st.xtype 
	AND sc.ID IN ( SELECT ID FROM sysobjects WHERE xtype = 'U' AND NAME = 'table_name' );

Oracle中查询所有数据库名和表名

1.查询所有数据库
由于Oralce没有库名,只有表空间,所以Oracle没有提供数据库名称查询支持,只提供了表空间名称查询。

SELECT
	* 
FROM
	v$tablespace;--查询表空间(需要一定权限)

2.查询当前数据库中所有表名

SELECT
	* 
FROM
	user_tables;

3.查询指定表中的所有字段名

SELECT COLUMN_NAME 
FROM
	user_tab_columns 
WHERE
	TABLE_NAME = 'table_name';--表名要全大写

4.查询指定表中的所有字段名和字段类型

SELECT 
	COLUMN_NAME,
	data_type 
FROM
	user_tab_columns 
WHERE
	TABLE_NAME = 'table_name';--表名要全大写

PG库中查询所有数据库名、表名、字段名、字段类型、字段注释、所有表数据量

1、查询所有数据库名

SELECT
	datname 
FROM
	pg_database 
ORDER BY
	datname;

2、查询当前数据库下指定schema下所有表名

SELECT TABLE_NAME 
FROM
	information_schema.tables 
WHERE
	table_schema = 'schema_name'

3、查询当前数据库指定表名下所有字段名、字段类型、字段注释

SELECT 
	C.relname "表名",
	A.attname "字段名称",
	format_type ( A.atttypid, A.atttypmod ) AS "字段类型",
	d.description "字段注释" 
FROM
	pg_class C,
	pg_attribute A,
	pg_type T,
	pg_description d 
WHERE
	C.relname = 'a_zb_zwfwzt_yshj_yszdzb_xz' 
	AND A.attnum > 0 
	AND A.attrelid = C.oid 
	AND A.atttypid = T.oid 
	AND d.objoid = A.attrelid 
	AND d.objsubid = A.attnum

4、查询当前数据库下指定schema所有表数据量(估算值),精确值可查看该博文:postgresql 查询当前schema下所有表数据的数量

SELECT 
	SUM(reltuples) --reltuples,表中行数,只是规划器使用的一个估计值
FROM
	pg_class 
WHERE
	relname IN ( SELECT DISTINCT TABLE_NAME FROM information_schema.tables WHERE table_schema = 'schema_name' )
  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值