sql语句怎么在一个数据库中查找拥有同一字段名的所有表

sql语句怎么在一个数据库中查找拥有同一字段名的所有表,第1张

1、在Oracle数据库中

select column_name,table_name from user_tab_columns where column_name= 'test_name'

2、在SqlServer数据库中

SELECT COLUMN_NAME,TABLE_NAME FROM INFORMATION_SCHEMAcolumns WHERE COLUMN_NAME='test_name'

SQL语言是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,无论是高级查询还是低级查询,SQL查询语句的需求是最频繁的。

扩展资料:

数据库是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。

数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。

vb6exe

但FRM文件一般不单独打开,因为它依靠VBP文件来打开,就是说,你有了FRM文件一般都会同时还有一个VBP文件,应该打开VBP,这样,FRM就自动打开了。

如果你没安装VB就没办法了。

OBJECT_ID : 返回数据库对象标识号

例如:

use master

Select Object_Id(N'pubsauthors') //查看pubs数据库里的authors表的object_id对象标识号。

OBJECTPROPERTY : 返回当前数据库中对象的有关信息

语法 : OBJECTPROPERTY ( id , property )

例如:

OBJECTPROPERTY (object_id(N'authors') , N'ISTABLE') = 1

select from dbosysobjects where Object_Id(N'myTable') AND OBJECTPROPERTY(id, N'IsTable') = 1

OBJECT_ID:返回数据库对象标识号。N是显式的将非unicode字符转成unicode字符,它来自 SQL-92 标准中的 National(Unicode)数据类型,用于扩展和标准化,在这里可以不用,写作object_id(PerPersonData)。

OBJECTPROPERTY:返回当前数据库中对象的有关信息。1表“真”。同样可以写成OBJECTPROPERTY(id, sUserTable) = 1。

整条语句的意思是判断数据库里有没有存在PerPersonData这样一张表。

整条语句可以简写成:

if exists (select from sysobjects where objectproperty(object_id('PerPersonData'),'istable') = 1)

判断myTalbe对象是否是一个表。

If exists (select from dbosysObjects

where id = Object_Id(N'myTable') and ObjectProperty(id, N'IsUserTable') = 1)

判断myProc对象是否是一个存储过程。

If exists (select from dbosysObjects

where id = Object_Id(N'myProc') and ObjectProperty(id, N'IsProcedure') = 1)

判断myFun对象是否是一个自定义、标量值函数。

If exists (select from dbosysObjects

where id = Object_Id(N'myFun') and ObjectProperty(id, N'IsScalarFunction') = 1)

判断myFun对象是否是一个表值函数。

If exists (select from dbosysObjects

where id = Object_Id(N'myFun') and ObjectProperty(id, N'IsTableFunction') = 1)

其他更多ObjectProperty属性的 property 值参考

>

microsoft sql server management studio中展开对应表下面的列信息不就可以看到列的详细信息了么?当然这是可以的,但这里我们主要讲的时如何利用sql语句来查询指定表的列信息。

利用sql语句来查询列信息,就是要用到系统视图syscolumns,这个视图记录了数据库中所有表,视图,表值函数等的所有列信息。我们可以利用语句select from syscolumns来查看这个视图返回的信息。

syscolumns返回的列比较多,大部分情况下很多列的信息我们可能用不到,下面我们只解释一下比较常用的列的信息。

1,object_id--这个列是比较重要的,它是返回当前列所属表的ID。利用它,我们就可以查询指定表的所有列信息,比如下面的sql语句是查询表table1的所有列信息。

select from syscolumns 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四列结合系统视图systypes一起我们来举个示例。

如果我们要查询表table1的所有列,及列的类型,列的精度,列的小数位数,sql语句如下:

select aname,bname,amax_length,aprecision,ascale

from syscolumns a left join systypes b on auser_type_id=buser_type_id

where aobject_id=object_id('table1')

8,is_nullable--该列是否可以为null

9,is_identity--该列是否是标识列

10,is_computed--该列是否是计算列。利用该列,我们也就可以查询某个表的所有计算列了,比如我们要查询表table1中的所有计算列,sql语句如下:

select from syscolumns where object_id=object_id('table1') and is_computed=1

syscolumns视图中常用的列就是这10列了,其它列的信息大家可以到SQLServer 2005联机丛书中查询。

syscolumns是sqlserver中的一个系统表,用来记录sqlserver中字段信息的。

SQLServer中SYSCOLUMNS表的各个字段的意义

列名 数据类型 描述

name sysname 列名或过程参数的名称。

id int 该列所属的表对象 ID,或与该参数关联的存储过程 ID。

xtype tinyint systypes 中的物理存储类型。

typestat tinyint 仅限内部使用。

xusertype smallint 扩展的用户定义数据类型 ID。

length smallint systypes 中的最大物理存储长度。

xprec tinyint 仅限内部使用。

xscale tinyint 仅限内部使用。

colid smallint 列或参数 ID。

xoffset smallint 仅限内部使用。

bITpos tinyint 仅限内部使用。

reserved tinyint 仅限内部使用。

colstat smallint 仅限内部使用。

cdefault int 该列的默认值 ID。

domain int 该列的规则或 CHECK 约束 ID。

number smallint 过程分组时(0 表示非过程项)的子过程号。

colorder smallint 仅限内部使用。

autoval varbinary(255) 仅限内部使用。

offset smallint 该列所在行的偏移量;如果为负,表示可变长度行。

status tinyint 用于描述列或参数属性的位图: 0x08 = 列允许空值。 0x10 = 当添加 varchar 或 varbinary 列时,ANSI 填充生效。

利用SQL语句来查询字段所在的表

从某数据库中查出包含 字段名 字段的所有表名

SELECT TABLE_NAME 

FROM INFORMATION_SCHEMACOLUMNS 

WHERE COLUMN_NAME = '字段名'

实例:  

1、后台添加扩展字段 。

2、选中所在的数据库右键新建查询并输入SQL语句

SELECT TABLE_NAME 

FROM INFORMATION_SCHEMACOLUMNS 

WHERE COLUMN_NAME = 'abc123'

1、在oracle中,这样写就可以解决了

select

column_name,table_name

from

user_tab_columns

where

column_name=

'test_name'

2、在sqlserver中,这样写就可以解决了

select

column_name,table_name

from

information_schemacolumns

where

column_name='test_name'

条件中一定要注意大小写,希望可以帮到你

以上就是关于sql语句怎么在一个数据库中查找拥有同一字段名的所有表全部的内容,包括:sql语句怎么在一个数据库中查找拥有同一字段名的所有表、如何打开columns_priv.frm类型数据库、SQL如何在一个数据库中查询已知列名的所在表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/9485146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存