如何查看数据库中的表?

如何查看数据库中的表?,第1张

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

--读取库中的所有表名select name from sysobjects where xtype='u'--读取指定表的所有列名select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')获取数据库表名和字段sqlserver中各个系统表的作用sysaltfiles 主数据库 保存数据库的文件syscharsets 主数据库 字符集与排序顺序sysconfigures 主数据库 配置选项syscurconfigs 主数据库 当前配置选项sysdatabases 主数据库 服务器中的数据库syslanguages 主数据库 语言syslogins 主数据库 登陆帐号信息sysoledbusers 主数据库 链接服务器登陆信息sysprocesses 主数据库 进程sysremotelogins主数据库 远程登录帐号syscolumns 每个数据库 列sysconstrains 每个数据库 限制sysfilegroups 每个数据库 文件组sysfiles 每个数据库 文件sysforeignkeys 每个数据库 外部关键字sysindexs 每个数据库 索引sy *** enbers 每个数据库 角色成员sysobjects 每个数据库 所有数据库对象syspermissions 每个数据库 权限systypes 每个数据库 用户定义数据类型select 列名=name from syscolumns where id=object_id(N'要查的表名')

如何查看oracle数据库中的所有表

觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以USER,ALL,DBA为前缀的对象。

以USER为例,我们查该对象下有些什么表,就应该执行下列的语句:

SQL>select table_name from user_tables

类似的,你可以进行替换。:)

如果你想查数据库中所有的表的话,可以查询

SELECT * FROM dba_tables

如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:

SELECT * FROM USER_TABLES

要想导入外部sql语句可以用命令

sql >@e:\文件名.sql

如你想保存 select * from tablename语句的结果,可以在sql*plus 里面这样:

SPOOL c:\test.sql 这是保存文件的位置

select * from tablename

SPOOL OFF

mysql如何进入数据库查看所有表

mysql>use my_db

mysql>select * from rmation_schema.tables t where t.table_schema='my_db'

--大概

Mysql>create table lala (la_id int ,la_name varchar(55) primary(id)) enginee=innodb

怎样看SQL数据库中哪些表有数据

什么数据库

1.

select * from rmation_schema.tables

2.

select table_name from user_all_tables

-------------------------

CREATE PROCEDURE get_table AS

if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespace]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

create table tablespace --创建结果存储表

(name varchar(50) ,

rows int , reserved varchar(20) ,

data varchar(20) ,

index_size varchar(20) ,

unused varchar(20) )

truncate table tablespace --清空数据表

--这里.....关键部分.把存储过程的结果放到一个表里.

insert into tablespace exec sp_MSforeachtable "exec sp_spaceused '?'"

go

查询运行该存储过程后得到的结果

select * from tablespace order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc

在很多情况下我们需要将指定的数据库中的所有表都列出来 在使用c#进行软件开发时 我们有哪些方法可是实现这个目的呢?本人对此进行概要的总结 有以下 中方式可以实现这个目的

1 sqldmo

SQLDMO是 *** 作SQLServer的理想的方式 如果您的数据库是SQLServer就可以考虑使用这种方式 在C#中使用SQLDMO需要添加SQLDMO的引用 然后在当前的文件中using SQLDMO即可以使用SQLDMO SQLDMO的对象模型大家可以在SQLServer的帮助中获得

private void GetTabels_DMO(string strServerName string strUser string strPWD string strDatabase)

{

SQLDMO SQLServer Server = new SQLDMO SQLServerClass()

//连接到服务器

Server Connect(strServerName strUser strPWD)

//对所有的数据库遍历 获得指定数据库

for(int i= i<Server Databases Counti++)

{

//判断当前数据库是否是指定数据库

if(Server Databases Item(i+ dbo ) Name ==strDatabase)

{

//获得指定数据库

SQLDMO _Database db= Server Databases Item(i+ dbo )

//获得指定数据库中的所有表

for(int j= j<db Tables Countj++)

{

MessageBox Show(db Tables Item(j+ dbo ) Name)

}

}

}

}

2 adox

adox是ado Extensions for DDL and Security 是微软对ADO技术的扩展 使用它我们可以 *** 作数据库的结构 它是一个组件 估计以后在ADO NET中会增加ADOX的一些功能 如果大家需要ADOX的一些资料 我可以提供 下面的一个例子就是使用ADOX来获得当前数据库的所有表

private void GetTables_ADOX()

{

//ADO的数据库连接

ADODB ConnectionClass cn=new ADODB ConnectionClass()

string ConnectionString= Provider=SQLOLEDB Integrated Security=SSPIInitial Catalog=TestData Source=HBXP

cn Open(ConnectionString sa )

// *** 作ADOX的Catalog对象

CatalogClass cat=new CatalogClass()

cat ActiveConnection=cn

for(int i= i<cat Tables Counti++)

{

MessageBox Show(cat Tables[i] Name)

}

}

