700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 查询所有表 索引 视图信息的SQL语句-Mysql/oracle/sql server的不同实现方式

查询所有表 索引 视图信息的SQL语句-Mysql/oracle/sql server的不同实现方式

时间:2019-11-05 23:31:34

相关推荐

查询所有表 索引 视图信息的SQL语句-Mysql/oracle/sql server的不同实现方式

注:所有查询默认在管理员用户下进行

----------------------------------Mysql中--------------------------------------------

一、查询数据库内所有表的基本信息

在Mysql中information_schema.TABLES表存储了数据表的元数据信息,下面对常用的字段进行介绍:

TABLE_SCHEMA 记录数据库名;TABLE_NAME记录数据表名;ENGINE 存储引擎;TABLE_ROWS关于表的粗略行估计;DATA)LENGTH记录表的大小(单位字节);INDEX_LENGTH 记录表的索引的大小;ROW_FORMAT可以查看数据表是否压缩过;

对应sql语句:

全部属性查询

1.14日下午,我想抓取数据库所有表的建表语句失败

对应版:

注:information_schema.TABLES t 或者 information_schema.`TABLES` 这两种写法都可以。

二、查询数据库内所有表的字段(列)信息

在Mysql中information_schema.COLUMNS表存储了数据表所有列的信息,下面对常用的字段进行介绍:

TABLE_CATALOG这一列的值总是DEF;TABLE_SCHEMA 记录数据库名;TABLE_NAME 记录表名;COLUMN_NAME记录列名;COLUMN_DEFAULT 记录列默认值;IS_NULLABLE是否可以取空;COLUMN_TYPE 记录列数据类型(详细);COLUMN_KEY 记录列索引类型;CHARACTER_MAXIMUM_LENGTHCHAR/VARCHAR 最大长度;

对应SQL语句:

全部属性查询:

对应版:

三、查询数据库内所有表的索引信息

在Mysql中information_schema.STATISTICS表存储了数据表所有索引的信息,下面对常用的字段进行介绍:

TABLE_CATALOG 包含索引的表所属的目录的名称。 该值始终为def;TABLE_SCHEMA包含索引的表所属的结构(数据库)的名称;TABLE_NAME包含索引的表的名称;NON_UNIQUE如果索引不能重复,则为0;如果可以,则为1;INDEX_SCHEMA 索引所属的结构(数据库)的名称;INDEX_NAME索引的名称。 如果是主键,则始终为PRIMARY;SEQ_IN_INDEX索引中的列序列号,以1开头;COLUMN_NAME列名称;COLLATION列在索引中排序方式:A(升序),D(降序),NULL(未排序);CARDINALITY估计索引中唯一值的数量,该值不一定精确;SUB_PART索引前缀。 如果列仅被部分索引,则索引字符的数量,如果整列被索引,则为NULL;PACKED 指示密钥的打包方式。 如果不是,则为NULL;NULLABLE 如果列可能包含NULL值,则包含YES,否则包含’’;INDEX_TYPE索引类型(BTREE,FULLTEXT,HASH,RTREE);COMMENT 有关未在其自己的列中描述的索引的信息,例如在禁用索引时禁用;INDEX_COMMENT 索引注释;

对应SQL语句:

全部属性查询:

对应:

四、查询库名得建立的所有视图信息

在Mysql中information_schema.STATISTICS表存储了数据表所有索引的信息,下面对常用的字段进行介绍:

TABLE_SCHEMA视图所属的SCHEMA(数据库)的名称TABLE_NAME 表名称VIEW_DEFINITION 视图定义语句DEFINER 创建触发器的用户的帐户IS_UPDATABLEMYSQL在CREATE VIEW时设置一个标志,称为视图可更新性标志。CHECK_OPTION CHECK_OPTION属性的值。该值是NONE,CASCADE或LOCAL之一SECURITY_TYPE 视图SQL SECURITY特性。该值是DEFINER或INVOKER之一COLLATION_CONNECTION排序规则CHARACTER_SET_CLIENT编码格式

对应SQL语句:

全部属性查询:

查询所有视图创建语句:

中文对应版:

----------------------------------SQL SERVER 中-----------------------------------------

有一张系统视图

sys.object

在数据库内创建的每个用户定义的架构范围内的对象(包括本机编译的标量用户定义函数)都包含一行。

在开发文档里有具体描述:/zh-cn/sql/relational-databases/system-catalog-views/sys-objects-transact-sql?view=sql-server-ver15

几乎所有对象信息都存在于sys.objects系统视图中,同时又在不同的系统视图中保留了相应的副本,对于函数、视图、 存储过程、触发器等相应的文本对象,把相应的对象的详细资料存于新的sys.sql_modules视图中。表视图:/zh-cn/sql/relational-databases/system-catalog-views/sys-tables-transact-sql?view=sql-server-ver15

一、查询数据库所有表和字段的基本信息

查询数据库所有建表语句:

查询整个数据库包括系统表所有的字段信息

二、查询数据库所有表的索引信息

注:还可以生成创建和删除语句

结果图:

三、查询建立的所有视图信息

在SQL server的可视化工具Microsoft SQL Server Management Studio 中右键点击视图,设计中可查看创建语句

----------------------------------ORACLE-----------------------------------------

一、查询所有表,视图的基本信息,字段信息,索引信息

在数据字典与识图中可以找到相应的视图,来查询数据库基本信息;详细字段信息需要到视图中的查看里都有描述

在DBA_TAB_COLS视图中中有详细的表的描述下面是字段信息

