mysql中查询数据库所有表详细信息,包括引擎,数据长度,注释的sql语句
时间: 2024-04-11 11:28:48 浏览: 43
您可以使用以下 SQL 查询语句来获取 MySQL 数据库中所有表的详细信息,包括引擎、数据长度和注释:
```sql
SELECT TABLE_NAME, ENGINE, DATA_LENGTH, TABLE_COMMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'your_database_name';
```
请将 `your_database_name` 替换为您要查询的数据库名称。执行这个查询语句后,将会返回包含表名、引擎类型、数据长度和表注释的结果集。
相关问题
如何使用SQL查询语句获取数据库中特定字段的注释,这些注释位于哪个表中?
在SQL中,获取数据库中特定字段的注释通常取决于数据库管理系统(DBMS)。许多现代的数据库系统如MySQL、Oracle和PostgreSQL并不直接提供查询特定字段注释的功能,因为这些注释通常是存储在元数据表(metadata tables)中,而不是实际的数据表中。
例如,在MySQL中,你可以通过`INFORMATION_SCHEMA.COLUMNS`视图来查找列级别的注释,但这个视图需要管理员权限。查询可能类似:
```sql
SELECT COLUMN_NAME, COMMENT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'your_table_name' AND COLUMN_NAME = 'your_column_name';
```
在Oracle中,注释信息存储在`DBA_TAB_comments`表中:
```sql
SELECT COLUMN_NAME, COMMENTS
FROM DBA_TAB_COMMENTS
WHERE OWNER = 'your_owner' AND TABLE_NAME = 'your_table_name' AND COLUMN_NAME = 'your_column_name';
```
在PostgreSQL中,注释信息可以在`pg_attribute`表的`description`字段找到,但需要动态SQL或者函数来获取:
```sql
SELECT column_name, format_description(atttypmod, attname) as comment
FROM pg_attribute
WHERE attrelid = (SELECT oid FROM pg_class WHERE relname = 'your_table_name')
AND attnum = ordinal_position;
```
请注意,以上示例中的`your_table_name`、`your_column_name`、`your_owner`等都需要替换为你实际的表名、字段名和拥有者(对于Oracle)。
mysql给指定数据库中的所有表中注释不为空的所有字段添加注释
可以通过以下 SQL 语句来实现:
```sql
SELECT CONCAT('ALTER TABLE `', TABLE_NAME, '` MODIFY COLUMN `', COLUMN_NAME, '` ', COLUMN_TYPE, ' COMMENT \'', COLUMN_COMMENT, '\';') AS sql_statements
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_database_name'
AND COLUMN_COMMENT != ''
ORDER BY TABLE_NAME, ORDINAL_POSITION;
```
这个 SQL 语句会查询指定数据库中的所有表中注释不为空的所有字段,并生成对应的 ALTER TABLE 语句。你可以将这些语句复制到 MySQL shell 中执行,以添加注释。
请注意替换语句中的 `your_database_name` 为你要操作的数据库名。
阅读全文