运用SQL查询mysql,sersql,oracle所有数据库名和表名

运用SQL查询所有数据库名和表名

MySQL

  • 1、查询所有数据库
show databases;
  • 2、查询指定数据库中所有表名
use 数据库名
show tables

或者

select table_name from information_schema.tables where table_schema='数据库名' and table_type='BASE TABLE';
  • 3、查询指定表中的所有字段名
select column_name from information_schema.columns where table_schema='数据库名' and table_name='表名';
  • 4、查询指定表中的所有字段名和字段类型
show create table 表名;

或者

select column_name,data_type from information_schema.columns where table_schema='数据库名' and table_name='表名';

SQLServer

  1. 查询所有数据库
select * from sysdatabases;
  1. 查询当前数据库中所有表名
select * from sysobjects where xtype='U';
xtype='U':表示所有用户表,xtype='S':表示所有系统表。
  1. 查询指定表中的所有字段名
select name from syscolumns where id=Object_Id('table_name');
  1. 查询指定表中的所有字段名和字段类型
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;--查询表空间(需要一定权限)
  1. 查询当前数据库中所有表名
select * from user_tables;
  1. 查询指定表中的所有字段名
select column_name from user_tab_columns where table_name = 'table_name';--表名要全大写
  1. 查询指定表中的所有字段名和字段类型
select column_name, data_type from user_tab_columns where table_name = 'table_name';--表名要全大写

猜你喜欢

转载自blog.csdn.net/zch981964/article/details/130315624