Oracle和MySQL查询所有的表信息和字段信息
1. MySQL
1.1 查询表
1.2 查询字段
1.2.1 方式1->SHOW FULL COLUMNS
1.2.2 方式2->information_schema.COLUMNS
1.3 查表和字段
- 如下:
SELECT
a.table_comment 表中文名称,
a.table_name 表英文名称,
b.COLUMN_NAME 字段英文名,
b.column_comment 字段中文名,
b.column_type 字段类型,
b.column_key 主键约束
FROM
information_schema. TABLES a
LEFT JOIN information_schema. COLUMNS b ON a.table_name = b.TABLE_NAME
WHERE 1=1
and a.table_schema = 'test2022'
AND a.table_name = 'sys_login_log';
ORDER BY
a.table_name;

1.4 查表和字段–>转程Oracle需要的数据类型
- 如下:
SELECT
a.table_comment 表中文名称,
a.table_name 表英文名称,
b.COLUMN_NAME 字段英文名,
b.column_comment 字段中文名,
(case b.column_type when 'bigint(20) unsigned' then 'NUMBER(20)'
when 'tinyint(1)' then 'NUMBER(1)'
when 'tinyint(4)' then 'NUMBER(4)'
when 'bigint(20)' then 'NUMBER(20)'
when 'int(11)' then 'NUMBER(11)'
WHEN 'json' THEN 'CLOB'
WHEN 'text' THEN 'CLOB'
when 'datetime' then 'DATE'
else b.column_type end) 字段类型,
(case b.column_key when 'PRI' then '是' else b.column_key end) 是否主键
FROM
information_schema. TABLES a
LEFT JOIN information_schema. COLUMNS b ON a.table_name = b.TABLE_NAME
WHERE 1=1
and a.table_schema = 'test2022'
AND a.table_name = 'sys_login_log';
ORDER BY
a.table_name;

2. Oracle
2.1 查表和字段的单表查询
2.2 整理查表和字段的sql
- 如下:
select t1.table_name,t1.comments as table_comments,
t2.column_name,t2.comments as column_comments,
t3.data_type,t3.data_length,t3.column_id
from user_tab_comments t1
left join user_col_comments t2 on t2.table_name = t1.table_name
left join all_tab_columns t3 on(t3.table_name=t1.table_name and t3.column_name=t2.column_name)
where t1.TABLE_TYPE='TABLE'
and t1.table_name='SYS_COMPANY_DEPT';

|