龙空技术网

数据库教程-SQL Server数据字典查询及导出

kid编程 847

前言:

而今小伙伴们对“数据字典管理系统”可能比较关怀,我们都想要了解一些“数据字典管理系统”的相关资讯。那么小编也在网上搜集了一些有关“数据字典管理系统””的相关内容,希望兄弟们能喜欢,小伙伴们一起来学习一下吧!

SQL Server Data Dictionary

数据字典是描述数据库对象及相关信息的表与视图的集合,常见的数据库对象包括表、存储过程、触发器、视图、约束等。用户定义的数据表对应的各类信息均存储在系统表与视图中,所谓数据字典就是通过查询获取这些用户所定义表的相关信息。数据字典的最大作用是在数据库开发者与程序员之间传递信息,使得开发者能够了解具体的数据库相关信息,保证所设计开发的软件符合数据规则及约束。因此数据字典在信息管理系统开发过程中至关重要。开发者可以根据实际需求生成不同的数据字典模板,用于显示数据库不同的信息,典型数据字典模板描述如下所示:

数据字典样式一

数据字典样式一描述如上图所示,通过数据字典显示了用户数据库中对应的表名、字段名称、字段类型、字段长度等相关信息,系统开发人员可通过该字段快速理解数据库的表,字段等基本信息。可以根据需求设置其他数据字典模板,以下给出其他形式:

数据字典样式二

如何设计数据字典

数据字典简单理解就是一个查询语句,从指定的数据表或视图中查询所需的信息,如果是多表连接查询,需要注意查询连接条件。因此为获取以上模板给出的数据字典信息,需要对数据库下的系统相关视图与表进行分析,明确各系统表或者视图的作用。结合给出的数据字段模板样式,可知所需信息主要包括表、字段、数据类型、属性等。因此我们需要明确这些信息都存储在什么表中。系统表及视图较多,在数据库对象资源管理器中可浏览全部视图。部分截图如下:

部分系统视图

我们在编写字典过程中,无需对所有视图有所了解,只需要重点了解和字典显示信息相关的视图即可。通过分析可知主要涉及视图包括以下类型,

sysobjects:有关SQL Server数据库的所有信息都存储在其系统表中,其中最有用的是sysobjects.name和sysobjects.xtype。前者表示相关对象的名称,而后者标识了对象的类型:如U类型只的是用户表。syscolumns:存储当前数据库下所有表与视图的每一列及存储过程中的每一个参数均返回一行。其主要字段包括xusertype(字段的数据类型)、length(字段长度)、isnullable(是否为空)等。systypes:数据表对应的物理存储类型syscomments:包含数据库中每个视图,规则,默认值,触发器,CHECK约束,DEFAULT约束和存储过程的条目。sysindexes:当前数据库中的每个索引和表都包含一行。sysindexkeys:包含有关数据库索引中的键或列的信息。sysforeignkeys:包含有关FOREIGN KEY约束的信息,这些约束位于数据库表的定义中。sys.extended_properties:为当前数据库中的每个扩展属性返回一行。

编写数据字典所需基本系统视图说明如上所示,我们可以连接以上视图,选择需要显示的字段,完成字典格式的定义。系统视图详细解释与说明可参考微软文档信息,如下图所示:

视图定义与字段说明

编写查询语句

在明确所需字段来源之后,我们可以进一步编写生成字典的查询语句。在编写查询语句中为方便阅读,我们将使用系统方法及流程控制语句、重命名等措施,提高查询结果的可读性。主要使用方法描述如下:

1、ISNULL()

用于判断表达式是否为空,非空则返回表达式值。

2、COLUMNPROPERTY ( id , column , property )

用于检查指定字段的属性值,第三个参数为Scale时返回列或参数的数据类型的小数位数。

3、流程控制,多路分支语句

case语句语法

多路分支语句主要用于对多条件进行判断,如以下代码:

实例分析

4、CONVERT()函数

数据类型转换函数,将指定的数据转为指定的数据类型。函数可提供两个参数,第一个为转换的数据类型,第二个为转换的数据。示例如下:

函数举例

5、EXISTS()函数

该函数主要用于判断查询结果是否存在,如果查询结果存在则返回true,否则返回false。

6、多表连接操作

SQL Server提供多表连接,用于实现多表连接操作,常用多表连接包括内连接、外连接、左外连接、右外连接等。

连接类型

三种类型连接描述如上表,数据字典需要连接的表包括syscolumns、sysobjects、systypes等。多表连接实现代码描述如下:

多表连接条件及用户表筛选

4、查询语句及查询结果

按照以上所提供的表信息介绍、系统函数方法等,可以编写数据字典查询语句,并将查询结果进行输出保存,实际过程也可根据需要对查询显示字段进行筛选。查询过程结果如下:

查询过程及结果

针对查询结果可以进一步使用导出保存功能实现对数据字典的保存操作。导出保存实现效果展示如下:

txt格式数据字典

本头条号长期关注编程资讯分享;编程课程、素材、代码分享及编程培训。如果您对以上方面有兴趣或代码错误、建议与意见,可以联系作者,共同探讨。期待大家关注!

标签: #数据字典管理系统