怎么从一段复杂的SQL中把所有的表都取出来

怎么从一段复杂的SQL中把所有的表都取出来,第1张

说个思路:

表名的前面一般是 from +空格 ,from + 回车, 所以先定位from ,然后去掉前面的空格或回车,后面一般是空格或者回车,所以第二步就是从剩下的字符串中取到空格或回车,这样应该就能取得表名了,如果有多个表就再去判断','。当然还要判断left join ,join , right join ,所有的表名就循环取了。

sql = "select name from b1 where name like '" & Text2 & "%'" ' order by name"

这只是查询出一个字段出来吧,换成就可以出全表的数据了,不知道你问的是这个吗?

1、打开plsql,输入用户、密码、数据库名等,进行登录,

2、登录进plsql后,点击新建->SQL窗口,

3、在新建的sql窗口中,编写sql语句,select from all_tables t;查看所有表,

4、执行语句select owner, count() from all_tables group by owner,查看每个用户下所有表的数量,

你是要写代码生成器么--这是查表的数量Select [name] from sysObjects Where xtype='U'and [name]<>'dtproperties' Order By [name]--得到数据库中所有用户视图Select [name] From sysObjects Where xtype='V' And [name]<>'syssegments' And [name]<>'sysconstraints' Order By [name]--获得指定表中所有的列Selectcname As ColumnName,tname As TypeNameFrom syscolumns c, systypes t, sysobjects oWhere cxtype = txusertypeAnd cid = oidAnd oname = 'Book'Order By ccolorder

使用sqlserver 查询语句就能够看见表中的字段名了;

1、查看所有字段语法:select from 表名。这里的号表示的所有字段;如图所示

2、直接修改表也可以看见所有表中的字段名,选中所要查看字段的数据表“右键”-“修改”。

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联机丛书中查询。

以上就是关于怎么从一段复杂的SQL中把所有的表都取出来全部的内容,包括:怎么从一段复杂的SQL中把所有的表都取出来、如何使用sql语句查询后显示全的数据表、plsql怎么查看所有表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9420786.html

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

发表评论

登录后才能评论

评论列表(0条)

保存