SQL如何列出表名

SQL如何列出表名,第1张

select from 学生表。。。

所有列

select [id], [name] from [sysobjects] where [type] = 'u' order by [name] 所有表

string cnn = ConfigurationManagerConnectionStrings["ReportDataService"]ConnectionString;

using (SqlConnection cn = new SqlConnection())

{

cnConnectionString = cnn;

cnOpen();

SqlCommand cmd = new SqlCommand();

cmdConnection = cn;

cmdCommandText = "select from yourTable";

SqlDataAdapter da = new SqlDataAdapter(cmd);

DataSet ds = new DataSet();

daFill(ds);

dsTables[0] 这个就是你的数据

}

sp_help tablename 也可以。此命令可以查看各个字段的详细信息和索引等 信息!

sp_helptext viewname or procname 可以查看视图和存储过程的名字。

这些都是很基本的东西,建议还是找点sybase的基础资料看看。

1、查询SQL中的所有表:

Select TABLE_NAME FROM 数据库名称INFORMATION_SCHEMATABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称

2、查询SQL中所有表及列:

Select dbosysobjectsname as Table_name, dbosyscolumnsname AS Column_name FROM dbosyscolumns INNER JOIN dbosysobjects ON dbosyscolumnsid = dbosysobjectsid Where (dbosysobjectsxtype = 'u') AND (NOT (dbosysobjectsname LIKE 'dtproperties'))

3、在Sql查询分析器,还有一个简单的查询方法:

EXEC sp_MSforeachtable @command1="sp_spaceused ''" 执行完之后,就可以看到数据库中所有用户表的信息

4、查询总存储过程数:

select count() 总存储过程数 from sysobjects where xtype='p'

D = 默认值或 DEFAULT 约束

F = FOREIGN KEY 约束

L = 日志

FN = 标量函数

IF = 内嵌表函数

P = 存储过程

PK = PRIMARY KEY 约束(类型是 K)

RF = 复制筛选存储过程

S = 系统

TF = 表函数

TR = 触发器

U = 用户表

UQ = UNIQUE 约束(类型是 K)

V = 视图

X = 扩展存储过程

一、系统表空间

在 MySQL 数据目录下有一个名为 ibdata1 的文件,可以保存一张或者多张表。

923275 12M -rw-r----- 1 mysql mysql 12M 3月 18 10:42 ibdata1

这个文件就是 MySQL 的系统表空间文件,默认为 1 个,可以有多个,只需要在配置文件 mycnf 里面这样定义即可。

innodb_data_file_path=ibdata1:200M;ibdata2:200M:autoextend:max:800M系统表空间不仅可以是文件系统组成的文件,也可以是非文件系统组成的磁盘块,比如裸设备,定义也很简单innodb_data_file_path=/dev/nvme0n1p1:3Gnewraw;/dev/nvme0n1p2:2Gnewraw

系统表空间里都有些啥内容?

具体内容包括:double writer buffer、 change buffer、数据字典(MySQL 80 之前)、表数据、表索引。

那 MySQL 为什么现在主流版本默认都不是系统表空间?

究其原因,系统表空间有三个最大的缺点:原因 1:无法做到自动收缩磁盘空间,造成很大的空间浪费。即使它包含的表都被删掉,这部分空间也不会自动释放。

二、单表空间

单表空间不同于系统表空间,每个表空间和表是一一对应的关系,每张表都有自己的表空间。具体在磁盘上表现为后缀为 ibd 的文件。比如表 t1,对应的表空间文件为 t1ibd917107 96K -rw-r----- 1 mysql mysql 96K 3月 18 16:13 t1ibd

单表空间如何应用到具体的表呢?

有两种方式:方式 1:在配置文件中开启。在配置文件中开启单表空间设置参数 innodb_filer_per_table,这样默认对当前库下所有表开启单表空间。innodb_file_per_table=1另外也可以直接建表时指定单表空间mysql> create table t1 (id int, r1 char(36)) tablespace innodb_file_per_table;

Query OK, 0 rows affected (004 sec)

单表空间除了解决之前说的系统表空间的几个缺点外,还有其他的优点,详细如下:

1 truncate table *** 作比其他的任何表空间都快;

2 可以把不同的表按照使用场景指定在不同的磁盘目录;

比如日志表放在慢点的磁盘,把需要经常随机读的表放在 SSD 上等。

mysql> create table ytt_dedicated (id int) data directory = '/var/lib/mysql-files';

Query OK, 0 rows affected (004 sec)3 可以用 optimize table 来收缩或者重建经常增删改查的表。一般过程是这样的:建立和原来表一样的表结构和数据文件,把真实数据复制到临时文件,再删掉原始表定义和数据文件,最后把临时文件的名字改为和原始表一样的。

三、通用表空间

通用表空间先是出现在 MySQL Cluster 里,也就是 NDB 引擎。从 MySQL 57 引入到 InnoDB 引擎。通用表空间和系统表空间一样,也是共享表空间。每个表空间可以包含一张或者多张表,也就是说通用表空间和表之间是一对多的关系。

SELECT TOP 100 PERCENT ccolid AS 序号, oname AS 表名, cname AS 列名,

tname AS 类型, clength AS 长度, cisnullable AS 允许空,

CAST(m[value] AS Varchar(100)) AS 说明

FROM dbosyscolumns c INNER JOIN

dbosysobjects o ON oid = cid AND objectproperty(oid, N'IsUserTable') = 1 AND

oname <> 'dtproperties' INNER JOIN

dbosystypes t ON txusertype = cxusertype LEFT OUTER JOIN

dbosysproperties m ON mid = oid AND msmallid = ccolorder

ORDER BY oname, ccolid

什么也不用修改就可以了

SQLSERVER:SELECT from sysobjects where xtype = 'u'

ORACLE: select from user_tables

看看行不行

以上就是关于SQL如何列出表名全部的内容,包括:SQL如何列出表名、C#如果我想列出数据库内的表Table的所有数据,那么接下来该怎么写、sybase数据库 如何查看数据库中的表的详细信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存