注意 在上面的代码中cat ActiveConnection不能是ADO Net中的Connection 而应该是ADO的Connection

3 中的oledbconnection

在c#中我们首先会考虑使用来解决问题 如果没有方法才会考虑使用adox或者sqldmo来解决这个问题 虽然adox和sqldmo也能够解决这个问题 但是他们毕竟是组件 中使用起来和在平台会有一些差异 不是很顺手 下面的示例就显示了在中的oledbconnection的方法getoledbschematable来获得数据库的架构 大家可以在msdn中看到这个方法的说明

public DataTable GetOleDbSchemaTable(

Guid schema

object[] restrictions)

参数

schema

OleDbSchemaGuid 的值之一 它指定要返回的架构表

restrictions

限制值的 Object 数组 这些值按照限制列的顺序来应用 即 第一个限制值应用于第一个限制列 第二个限制值应用于第二个限制列 依此类推

返回值

包含请求的架构信息的 DataTable

更多的信息大家可以查询MSDN 下面将示例如何实现

private void GetTables_ADONET()

{

//处理OleDbConnection

string mailto:strConnectionString=@% Integrated Security=SSPIData Source=HBXPInitial Catalog=TestProvider=SQLOLEDB

OleDbConnection cn=new OleDbConnection(strConnectionString)

cn Open()

//利用OleDbConnection的GetOleDbSchemaTable来获得数据库的结构

DataTable dt = cn GetOleDbSchemaTable(OleDbSchemaGuid Tables new object[] {null null null TABLE })

foreach (DataRow dr in  dt Rows)

{

MessageBox Show((String)dr[ TABLE_NAME ])

}

}

4 信息架构视图

信息架构视图是sql 标准中定义的架构视图 这些视图独立于系统表 信息架构视图的最大优点是 即使我们对系统表进行了重要的修改 应用程序也可以正常地使用这些视图进行访问 下面的示例使用信息架构视图来工作

private void GetTables_INFORMATION_SCHEMA()

{

//打开连接

string strConnectionString=System Configuration ConfigurationSettings AppSettings[ ConnectionString ]

sqlcn=new SqlConnection(strConnectionString)

sqlcn Open()

//使用信息架构视图

SqlCommand sqlcmd=new SqlCommand( SELECT TABLE_NAME FROM INFORMATION_SCHEMA TABLES WHERE TABLE_TYPE = BASE TABLE sqlcn)

SqlDataReader dr=sqlcmd ExecuteReader()

while(dr Read())

{

MessageBox Show(dr GetString( ))

}

}

5 使用系统表

如果您的数据库系统是sqlserver 就可以使用如下的方式来获得当前数据库的所有表

private void GetTables_SystemTable()

{

//打开连接

string strConnectionString=System Configuration ConfigurationSettings AppSettings[ ConnectionString ]

sqlcn=new SqlConnection(strConnectionString)

sqlcn Open()

//使用信息架构视图

SqlCommand sqlcmd=new SqlCommand( SELECT OBJECT_NAME (id) FROM sysobjects WHERE xtype = U AND OBJECTPROPERTY (id IsMSShipped ) = sqlcn)

SqlDataReader dr=sqlcmd ExecuteReader()

while(dr Read())

{

MessageBox Show(dr GetString( ))

}

}

使用sqlserver的存储过程 sp_tables

下面是 盛国军 朋友提出的使用存储过程的方法的补充代码

public void GetTables_StoredProcedure()

{

//处理OleDbConnection

string mailto:strConnectionString=@% Integrated Security=SSPIData Source=HBXPInitial Catalog=TestProvider=SQLOLEDB

OleDbConnection cn=new OleDbConnection(strConnectionString)

cn Open()

//执行存储过程

OleDbCommand cmd=new OleDbCommand( sp_tables cn)

cmd CommandType=CommandType StoredProcedure

OleDbDataReader dr=cmd ExecuteReader()

while(dr Read())

{

MessageBox Show(dr[ TABLE_NAME ] ToString())

}

lishixinzhi/Article/program/net/201311/13176

在程序中通过sql语句查询来获得某个数据库的所有表名,代码如下:

SELECT

table_name

FROM

information_schema.tables

WHERE table_schema = 'mydatabasename'

AND table_type = 'base table'

扩展资料

1,利用sys.tables目录视图查询所有表的名字,sys.tables目录视图为每个表对象返回一行. 示例语句如下:

select * from sys.tables

注意:sys.tables目录视图也只有在SQL SERVER2005及以上的版本中才能使用。

2,利用存储过程sp_tables sp_tables存储过程,可返回可在当前环境中查询的对象列表。这代表可在FROM子句中出现的任何对象。 我们可以执行如下语句:

exec sp_tables

在结果集中筛选出所有TABLE_TYPE等于TABLE的记录就是表信息了。

参考资料:百度百科 sql语句

百度百科 sys.tables


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存