TABLE_NAME是表名,视图名或者集群名;COLUMN_NAME是'列名';DATA_TYPE是“列的数据类型”;DATA_TYPE_MOD是'列的数据类型修饰符';DATA_TYPE_OWNER是“列的数据类型的所有者”;DATA_LENGTH是'列的长度,以字节为单位';DATA_PRECISION是'长度:十进制数字(数字)或二进制数字(浮点数)';DATA_SCALE是“数字小数点右侧的数字”;NULLABLE是'列允许空值吗?';COLUMN_ID是'创建的列的序列号';DEFAULT_LENGTH是'列的默认值的长度';DATA_DEFAULT是'列的默认值';NUM_DISTINCT是'列中不同值的个数';LOW_VALUE是'列中的低值';HIGH_VALUE是'列中的高值';密度为“柱的密度”;NUM_NULLS是' null的数量在列';NUM_BUCKETS是'该列柱状图中的桶数';LAST_ANALYZED是'The date of The last time this column was analyzed';SAMPLE_SIZE是“用于分析本列的样本大小”;CHARACTER_SET_NAME是'字符集名称';CHAR_COL_DECL_LENGTH是'声明长度字符类型列';GLOBAL_STATS是“统计数据在没有合并基础分区的情况下计算吗?”;USER_STATS是'是用户直接输入的数据吗?';AVG_COL_LEN是“列的平均长度(以字节为单位)”;CHAR_LENGTH是'列的最大字符长度';CHAR_USED为'C if width was specified in characters, B if in bytes';V80_FMT_IMAGE is ' is column data in 8.0 image format?';data_updated is '列数据是否已升级到最新的类型版本格式?';HIDDEN_COLUMN是'这是一个隐藏的列吗?';VIRTUAL_COLUMN是“这是一个虚拟列吗?”;SEGMENT_COLUMN_ID是‘在段中的列的序列号’;INTERNAL_COLUMN_ID是'列的内部序列号';QUALIFIED_COL_NAME是'限定列名';

!!!在这里遇到了问题:查询所有出来的结果只有固定的一小部分,都是数据字典表,进入视图去看原数据也是,但是用条件查询还是可以查出来

条件查询可以查出来,但是上面的查询结果中不包含TESTS_1表

数据字典表(Data dictionary table)用以存储表、索引、约束以及其它数据库结构的信息,这些对象通常以“$”结尾(例如:TAB$、OBJ$、TS$等),在创建数据库的时候通过运行$ORACLE_HOME/rdbms/admin/sql.bsq脚本来创建。sql.bsq是一个非常重要的文件,其中包含了数据字典表的定义及注释说明,应仔细阅读研究。

方法一

--实例:

列名:

ower,object_name,subobject_name,object_id,created,last_ddl_time,timestamp,status等

如遇到一个庞大的数据核心系统,而并不知道主键关联的情况,可以用以下脚本查询该主键所有对应的表,随后进行筛选关联:

方法二

oracle 查询全部表和对应表结构:

数据字典与视图:

/huangleijay/article/details/11568265

Oracle提供了很方便的视图,直接查询便可

实例:

数据字典与视图

附录A动态性能表

附录B SQL语言运算符与函数

表1各种运算符

表2字符函数列表

表3数值函数列表

表4日期函数列表

表5聚组函数列表

二,获取数据字典定义

获取对象定义的包为:dbms_metadata,其中的get_ddl函数是获取对象的函数

GET_DDL函数返回创建对象的原数据的DDL语句,参数说明

1、object_type ---需要返回原数据的DDL语句的对象类型

2、name --- 对象名称

3、schema ---对象所在的Schema,默认为当前用户所在所Schema

4、version ---对象原数据的版本

5、model ---原数据的类型默认为ORACLE

6、transform. - XSL-T transform. to be applied.

7、RETURNS: 对象的原数据默认以CLOB类型返回

其中,我们经常用到的是前三项。

dbms_metadata包中的get_ddl函数定义:

FUNCTION get_ddl ( object_type IN VARCHAR2,

name IN VARCHAR2,

schema IN VARCHAR2 DEFAULT NULL,

version IN VARCHAR2 DEFAULT 'COMPATIBLE',

model IN VARCHAR2 DEFAULT 'ORACLE',

transform. IN VARCHAR2 DEFAULT 'DDL') RETURN CLOB;

注意:

1、如果使用sqlplus需要进行下列格式化,特别需要对long进行设置,否则无法显示完整的SQL

2、参数要使用大写,否则会查不到

set linesize400

set pages0

set long 10000

1、查看数据库表的定义写法:

2、查看索引的SQL

3、查看创建主键的SQL

4、查看创建外键的SQL

5、查看创建视图的SQL

6、查看用户的SQL

7、查看角色的SQL

8、查看表空间的SQL

9、获取物化视图SQL

10、获取远程连接定义SQL

11、获取用户下的触发器SQL

12、获取用户下的序列

13、获取用户下的函数

14、获取包的定义

15、获取存储过程

16、获取包体定义

17、获取远程数据库对象的定义

18、获取多个对象的定义

实例:

备注:

Q:什么是-元数据-

A:元数据(MetaData),即定义数据的数据。

打个比方,就好像我们要想搜索一首歌(歌本身是数据),而我们可以通过歌名,作者,专辑等信息来搜索,那么这些歌名,作者,专辑等等就是这首歌的元数据。

数据库的元数据就是一些注明数据库信息的数据。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。