怎样用SQL语句查询一个数据库中的所有表

怎样用SQL语句查询一个数据库中的所有表,第1张

查询数据库里所有表名和字段名的语句

SQL 查询所有表名:

SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'

SELECT FROM INFORMATION_SCHEMATABLES

结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;

sql 语句就是对数据库进行 *** 作的一种语言。

扩展资料:

SQL语句常见语句:

1、更新:update table1 set field1=value1 where 范围;

2、查找:select from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串);

3、排序:select from table1 order by field1,field2 [desc];

4、求和:select sum(field1) as sumvalue from table1;

5、平均:select avg(field1) as avgvalue from table1;

6、最大:select max(field1) as maxvalue from table1;

7、最小:select min(field1) as minvalue from table1[separator]。

参考资料来源:百度百科-sql语句

如果知道是哪个字段,就选遍历所有表,找出有这个字段的表,然后遍历这些表中的这个字段,找出有你要找的数据的表。

如果不知道哪个字段,就遍历所有表的所有字段,找出所有符合这个数据的字段以及对应的表。

所有表存在:sysobjects

所有字段存在:sysproperties

如果你想这样做,肯定有这样的SQL,可以写出来。

不过肯定是不建议这么做,效率肯定会很低。

要自己拼SQL。只用SQL语句也能实现不过非常麻烦。

SQL SERVER 2000 中 sysobjects 这个表记录所有的表。

syscolumns 这个表记录所有的列。

可以通过联合查询查出所有的表中的字段,然后拼SQL,进行查询。

SELECT

表名=dname,--case when acolorder=1 then dname else '' end,

字段序号=acolorder,

字段名=aname,

标识=case when COLUMNPROPERTY( aid,aname,'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 = aid AND colid=acolid

))) then '√' else '' end,

类型=bname,

占用字节数=alength,

长度=COLUMNPROPERTY(aid,aname,'PRECISION'),

小数位数=isnull(COLUMNPROPERTY(aid,aname,'Scale'),0),

允许空=case when aisnullable=1 then '√'else '' end,

默认值=isnull(etext,''),

字段说明=isnull(g[value],'')

FROM syscolumns a

left join systypes b on axtype=bxusertype

inner join sysobjects d on aid=did and dxtype='U' and dname<>'dtproperties'

left join syscomments e on acdefault=eid

left join sysproperties g on aid=gid and acolid=gsmallid

order by aid,acolorder

上面这个SQL是找到的数据库中所有表和列。

然后用游标,或其他的分析出所有的表和字段 拼接SQL然后查询吧。

这样的话,估计效率不是一般的慢。

建议还是找出具体那些字段中会存在你要查询的数据的具体表和列。然后进行查询,这样效率会快些。

上面那个2000中可以用

SQL SERVER 2005和2008存储表名和列名的表不一样,表结构也不一样

用数据字典

select

from

dba_users;

查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system

select

from

all_users;

查看你能管理的所有用户!

select

from

user_users;

查看当前用户信息

access数据库中的选择查询是在一个或多个数据表中检索更新指定。选择查询能够根据指定的查询准则,从一个或多个表中获取数据并显示结果,也可以使用选择查询对记录进行分组,并且对记录进行总结、计数、求平均以及其他类型的计算。

数据库,简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等 *** 作。

数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。

例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。

数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。

基本的有:布尔逻辑,截词检索,加权检索,位置算符等

但是,根据实际情况,可以说有无限种。

理论上,要针对所有的表各写一条SQL,SQL中要列出所有的字符类字段,例如:

SELECT FROM taba WHERE fielda LIKE '%abc%' OR fieldB LIKE '%abc%' ……;

SELECT FROM tabb WHERE fielda LIKE '%abc%' OR fieldB LIKE '%abc%' ……;

写这样的SQL非常痛苦,看你是用的什么数据库,许多数据库系统有系统字典,就是在数据库里面的某些表中存放着所有的数据库、表、字段的名称和类型,那样可以通过那些信息编写出自动生成前面的SQL语句的SQL语句。

另外,一般的数据库都是存放在文件中或者磁盘上,可能利用全盘搜索软件搜索磁盘上特定的字符串,比上述SQL语句要快得多,只是搜索到了,要判断数据库行有一些麻烦。

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语句查询一个数据库中的所有表、数据不知道存储在哪个表中,怎么从数据库中查找、sqlserver如何多张表中搜索某个数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9470252.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存