怎样查看SQL Server数据表的数据页结构

怎样查看SQL Server数据表的数据页结构,第1张

SQLServer2000提供了一个读取数据页结构的命令DBCC Page。该命令为非文档化的命令,具体如下:
DBCC Page ({dbid|dbname},filenum,pagenum[,printopt])
DBCC Page的输出主要分为5个部分: Page、BUFFER、Page Hearder、Data、OFFSET Table(行的偏移量数组)。
Page指出该表的文件编号及页码。
Buffer指出关于给定页面的缓冲区的信息。
Page Header指出页面中所有标题字段的数据。
Data指出每一行的信息。对于每一行,DBCC Page指出行在槽中的位置,以及该行在页面中的偏移量。页面数据被分成3部分,左列指出的是所显示的数据在行中的字节位置。接着4列包含页面存储的实际数据,以16进制的形式显示。右列包含数据的字符表示(只有字符数据是可读的)。
Offset Table指出页面末尾的行偏移量数组的内容。注意这里并不是行物理存储的顺序,而是以槽的编号的顺序来显示的,不过这里可以通过槽的编号看出它的物理存储顺序,比如槽的编号最小的为物理存储的第一行,依此类推。
>sql2000安装好后,点开始—>所有程序—>Microsoft SQL Server先打开服务管理器,点击开始;然后打开企业管理器—>microsoft SQL Servers—>SQL Server组—>windows NT—>数据库—>表

先找到界面左上角的文件选项,然后找到其中的设计表选项,这时候一般会d出数据类型界面,这就是你要找的表结构了吧或者选择一个表,点击“设计表”,就能看到你所要的信息。

在桌面找到navicat for mysql的图标,点击并打开。选择需要进行查询的数据库的链接地址,如下图所示:在数据库链接地址中,找到需要查询的数据库,双击将其数据库打开,可以看到据库的颜色会由灰色变成彩色。如下图:点击上方的‘查询’功能,然后点击箭头所指的‘创建查询’功能,

如下图:点击‘创建查询’后,会d出一个对话框,改对话框就是输入查询语句进行的对话框,在这里可以输入查询的sql语句,对表进行查询。如图:输入查询语句完成后,点击上角的运行按钮,根据输入的sql语句进行查询。查询结果以列表的形式进行展现,如图

怎样用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;语句的结果,可以在sqlplus 里面这样:

SPOOL c:\testsql 这是保存文件的位置

select from tablename;

SPOOL OFF
mysql如何进入数据库查看所有表
mysql> use my_db;

mysql> select from rmation_schematables t where ttable_schema='my_db';

--大概

Mysql> create table lala (la_id int ,la_name varchar(55) primary(id)) enginee=innodb
怎样看SQL数据库中哪些表有数据
什么数据库

1

select from rmation_schematables

2

select table_name from user_all_tables

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

CREATE PROCEDURE get_table AS

if not exists (select from dbosysobjects 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

下边是SQLSERVER查询数据字典的语法,如果相查某一个表,只需要加where条件一个表名的连接即可。
SELECT TOP 100 PERCENT --aid,
CASE WHEN acolorder = 1 THEN dname ELSE '' END AS 表名,
CASE WHEN acolorder = 1 THEN isnull(fvalue, '') ELSE '' END AS 表说明,
acolorder AS 字段序号, aname AS 字段名, CASE WHEN COLUMNPROPERTY(aid,
aname, 'IsIdentity') = 1 THEN '√' ELSE '' END AS 标识,
CASE WHEN EXISTS
(SELECT 1
FROM dbosysindexes si INNER JOIN
dbosysindexkeys sik ON siid = sikid AND siindid = sikindid INNER JOIN
dbosyscolumns sc ON scid = sikid AND sccolid = sikcolid INNER JOIN
dbosysobjects so ON soname = siname AND soxtype = 'PK'
WHERE scid = aid AND sccolid = acolid) THEN '√' ELSE '' END AS 主键,
bname AS 类型, alength AS 长度, COLUMNPROPERTY(aid, aname, 'PRECISION')
AS 精度, ISNULL(COLUMNPROPERTY(aid, aname, 'Scale'), 0) AS 小数位数,
CASE WHEN aisnullable = 1 THEN '√' ELSE '' END AS 允许空, ISNULL(etext, '')
AS 默认值, ISNULL(g[value], '') AS 字段说明, dcrdate AS 创建时间,
CASE WHEN acolorder = 1 THEN drefdate ELSE NULL END AS 更改时间
FROM dbosyscolumns a LEFT OUTER JOIN
dbosystypes b ON axtype = bxusertype INNER JOIN
dbosysobjects d ON aid = did AND dxtype = 'U' AND
dstatus >= 0 LEFT OUTER JOIN
dbosyscomments e ON acdefault = eid LEFT OUTER JOIN
dbosysproperties g ON aid = gid AND acolid = gsmallid AND
gname = 'MS_Description' LEFT OUTER JOIN
dbosysproperties f ON did = f
id AND fsmallid = 0 AND
fname = 'MS_Description'
where dname = '表名'---查询固定表,如果所有,去掉where条件
ORDER BY dname, acolorder
ORACLE数据库使用USER_TAB_COLUMNS表
select TABLE_NAME,
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH
from USER_TAB_COLUMNS


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

原文地址: http://outofmemory.cn/yw/12869694.html

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

发表评论

登录后才能评论

评论列表(0条)

保存