怎么查询数据库中表的结构了? 如一个字段的是什么类型的,长度是多少,约束是什么?

数据库

用sql命令查看表结构
可以使用内置的存储过程sp_MShelpcolumns。
如查询表Tabel1的结构:
sp_MShelpcolumns 'Tabel1'

元数据简介
元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统 (DBMS) 中,元数据描述了数据的结构和意义。比如在管理、维护 SQL Server 或者是开发数据库应用程序的时候,我们经常要获取一些涉及到数据库架构的信息:
某个数据库中的表和视图的个数以及名称 ;
某个表或者视图中列的个数以及每一列的名称、数据类型、长度、精度、描述等;
某个表上定义的约束;
某个表上定义的索引以及主键/外键的信息。
下面我们将介绍几种获取元数据的方法。
获取元数据
使用系统存储过程与系统函数访问元数据
获取元数据最常用的方法是使用 SQL Server 提供的系统存储过程与系统函数。
系统存储过程与系统函数在系统表和元数据之间提供了一个抽象层,使得我们不用直接查询系统表就能获得当前数据库对象的元数据。
常用的与元数据有关的系统存储过程有以下一些:
系统存储过程 描述
sp_columns 返回指定表或视图的列的详细信息。
sp_databases 返回当前服务器上的所有数据库的基本信息。
sp_fkeys 若参数为带有主键的表,则返回包含指向该表的外键的所有表;若参数为带有外键的表名,则返回所有同过主键/外键关系与该外键相关联的所有表。
sp_pkeys 返回指定表的主键信息。
sp_server_info 返回当前服务器的各种特性及其对应取值。
sp_sproc_columns 返回指定存储过程的的输入、输出参数的信息。
sp_statistics 返回指定的表或索引视图上的所有索引以及统计的信息。
sp_stored_procedures 返回当前数据库的存储过程列表,包含系统存储过程。
sp_tables 返回当前数据库的所有表和视图,包含系统表。
常用的与元数据有关的系统函数有以下一些:
系统函数 描述
COLUMNPROPERTY 返回有关列或过程参数的信息,如是否允许空值,是否为计算列等。
COL_LENGTH 返回指定数据库的指定属性值,如是否处于只读模式等。
DATABASEPROPERTYEX 返回指定数据库的指定选项或属性的当前设置,如数据库的状态、恢复模型等。
OBJECT_ID 返回指定数据库对象名的标识号
OBJECT_NAME 返回指定数据库对象标识号的对象名。
OBJECTPROPERTY 返回指定数据库对象标识号的有关信息,如是否为表,是否为约束等。
fn_listextendedproperty 返回数据库对象的扩展属性值,如对象描述、格式规则、输入掩码等。
由于我们无法直接利用到存储过程与函数的返回结果,因此只有在我们关心的只是查询的结果,而不需要进一步利用这些结果的时候,我们会使用系统存储过程与系统函数来查询元数据。
例如,如果要获得当前服务器上所有数据库的基本信息,我们可以在查询分析器里面运行:
EXEC sp_databases
GO
在返回结果中我们可以看到数据库的名称、大小及备注等信息。

SQL Server 的系统表非常多,其中最常用的与元数据查询有关的表有如下一些:
系统表 描述
syscolumns 存储每个表和视图中的每一列的信息以及存储过程中的每个参数的信息。
syscomments 存储包含每个视图、规则、默认值、触发器、CHECK 约束、DEFAULT 约束和存储过程的原始 SQL 文本语句。
sysconstraints 存储当前数据库中每一个约束的基本信息。
sysdatabases 存储当前服务器上每一个数据库的基本信息。
sysindexes 存储当前数据库中的每个索引的信息。
sysobjects 存储数据库内的每个对象(约束、默认值、日志、规则、存储过程等)的基本信息。
sysreferences 存储所有包括 FOREIGN KEY 约束的列。
systypes 存储系统提供的每种数据类型和用户定义数据类型的详细信息。
将系统存储过程、系统函数、信息架构视图与系统表结合使用,可以方便地让我们获得所有需要的元数据信息。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-06-05
查询数据库中,表结构的详细信息 SELECT
  表名=case when a.colorder=1 then d.name else '' end,
  字段序号=a.colorder,
  字段名=a.name,
  标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
  主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
   SELECT name FROM sysindexes WHERE indid in(
   SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
   ))) then '√' else '' end,
  类型=b.name,
  占用字节数=a.length,
  长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
  小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
  允许空=case when a.isnullable=1 then '√'else '' end,
  默认值=isnull(e.text,''),
  字段说明=isnull(g.[value],'')
  FROM syscolumns a
  left join systypes b on a.xtype=b.xusertype
  inner join sysobjects d on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
  left join syscomments e on a.cdefault=e.id
  left join sysproperties g on a.id=g.id and a.colid=g.smallid
  order by a.id,a.colorder本回答被网友采纳
