microsoft sql server management studio中展开对应表下面的列信息不就可以看到列的详细信息了么?当然这是可以的,但这里我们主要讲的时如何利用sql语句来查询指定表的列信息。
武都网站建设公司成都创新互联,武都网站设计制作,有大型网站制作公司丰富经验。已为武都成百上千家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的武都做网站的公司定做!
利用sql语句来查询列信息,就是要用到系统视图sys.columns,这个视图记录了数据库中所有表,视图,表值函数等的所有列信息。我们可以利用语句select * from sys.columns来查看这个视图返回的信息。
sys.columns返回的列比较多,大部分情况下很多列的信息我们可能用不到,下面我们只解释一下比较常用的列的信息。
1,object_id--这个列是比较重要的,它是返回当前列所属表的ID。利用它,我们就可以查询指定表的所有列信息,比如下面的sql语句是查询表table1的所有列信息。
select * from sys.columns where object_id=object_id('table1')
2,name--该列的列名。
3,column_id--该列在数据库中的ID,注意,数据库中任何对象的ID都是唯一的。
4,system_type_id--该列的类型的ID,和下面max_length,precision,scale三列一起可以来举个示例。
5,max_length--该列的最大长度
6,precisionp--如果这列是数值列,那么这是该列的精度,否则就是0
7,scale--如果这列是数值列,那么这就是列的小数位数,否则就是0
system_type_id,max_length,precision,scale四列结合系统视图sys.types一起我们来举个示例。
如果我们要查询表table1的所有列,及列的类型,列的精度,列的小数位数,sql语句如下:
select a.name,b.name,a.max_length,a.precision,a.scale
from sys.columns a left join sys.types b on a.user_type_id=b.user_type_id
where a.object_id=object_id('table1')
8,is_nullable--该列是否可以为null
9,is_identity--该列是否是标识列
10,is_computed--该列是否是计算列。利用该列,我们也就可以查询某个表的所有计算列了,比如我们要查询表table1中的所有计算列,sql语句如下:
select * from sys.columns where object_id=object_id('table1') and is_computed=1
sys.columns视图中常用的列就是这10列了,其它列的信息大家可以到SQLServer 2005联机丛书中查询。
1、打开并登录sql查询分析器。
2、在查询分析器,输入并运行以下代码,查询出相应的视图表有哪些:
USE pubs (或具体的数据库名,在此笔者以pubs为例)
select * from sysobjects where xtype='V' 。
3、根据以上所查询出来的视图表名称(name字段),在查询分析器运中,运行以下代码:
select * from titleview (视图名)。
4、所显示的查询结果即为视图表的内容了。
5、如果,要查看视图表的定义,可以使用 sp_helptext [ @objname = ] 'name' 来进行查询;比如,查询分析器,输入并运行以下代码:sp_helptext titleview。
6、执行视图定义查询代码段后,所显示的查询结果即为视图表定义。
7、此外,还可以通过以下代码来查看视图及其注释信息的:(仍以上面视图为例来说明)
select c.text from dbo.syscomments c, dbo.sysobjects o
where o.id = c.id and c.id = object_id(N'[dbo].[titleview]') 。
sqlserver的注释一般有两种,一种是两个减号,一种是斜杠和星号的方式,具体如下:
第一种:
语句:
--select id,MONTH(begindate) as month from test
第二种:
/*select id,MONTH(begindate) as month from test*/
sysobjects是系统对象表,syscolumns是系统字段信息表,systypes是系统类型表。通过字段的ID和sysproperties(系统注释属性表)关联,即可读出注释信息。
在SQL标准中标准的注释方式是"--"注释,即单行注释,不过不同的数据库注视方式也略有不同,下面是各个数据库支持饿方式
其中这是方式基本上每个数据库都是支持的mysql 注释方法
在MySQL中病支持标准的"--"注释方式,他采用的是"#"方式才进行单行注释。
1."#"注释. 以#开头的一句表示注释一行如:
#
##创建用户表
#
create table user(
id int primary key not null,
name varchar(20));
#注释也可以用在行中注释,注释从#开始,到行末结束.如:
create table user(
id int primary key not null, # 用户id
name varchar(20));2.这种是C语言的注释风格,支持一行注释也支持多行注释。另外还可以是行内注释
1) 单行注释 即用注释一行如
create table student(
id int primary not null,
name varchar(50));
2)多行注释 即可以跨行注释如
create table student(
id int primary not null,
name varchar(50));
3)行内注释 即注释的内容可以在sql语句中,可以用来对字段进行注释。如:
create table student(
id int ,name varchar(50) );SqlServer 注释方法
--注释,即标准的单行注释
--
----创建用户表
--
create table student(
id int primary not null,
name varchar(50));
注释:用法同MySQL的注释方式,支持单行,多行和行内注释。Oracle和DB2数据库的注释方式基本上和SqlServer相同,参见上面。
在transact-sql
中可使用两类注释符。
1、ansi
标准的注释符“--”
用于单行注释;
2、与c语言相同的程序注释符号,即“/**/”。“/*”用于注释文字的开头,“*/”用于注释文字的结尾,可在程序中标识多行文字为注释。