如何查看数据库中的表?

如何查看数据库中的表?,第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

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

有两个数据库文件太大,分别超过12G 和 6G,快把分区挤满,无法进行数据备份和更新了,需要清一下表的内容。

一个数据库,有几十个表,不可能一个个地去count的,请问在查询分析器中,如何快速地找到数据量最大的几个表?

另外,如果我用truncate table命令,那么索引文件也会相应地缩小吗?

谢谢!

解析:

sql的每一个数据库中有一个名名为’sysobjects’的表,这个系统表中储存了当前数据库中所有对象(包括系统表,用户表、日志、存储过程)的信息,可以用这个表链获取数据库中表的数目和名称,之后向获得某个制定数据库的信息,可以使用带参数的 sp_helpbd过程

我想不管是什么db总是有相应的业务逻辑的,最大的那几个表,一定有她的特殊 的业务逻辑,从表名上应该能判断出来,一般存图片,歌曲或者其他资料的表象对比较大,但是存用户名 以及关联表 ,一般都不会太大,

关于数据库更新,如果是xp或者me 以上的系统看看先把系统还原暂时停止,这样可以节省出来一些空间,或者在挂一块硬盘看看


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

原文地址: https://outofmemory.cn/sjk/9891549.html

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

发表评论

登录后才能评论

评论列表(0条)

保存