第2个回答  2016-03-11
首先我的回答是基于MySQL数据库环境:
SHOW FULL COLUMNS FROM student;
SELECT * FROM information_schema.COLUMNS WHERE table_name='student';
两者选一,任君选择。本回答被网友采纳
第3个回答  2013-06-05
select * from systypes where xtype=xusertype and xtype in (select xtype from syscolumns where id =(select id from sysobjects where name='你的数据库表名字' and xtype='U'))

怎么查询数据库中表的结构了? 如一个字段的是什么类型的,长度是多少...
元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例、图书馆目录卡和名片等都可以看作是元数据。在关系型数据库管理系统 (DBMS) 中,元数据描述了数据的结构和意义。比如在管理、维护 SQL Server 或者是开发数据库应用程序的时候,我们经常...

简要介绍数据库表的约束和主要类型、作用?
1) 一个表只能创建一个主键约束,但一个表可以根据需要对不同的列创建若干unique约束 2)主键字段不允许为null ,unique允许为空 3)一般创建主键约束时,系统自动产生簇索引,unique约束自动产非簇索引 3、检查约束(The Check Clause)通过在定义数据库表里,在字段级或者是在表级加入的检查约束,使其...

MySQL表字段解析数据表中的定义域包括数据类型长度约束条件等用于存储...
MySQL表中的每个字段都必须指定其数据类型。MySQL中的数据类型可以分为以下几类:1.整数类型 MySQL提供了多个整数类型,包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT等。这些类型的长度从1个字节到8个字节不等,可以存储不同范围的整数值。2.浮点数类型 MySQL提供了FLOAT和DOUBLE两种浮点数类型,它们分别...

如何查看数据库中表里的字段分别代表什么意思
在关系型数据库中,表就是一个数据的集合体,简单地理解就是一个二维(行与列有简单对应关系的)数据表格。字段是指表格中的列,即具有相同属性的数据集合,每个字段都必须有一个唯一的名称,称为字段名。例如,在表格中,如果用一列存放“性别”,“性别”就是一个字段名。记录是指表格中的行,它...

如何查询数据库中表的字段名
按照如下语句查询数据库中表的字段名:1、SQL 查询所有表名:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'SELECT * FROM INFORMATION_SCHEMA.TABLES 2、查询表的所有字段名:SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(' 表名' )SELECT * FROM INFORMATION_SCHEMA.TABLESSELECT * FROM INFORMATION...

什么是数据库表结构
数据表结构就是定义数据表文件名,确定数据表包含哪些字段,各字段的字段名、字段类型、及宽度,并将这些数据输入到计算机当中,数据表结构是由表名、表中的字段和表的记录三个部分组成的,常用的数据类型有以下10种:1、文本型:文本型是默认的数据类型,最多255个字符,默认长度是50个字符;2、备注型...

四、查询语句select、别名和表结构的查看
查看表结构:解锁字段信息<\/ 在查询前,了解表的结构至关重要。通过使用DESC或简写DESC table_name,你可以一探表的内部构造,包括字段名、数据类型、是否为主键,甚至默认值等细节。更详尽的信息,SHOW CREATE TABLE table_name则能提供完整的表创建语句。select的艺术:从全选到精准<\/ 1. 基本查询<\/...

mysql中查询数据库中表名称和结构的sql语句是什么啊啊
具体语法:TABLE table_name [ORDER BY column_name] [LIMIT number [OFFSET number]]其实从语法上看,可以排序,也可以过滤记录集,不过比较简单,没有 SELECT 那么强大。示例 1 简单的建一张很小的表 y1,记录数为 10 条。表 t1,插入 10 条记录 mysql-(ytt\/3305)->create table t1 (r1 ...

如何查询一个ACCESS数据库中的表名和字段?
数据库知识—SQL查询语句精华使用简要 一、 简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。SELECT nickname,email FROM testtable WHERE name=张三 ...

什么是数据库表结构
表结构就是定义一个表的字段、类型、主键、外键、索引,这些基本的属性组成了数据库的表结构 例如:create table student (id int primarykey,name varchar,sex varchar,age varchar)id、name、sex这些就是字段,int varchar就是数据类型,primarykey为设置主键。数据库是以一定方式储存在一起、能与多个...

相似回答